Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НАЗВАНИЕ ОТЧЕТ МБМ.docx
Скачиваний:
28
Добавлен:
06.03.2016
Размер:
45.42 Кб
Скачать

Создание таблицы

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

<оператор создания таблицы>::= CREATE TABLE <имя таблицы> (<элемент таблицы>[{,<элемент таблицы>}...])

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

Каждая таблица БД имеет простое и квалифицированное (уточненное) имена. В качестве квалификатора имени выступает “идентификатор полномочий”.

Квалифицированное имя таблицы имеет вид: <идентификатор полномочий>.<простое имя>

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

<определение столбца>::= <имя столбца><тип данных>[<раздел умолчания>] [{<ограничение целостности столбца>}...]

<раздел умолчания>::= DEFAULT {<литерал> | USER | NULL}

<ограничение целостности столбца>::= NOT NULL[<спецификация уникальности>] | <спецификация ссылок> | CHECK (<условие поиска>)

В разделе умолчания указывается значение, которое должно быть помещено в строку, заносимую в данную таблицу, если значение данного столбца явно не указано. Значение по умолчанию может быть: 1) литеральная константа, соответствующая типу столбца; 2) символьная строка, содержащая имя текущего пользователя (USER); 3) неопределенное значение (NULL).

Если значение столбца по умолчанию не специфицировано, и в разделе ограничений целостности столбца указано NOT NULL (т.е. наличие неопределенных значений запрещено), то попытка занести в таблицу строку с неспецифицированным значением данного столбца приведет к ошибке.

Если ограничение NOT NULL не указано, и раздел умолчаний отсутствует, то неявно порождается раздел умолчаний DEFAULT NULL.

Ограничения целостности столбца в принципе сходны с ограничениями целостности таблицы и рассмотрены ниже.

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

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

<определение ограничений целостности таблицы>::= <определение ограничения уникальности> | <определение ограничения по ссылкам> | <определение проверочного ограничения>

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

<спецификация уникальности>::= UNIQUE | PRIMARY KEY

<список столбцов>::= <имя столбца>[{,<имя столбца>}..]

<определение ограничения по ссылкам>::= FOREIGN KEY (<ссылающиеся столбцы>)<спецификация ссылок>

<спецификация ссылок>::== REFERENCES <ссылаемая таблица и столбцы>

<ссылаемая таблица и столбцы>::=<имя таблицы>[(<список столбцов>)]

<определение проверочного ограничения>::= CHECK (<условие поиска>)

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

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

Проверочное ограничение специфицирует условие, которому должен удовлетворять в отдельности каждая строка таблицы. Это условие не должно содержать подзапросов, спецификаций агрегатных функций, а также ссылок на внешние переменные или параметров. В него могут входить только имена столбцов данной таблицы и литеральные константы.

Примеры создания таблиц с ограничениями:

CREATE TABLE employee

(emp_id INTEGER CONSRAINT p1 PRIMARY KEY,

fname CHAR(20) NOT NULL,

minitial CHAR(1) NULL,

lname VARCHAR(30) NOT NULL,

job_id SMALLINT NOT NULL DEFAULT 1

REFERENCES jobs(job_id)

CREATE TABLE inventory

(code CHAR(4) NOT NULL

CONSTRAINT c1 CHECK(code LIKE"[0-9][0-9][0-9][0-9]"),

high INT NOT NULL CHECK (high>0),

low INT NOT NULL CHECK (low>0),

CONSTRAIN c4 CHECK (hign>=low AND high-low<1000)