Журнал (НазваниеЖурнала, НомерЖурнала, ГодЖурнала)
VALUES ("Новый мир", 4, 1987);
Оператор DELETE FROM
DELETE FROM имя_таблицы
[WHERE условие]
Оператор удаляет из указанной таблицы записи в соответствии с заданным
условием. При отсутствии предложения WHERE удаляются все записи.
Пример 1.23.
DELETE FROM Журнал
WHERE НазваниеЖурнала="Новый мир";
Оператор UPDATE
UPDATE имя_таблицы
SET
имя_столбца = значение|(SELECT…)
[,имя_столбца = значение|(SELECT…)…]
[WHERE условие]
Устанавливает значения для указанных столбцов в строках таблицы, соот-
ветствующих условию отбора. Значение может быть получено как результат
вложенного запроса.
Пример 1.24 (увеличение минимального размера оплаты труда – МРОТ).
UPDATE Зарплата
SET Оклад = 1200
WHERE Оклад < 1200;
Оператор CREATE TABLE. Оператор создает таблицу с заданным именем
и набором столбцов.
Упрощенная форма:
CREATE TABLE имя_таблицы (
имя_столбца тип_данных[(размер)]
[,имя_столбца тип_данных [(размер)] …]
)
Названия и описание основных типов данных, допустимых при создании
таблиц, приведены ниже.
Пример 1.25. Создается таблица с именем «МояТаблица», содержащая три
столбца (поля) с именами «Поле1», «Поле2» и «Поле3».
CREATE TABLE МояТаблица (
Поле1 COUNTER,
Поле2 INTEGER,
Поле3 CHAR
);
Кроме имен и типов данных, при создании таблицы могут быть заданы раз-
личные ограничения. Различают простые и составные ограничения. Простые
ограничения задаются в форме атрибутов конкретных столбцов, составные ука-
зываются отдельно и могут применяться к нескольким столбцам. Все ограниче-
ния могут быть заданы также визуальными средствами – в конструкторе таблиц
или схеме данных.
Общая форма оператора:
CREATE TABLE имя_таблицы (
имя_столбца тип[(размер)] [атрибуты]
[,имя_столбца тип[(размер)] [атрибуты] …]
[,PRIMARY KEY (имя_столбца [, имя_столбца …])]
[,FOREIGN KEY (имя_столбца [, имя_столбца …])
REFERENCES имя_таблицы
[(имя_столбца [, имя_столбца])]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]
]
)
Некоторые атрибуты, задающие простые ограничения для столбцов:
NULL или NOT NULL
Соответственно разрешает или запрещает помещать пустые значения в
этот столбец.
UNIQUE
Накладывает требование уникальности значений. Для любых двух строк
таблицы значения в этом столбце не могут быть одинаковыми.
PRIMARY KEY
Объявляет столбец первичным ключом таблицы. Имеет тот же смысл, что
и задание ключевого поля в конструкторе таблиц (см. [1]).
REFERENCES имя_таблицы [(имя_столбца)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]
Объявляет данный столбец внешним ключом, который связан с заданным
полем заданной таблицы. Поле, с которым устанавливается связь, должно
быть ключевым, или, по крайней мере, уникальным.
Необязательные атрибуты ON UPDATE и ON DELETE могут принимать
значения CASCADE или SET NULL.
Задание ограничения REFERENCES имеет тот же смысл, что и создание
связи между таблицами с использованием схемы данных (см. [1]).
Использование атрибутов ON UPDATE и ON DELETE равносильно за-
данию соответствующих свойств этой связи («Обеспечение целостности
данных», «Каскадное обновление связанных полей», «Каскадное удале-
ние связанных записей») в схеме данных.
Пример 1.26.
CREATE TABLE МояТаблица (
Поле1 COUNTER PRIMARY KEY,
Поле2 INTEGER UNIQUE NOT NULL,
Поле3 CHAR NOT NULL
);
Рассмотрим теперь составные ограничения:
PRIMARY KEY (имя_столбца [, имя_столбца
Объявляет первичный ключ таблицы. В скобках перечисляются столбцы,
входящие в первичный ключ.
…])
FOREIGN KEY
(имя_столбца
[,
имя_столбца
…])
REFERENCES имя_таблицы [(имя_столбца [, имя_столбца …])]
[ON UPDATE CASCADE
[ON DELETE CASCADE
|SET NULL]
|SET NULL]
Объявляет столбцы, перечисленные в скобках, внешним ключом. Пред-
ложение REFERENCES указывает имя таблицы и ее столбцов, с кото-
рыми устанавливается связь.
Пример 1.27. Ниже приведены операторы, создающие три связанные таб-
лицы:
CREATE TABLE Клиент (
КодКлиента COUNTER PRIMARY KEY,
Фамилия CHAR NOT NULL,
Имя CHAR NOT NULL,

);
Отчество CHAR NOT NULL
CREATE TABLE Журнал (
КодЖурнала COUNTER PRIMARY KEY,
Название CHAR NOT NULL
);
CREATE TABLE Подписка (
КодКлиента INTEGER REFERENCES Клиент(КодКлиента),
КодЖурнала INTEGER REFERENCES Клиент(КодЖурнала),
PRIMARY KEY (КодКлиента, КодЖурнала)
);
Таблицы соответствуют схеме данных, рассмотренной в [1]: