Предложение update

Увеличить состояние всех поставщиков из Лондона на величину, заданную переменной включающего языка ПРИРОСТ:

ЕХЕС SQL UPDATE S

SET СОСТОЯНИЕ = СОСТОЯНИЕ +:ПРИРОСТ

WHERE ГОРОД = 'Лондон';

Если записей, удовлетворяющих условию WHERE, нет, для поля SQLCODE будет установлено значение +100. Справа от знака присваивания во фразе SET может быть использована индикаторная переменная. Например, предложение:

ИНД_РАНГА = -1;

ЕХЕС SQL UPDATE S

SET СОСТОЯНИЕ =:РАНГ:ИНД_РАНГА

WHERE ГОРОД = 'Лондон';

установит состояние всех лондонских поставщиков в неопределенное значение. То же самое можно, конечно, сделать с помощью предложения:

ЕХЕС SQL UPDATE S

SET СОСТОЯНИЕ = NULL

WHERE ГОРОД = 'Лондон';

ПРЕДЛОЖЕНИЕ DELETE

Удалить все поставки тех поставщиков, которые находятся в городе, заданном переменной включающего языка ГОРОД.

ЕХЕС SQL DELETE

FROM SP

WHERE:ГОРОД=

(SELECT ГОРОД

FROM S

WHERE S.HOMEP_ПОСТАВЩИКА =

SP.НОМЕР_ПОСТАВЩИКА);

И снова, если никакие записи не удовлетворяют условию WHERE, для поля SQLCODE будет установлено значение +100.

ПРЕДЛОЖЕНИЕ INSERT

Вставить в таблицу Р новую деталь. При этом номер детали, название и вес заданы соответственно переменными включающего языка НОМ_ДЕТАЛИ, НАЗВ_ДЕТАЛИ и ВЕС_ДЕТАЛИ, а цвет и город неизвестны.

ЕХЕС SQL INSERT

INTO Р (НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ВЕС)

VALUES (:HOM_ДЕТАЛИ,:НАЗВ_ДЕТАЛИ,

:ВЕС_ДЕТАЛИ);

Опять здесь можно использовать индикаторные переменные. Например, если ЦВЕТ_ДЕТАЛИ и ГОР_ДЕТАЛИ — две следующие переменные включающего языка, ИНД_ЦВЕТА и ИНД_ГОРОДА — соответствующие индикаторные переменные, то последовательность

ИНД_ЦВЕТА = -1;

ИНД_ГОРОДА = -1;

ЕХЕС SQL INSERT

INTO Р (НОМЕР_ДЕТАЛИ, НАЗВАНИЕ,ЦВЕТ, ВЕС,

ГОРОД)

VALUES (:HOM_ДЕТАЛИ,:НАЗВ_ДЕТАЛИ,

:ЦВЕТ_ДЕТАЛИ: ИНД_ЦВЕТА,

:ВЕС_ДЕТАЛИ,

:ГОР_ДЕТАЛИ: ИНД_ГОРОДА);

дает тот же результат, что и приведенное выше предложение INSERT.

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



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: