Теория баз данных

Особенности встроенного SQL


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

  • Операторы SQL включаются непосредственно в текст программы на исходном языке программирования. Исходная программа поступает на вход препроцессора SQL, который компилирует операторы SQL.

  • Встроенные операторы SQL могут ссылаться на переменные базового языка программирования.

  • Встроенные операторы SQL получают результаты SQL-запросов с помощью переменных базового языка программирования.

  • Для присвоения неопределенных значений (NULL) атрибутам отношений БД используются специальные функции.

  • Для обеспечения построчной обработки результатов запросов во встроенный SQL добавляются несколько новых операторов, которые отсутствуют в интерактивном SQL.

    Операторы манипулирования данными не требуют изменения для их встраивания в программный SQL. Однако оператор поиска (SELECT) потребовал изменений.

    Стандартный оператор SELECT возвращает набор данных, релевантный сформированным условиям запроса. В интерактивном SQL этот полученный набор данных просто выводится на консоль пользователя и он может просмотреть полученные результаты. Встроенный оператор SELECT должен создавать структуры данных, которые согласуются с базовыми языками программирования. Во встроенном SQL запросы делятся на 2 типа:

  • Однострочные запросы, где ожидаемые результаты соответствуют одной строке данных. Эта строка может содержать значения нескольких столбцов.

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

    Первый тип запроса — однострочный запрос во встроенном SQL вызвал модификацию оператора SQL, которая выглядит следующим образом:

    SELECT [{ALL | DISTINCT}] <список возвращаемых столбцов>

    INTO <список переменных базового языка>

    FROM <список исходных таблиц>



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