Теория баз данных

Операторы DDL в языке SQL с заданием ограничений целостности


Декларативные ограничения целостности задаются на уровне операторов создания таблиц. В стандарте SQL оператор создания таблиц имеет следующий синтаксис:

определение таблицы>: :=CREATE TABLE <имя таблицы>

(<описание элемента таблицы> [{.<описание элемента таблицы>}...])

<описание элемента таблицы>::=<определение столбца>|

<определение ограничений таблицы>

определение столбца>::=<имя столбца> <тип данных>

[<значение по умолчанию>][<дополнительные ограничения столбца>...]

<значение по умолчанию>::=DEFAULT { <litera1> | USER | NULL }

дополнительные ограничения столбца>: :=NOT NULL

[ограничение уникальности столбца>]|

<ограничение по ссылкам столбца>|

CHECK (<условия проверки на допустимость>) ограничение уникальности столбца>::= UNIQUE

<ограничение по ссылкам столбца>: :=FOREIGN KEY спецификация ссылки> спецификация ссылки>::= REFERENCES <имя основной таблицы>

(<имя первичного ключа основной таблицы>)

Давайте кратко прокомментируем оператор определения таблицы, синтаксис которого мы задали с помощью традиционной формы Бэкуса—Наура.

При описании таблицы задается имя таблицы, которое является идентификатором в базовом языке СУБД и должно соответствовать требованиям именования объектов в данном языке.

Кроме имени таблицы в операторе указывается список элементов таблицы, каждый из которых служит либо для определения столбца, либо для определения ограничения целостности определяемой таблицы. Требуется наличие хотя бы одного определения столбца. То есть таблицу, которая не имеет ни одного столбца, определить нельзя. Количество столбцов в одной таблице не ограничено, но в конкретных СУБД обычно бывают ограничения на количество атрибутов. Так, например, в MS SQL Server 6.5 максимальное количество столбцов в таблице было 250, но уже в MS SQL Server 7.0 оно увеличено до 1024.

Оператор CREATE TABLE определяет так называемую базовую таблицу, то есть реальное хранилище данных.

Содержание  Назад  Вперед