Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
348.doc
Скачиваний:
12
Добавлен:
30.04.2022
Размер:
2.67 Mб
Скачать

8.2. Средства определения схемы

8.2.1. Определение таблицы

Оператор определения таблицы имеет следующий синтаксис:

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

CREATE TABLE <имя таблицы> (<элемент таблицы>

[{,<элемент таблицы>}...])

<элемент таблицы> ::=

<определение столбца>

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

Кроме имени таблицы в операторе специфицируется список элементов таблицы, каждый из которых служит либо для определения столбца, либо для определения ограничения целостности определяемой таблицы. Требуется наличие хотя бы одного определения столбца.

Для определения столбцов таблицы и ограничений целостности используются специальные операторы, которые должны быть вложены в оператор определения таблицы.

Оператор определения столбца описывается следующими синтаксическими правилами:

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

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

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

<значение по умолчанию> ::=

DEFAULT { <литерал> | NULL }

<ограничения целостности столбца> ::=

NOT NULL [<спецификация уникальности>]

| <спецификация ссылки>

| CHECK (<условие поиска>)

Коме обязательной части, в которой определяется имя столбца и его тип данных, определение столбца может содержать два необязательных раздела: раздел значения столбца по умолчанию и раздел ограничений целостности столбца.

В разделе значения по умолчанию указывается значение, которое должно быть помещено в строку, заносимую в данную таблицу, если значение данного столбца явно не указано. Значение по умолчанию может быть указано в виде литеральной константы с типом, соответствующим типу столбца, или путем задания ключевого слова NULL, означающего, что значением по умолчанию является неопределенное значение. Если значение столбца по умолчанию не установлено, и в разделе ограничений целостности столбца указано NOT NULL, то попытка занести в таблицу строку с неспецифицированным значением данного столбца приведет к ошибке.

Указание в разделе ограничений целостности NOT NULL приводит к неявному порождению проверочного ограничения целостности для всей таблицы "CHECK (C IS NOT NULL)" (где C - имя данного столбца). Если указана спецификация уникальности, то порождается соответствующая спецификация уникальности для таблицы.

Если в разделе ограничений целостности указано ограничение по ссылкам данного столбца (<спецификация ссылки>), то порождается соответствующее определение ограничения по ссылкам для таблицы:

FOREIGN KEY(C) <спецификация ссылки>.

Если указано проверочное ограничение столбца, то условие поиска этого ограничения должно ссылаться только на данный столбец, и неявно порождается соответствующее проверочное ограничение для всей таблицы.

Оператор изменения структуры таблицы имеет формат вида:

ALTER TABLE <имя таблицы>

({ADD, MODIFY, DROP} <имя столбца> [<тип данных>] [NOT NULL]

[,{ADD, MODIFY, DROP} <имя столбца> [<тип данных>] [NOT NULL]]...)

Изменение структуры таблицы может состоять в добавлении (ADD), изменении (MODIFY) или удалении (DROP) одного или нескольких столбцов таблицы. Правила записи оператора ALTER TABLE такие же, как и оператора CREATE TABLE. При удалении столбца указывать <тип данных> не нужно.

Оператор удаления таблицы имеет формат вида:

DROP TABLE <имя таблицы>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]