Курсоры SQL

Приветствую всех, сегодня поговорим о курсорах применяемых в SQL.

Курсоры-это операции выборки SQL работают с наборами строк, которые называются результирующие множества. Все возвращаемые строки являются строками, соответствующими примененному SQL-оператору, их может быть нуль или больше. Если своим словами, то позволяют вам выбрать строки не все а те которые вам необходимы. При чем с помощью SELECT это сделать не возможно, о то что сейчас говорю, вы поймете чуть позже, из примеров.

Применении: Иногда бывает необходимо просмотреть строки в прямом или обратном направлении один или несколько раз. Именно для этого используются курсоры. Курсор представляет собой запрос к базе данных, хранящийся на сервере СУБД, — это не оператор SELECT, но результирующее множество, выборка, полученная в результате действия оператора SELECT. После того как курсор сохранен, приложения могут «прокручивать» (просматривать) данные в прямом или обратном направлении, как только возникает такая потребность.

Вообще применения курсоров не рекомендовано к использованию.

Курсоры практически бесполезны, если их применять к приложениям, основанным на Web-технологиях (например, таких как ASP, ColdFusion, PHP и JSP). Курсоры предназначены для использования в течение сеанса связи между клиентским
приложением и сервером, но эта модель «клиент-сервер» не годится для мира Web-приложений, потому что сервер приложений является клиентом базы данных, а не конечным пользователем. А раз так, то большинство разработчиков приложений избегают использования курсоров и добиваются выполнения нужных функций, если это
необходимо, своими силами.

Работу с курсором можно разделить на несколько четко выраженных стадий.

  • Прежде чем курсор может быть использован, его следует объявить (определить). В ходе этого процесса выборка данных не производится, просто определяется оператор SELECT, который будет использован, и некоторые опции курсора.
  • После объявления курсор может быть открыт для использования. В ходе этого процесса уже производится выборка данных согласно предварительно определенному оператору SELECT.
  • После того как курсор заполнен данными, могут быть извлечены (выбраны) отдельные необходимые строки.
  • После того как это сделано, курсор должен быть за крыт и, возможно, должны быть освобождены ресурсы, которые он занимал (в зависимости от СУБД).


FETCH извлекает данные из курсора

LOCAL — позволяет автоматически закрывать и удалять курсор после выполнения скрипта.

Обновлено: 16.01.2019 — 15:25

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.