SQL для начинающих



В этой главе...



В этой главе...

  • Определение области действия курсора в операторе declare
  • Открытие курсора
  • Построчная выборка данных
  • Закрытие курсора
  • SQL отличается от большинства наиболее популярных языков программирования тем, что в нем операции производятся одновременно с данными всех строк таблицы, в то время как процедурные языки обрабатывают данные построчно. Благодаря использованию курсоров в SQL становится возможным выводить, обновлять или же удалять выбранную строку в один прием, упрощая совместное использование SQL с другими языками программирования.

    По существу, курсор является указателем на определенную строку таблицы. С его помощью можно вывести, обновить или удалить строку, на которую он ссылается.

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

    В случае использования встроенного SQL в общем все выглядит так:

    EXEC SQL DECLARE CURSOR выражение

    EXEC SQL OPEN выражение

    Проверка достижения конца таблицы

    Программный код

    Начало цикла

    Программный код

        EXEC SQL FETCH

        Программный код

      Проверка достижения конца таблицы

    Конец цикла

    EXEC SQL CLOSE выражение

    Программный код

    В приведенном фрагменте кода командами SQL являются: DECLARE (объявить), OPEN (открыть), FETCH (вызвать) и CLOSE (закрыть). Каждая из этих команд детально рассматривается в этой главе.

    Совет 1


    Совет 1

    Если для выполнения операций с выбранными строками можно обойтись обычными операторами SQL, лучше так и сделать. Используйте для построчной обработки базовый язык лишь в том случае, если обычный SQL не позволяет выполнить необходимые операции.




    Содержание    Вперед