УДАЛЕНИЕ ЕДИНСТВЕННОЙ ЗАПИСИ

Удалить поставщика S1.

DELETE

FROM S

WHERE НОМЕР_ПОСТАВЩИКА ='S1’.

И снова, если таблица SP в настоящее время содержит какие-либо поставки для поставщика S1, это удаление нарушит непротиворечивость базы данных (сравните с примером 6.2.4; как и в случае предложения UPDATE, нет операций DELETE, воздействующих на несколько таблиц). См. главу 11, а также Приложения А и В.

УДАЛЕНИЕ МНОЖЕСТВА ЗАПИСЕЙ

Удалитьвсех поставщиков из Лондона.

DELETE

FROM S ,

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

УДАЛЕНИЕ МНОЖЕСТВА ЗАПИСЕЙ

Удалить все поставки.

DELETE

FROM SP;

SP — все еще известная таблица, но она теперь пуста. Удалить все записи—это не уничтожить таблицу (операцияDROP).

УДАЛЕНИЕ С ПОДЗАПРОСОМ

Удалить все поставки для поставщиков из Лондона.

delete

FROM SP

WHERE 'Лондон' =

(SELECT ГОРОД

FROM S

WHERE S. НОМЕР_ПОСТАВЩИКА =

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

 

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

 

Предложение INSERTимеет следующий общий формат:

INSERT

INTO таблица [(поле [,поле].. .)]

VALUES (константа [,константа] . . .);

ИЛИ:

INSERT

INTO таблица [(поле [,поле]. . .)]

подзапрос;

В первом формате в «таблицу» вставляется строка, имеющая заданные значения для указанных полей, причем 1-я константа в списке констант соответствует i-му полю в списке полей. Во втором формате вычисляется «подзапрос»; копия результата, представляющего собой, вообще говоря, множество строк, вставляется в «таблицу». При этом 1-й столбец этого результата соответствует f-му полю в списке полей. В обоих случаях отсутствие списка полей эквивалентно спецификации списка всех полей в таблице (см. ниже пример 6.4.2).

ВСТАВКА ЕДИНСТВЕННОЙ ЗАПИСИ

Добавить в таблицу Р деталь Р7 (город 'Атенс', вес — 2, название и цвет в настоящее время неизвестны).

Insert

INTO Р (НОМЕР_ДЕТАЛИ, ГОРОД, BEC)

VALUES ('Р7', 'Атенс', 2);

Создается новая запись для детали с заданным номером, городом и весом, с неопределенными значениями для названия и цвета. Эти два последних поля не должны быть, конечно, определены как NOT NULL в предложении CREATE TABLE для таблицы Р. Порядок слева — направо, в котором поля указаны в предложении INSERT, не обязательно должен совпадать с порядком слева — направо, в котором поля были специфицированы в предложении CREATE (или ALTER).