Операторы DDL в языке SQL с заданием ограничений целостности - часть 7
Обычно имя ограничения состоит из краткого названия типа ограничения, далее через символ подчеркивания идет имя атрибута или таблицы, в зависимости от того, к какому уровню относится ограничение, и, наконец, порядковый номер ограничения данного типа, если к одному объекту задается несколько ограничений одного типа.
Сокращенные обозначения ограничений состоят из одной или двух букв и могут быть следующими:
PK - для первичного ключа;
FK - для внешнего ключа;
CK - для проверочного ограничения;
U - для ограничения уникальности;
DF - для ограничения типа значение по умолчанию.
Приведем пример оператора создания таблицы BOOKS с именованными ограничениями:
CREATE TABLE BOOKS
(
ISBN varchar(14) NOT NULL,
TITLE varchar(120) NOT NULL,
AUTOR varchar (30) NULL.
COAUTOR varchar(30) NULL.
YEAR_PUBL smallint NOT NULL.
PUBLICH varchar(20) NULL.
PAGES smallint NOT NULL.
CONSTRAINT PK_BOOKS PRIMARY KEY (ISBN).
CONSTRAINT DF_ YEAR_PUBL DEFAULT (Year(GetDate( )).
CONSTRAINT CK_ YEAR_PUBL CHECK (YEAR_PUBL >= 1960 AND
YEAR_PUBL
CONSTRANT CK_PAGES CHECK (PAGES > = 5 AND PAGES
CONSTRAINT CK_BOOKS CHECK (NOT (AUTOR IS NULL AND COAUTOR IS NOT NULL))
):
CREATE TABLE READERS
(
READER_ID Smallint PRIMARY KEY.
FIRST_NAME char(30) NOT NULL.
LAST_NAME char(30) NOT NULL.
ADRES char(50).
146
HOME_PHON char(12).
WORK_PHON char(12),
BIRTH_DAY date СНЕCK DateDiff(year. GetDate().BIRTH_DAY) >=17 ).
CONSTRAINT CK_READERS CHECK (HOME_PHON IS NOT NULL OR WORK_PHON IS NOT NULL)
);
CREATE TABLE CATALOG
(
ID_CATALOG Smallint PRIMARY KEY,
KNOWELEDGE_AREA varchar(150)
);
CREATE TABLE EXEMPLAR
(
ID_EXEMPLAR int NOT NULL,
ISBN varchar(14) NOT NULL FOREIGN KEY references BOOKS(ISBN).
READER_ID Smallint(4) NULL FOREIGN KEY references READERS (READERJD).
DATA_IN date.
DATA_OUT date,
EXIST Logical,
PRIMARY KEY (ID_EXEMPLAR, ISBN)
);
CREATE TABLE RELATION_1
(
ISBN varchar(14) NOT NULL FOREIGN KEY references BOOKS(ISBN).
ID_CATALOG smallint NOT NULL FOREIGN KEY references CATALOG(ID_CATALOG).
Содержание Назад Вперед