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



       

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 не позволяет выполнить необходимые операции.

    Содержание раздела