УДАЛЕНИЕ ЕДИНСТВЕННОЙ ЗАПИСИ
Удалить поставщика 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).