Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯЗЫК SQL.doc
Скачиваний:
17
Добавлен:
16.11.2018
Размер:
903.17 Кб
Скачать

Id_студента integer primary key,

ФИО CHAR(20) NOT NULL,

Специальность INTEGER CHECK (Специальность < 12),

Примечание VARCHAR);

Однако можно сначала определить домен с именем specDomain, задав для него тип данных и ограничение:

CREATE DOMAIN specDomain INTEGER

CHECK (Специальность < 12);

В определении домена, пока не связанного ни с каким столбцом какой-либо таблицы, задается тип значений домена и ограничение на эти значения.

С учетом того, что домен specDomain создан, определение таб­лицы Студент можно задать следующим образом:

CREATE TABLE Студент (

Id_студента integer primary key,

ФИО CHAR(20) NOT NULL,

Специальность specDomain,

Примечание VARCHAR );

Рассмотрим еще один пример. Предположим, в нескольких таблицах вашей базы данных имеется столбец с именем Код_продукта и типом данных char(6), значения которого должны начинаться с символа 'А', 'с' или 'х’. Для таких столбцов, раз их несколько, можно предварительно создать общий домен:

CREATE DOMAIN ProdDomain CHAR (6)

CHECK (SUBSTRING (VALUE, 1, 1) IN ('A', 'C, 'X'));

После определения домена можно создать таблицу, использующую этот домен:

CREATE TABLE Товары (

Код_продукта ProdDomain,

Описание VARCHAR );

Ограничения для таблиц

Ограничения на вводимые данные можно назначить не только для отдельных столбцов, но и для таблицы в целом. Это удобно в тех случаях, когда необходимо для нескольких столбцов назначить одинаковые ограничения.

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

Основ­ные ограничения для таблицы.

Определение Описание

UNIQUE(списокСтолбцов) Значения в столбцах, указанных в списке, должны быть уникальными

PRIMARY KEY В каждой таблице должен быть только один первичный

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

CHECK(условие) Позволяет производить проверку условия при вводе данных. Значение будет сохранено , если условие выполняется, в противном случае - нет. В отличие от ограничения для столбца, здесь можно использовать условия, оперирующие значениями различных столбцов таблицы.

FOREIGN KEY Ограничения типа “внешний ключ”.

REFERENCES

В следующем примере создается таблица студент (Фамилия, имя, Отчество, специальность, Примечание). Предполагается, что комбинация значений первых трех столбцов должна однозначно идентифицировать запись в таблице, т. е. являться первичным ключом.

CREATE TABLE Студент (

Фамилия CHAR(20),

Имя CHAR(15),

Отчество CHAR(20),

Специальность INTEGER,

Примечание VARCHAR,

CONSTRAINT PRIMARY KEY (Фамилия, Имя, Отчество)

);

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