Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Встроенный язык SQL

РефератПомощь в написанииУзнать стоимостьмоей работы

FETCH INTO, используется для выборки записей и передачи значений в список переменных. Для динамического формирования SQL используются два основных предложения: EXECUTE — выполнить Схема их использования состоит в следующем: Пример. Пусть имеется БД, связанная с поставками изделий. DECLARE Объектный-SQL оператор Исходный-SQL="DELETE FROM SP. Пример. Пусть имеется отношение: STUD (NS, FIO, GR… Читать ещё >

Встроенный язык SQL (реферат, курсовая, диплом, контрольная)

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

Во встроенном SQL, запросы делятся на два типа:

  • · Однострочные запросы,
  • · Многострочные запросы

Однострочный запрос во встроенном SQL вызвал необходимость модификации оператора SQL — SELECT. Здесь появляется дополнительный атрибут INTO. С помощью INTO, найденные значения полей базы данных передаются в переменные базового языка.

SELECT [ALL | DISTINCT].

INTO.

FROM.

[WHERE ].

Пример. Пусть имеется отношение: STUD (NS, FIO, GR, SPEC).

DECLARE p1 int,.

DECLARE p2 char (20), p3 char (4), p4 char (30).

SET p1=205.

SELECT *.

INTO p2, p3, p4.

FROM STUD.

WHERE NS=p1.

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

DECLARE CURSOR — объявление некоторого курсора, с помощью которого можно проводить обработку записей.

FOR.

OPEN — оператор открытия курсора.

По команде OPEN происходит выполнение запроса.

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

CLOSE — оператор закрытия курсора Пример:

DECLARE q CURSOR.

FOR SELECT *.

FROM STUD.

WHERE SPEC="230 102″.

OPEN q.

WHILE .T.

FETCH q INTO A, B, C, D,.

DO PROC.

END WHILE.

CLOSE q.

Пример. Пусть имеется БД, связанная с поставками изделий.

Поставщики S (NП, ФИО, Состояние) Детали P (NД, НазваниеД, Цвет, Вес, Город) Изделия J (NИ, НазваниеИз, Город) Поставки SPJ (NП, NД, NИ, Количество) Необходимо составить программу вывода записей поставщиков в порядке их номеров, при этом за каждой записью поставщика должны непосредственно следовать в порядке номеров изделий все записи изделий, для которых поставляет детали данный поставщик.

MAIN.

DEFINE PS.* LIKE S.*.

DEFINE PJ.* LIKE J.*.

DECLARE CS CURSOR FOR.

SELECT NП, ФИО, Состояние, Город.

FROM S.

ORDER BY NП.

DECLARE CS CURSOR FOR.

SELECT NИ, НазваниеИз, Город.

FROM J.

WHERE NИ IN.

(SELECT NИ.

FROM SPJ.

WHERE NП=S.NП).

ORDER BY NИ.

OPEN CS.

LET V="1"B.

LET R="1"B.

WHILE V.

IF STATUS=NOTFOUND.

THEN MESSAGE «NO ROW FOUND».

EXIT WHILE.

END IF.

FETCH CS INTO PS. NP, PS. ФИО, PS. Состояние, PS.Город.

DISPLAY PS. NP, PS. ФИО, PS. Состояние, PS.Город.

OPEN CJ.

WHILE R.

FETCH CJ INTO PJ. NИ, PJ. НазваниеИз, PJ.Город.

DISPLAY PJ. NИ, PJ. НазваниеИз, PJ.Город.

END WHILE.

CLOSE CJ.

END WHILE.

CLOSE CS.

END MAIN.

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

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

Для динамического формирования SQL используются два основных предложения:

PREPARE — подготовить.

EXECUTE — выполнить Схема их использования состоит в следующем:

DEFINE Исходный-SQL CHAR.

DECLARE Объектный-SQL оператор Исходный-SQL="DELETE FROM SP.

WHERE количество<100″.

PREPARE Объектный-SQL FROM Исходный-SQL.

EXECUTE Объектный-SQL.

Показать весь текст
Заполнить форму текущей работой