Constraint studentinnunique unique

SName VARCHAR(35),

IDGroup INT NOT NULL,

SPasport Varchar(4)NOT NULL,

NPasport Varchar(6)NOT NULL,

DataPasport DateTime NOT NULL,

NameDeptPasport Varchar(35)NOT NULL,

CONSTRAINT StudentSPasportUnique

UNIQUE (SPasport, NPasport, DataPasport, NameDeptPasport));

Обратим внимание, что атрибут INN, имеющий ограничение UNIQUE, не имеет ограничения NOT NULL.

Задание 1

Создать таблицы Report, Teacher, SGroup, установив все необходимые ограничения.

Ограничение FOREIGN KEY

Синтаксис на уровне таблицы

[, СONSTRAINT <имя ограничения>] FOREIGN KEY (<список столбцов>)

REFERENCES <имя ссылочной таблицы> [(<список столбцов>)]

[ON DELETE {CASCADE|NO ACTION}]

[ON UPDATE {CASCADE|NO ACTION}]

Ограничение FOREIGN KEY устанавливает внешний ключ и организует ссылку по внешнему ключу на заданное в предложении REFERENCES отношение. После добавления внешнего ключа любая запись, добавляемая в ссылаемую таблицу, должна иметь запись в ссылочной таблице. Ограничений FOREIGN KEY в таблице может быть несколько, в идеале столько, сколько таблица имеет внешних (чужих) ключей. Следует напомнить, что внешний ключ может быть подмножеством первичного ключа, как это и продемонстрировано в следующем примере (см. Пример 9).

Пример 9

Задача.

Назначить в таблице Успеваемость (Progress) внешний ключ и организовать ссылку по внешнему ключу на все ссылочные таблицы.

Решение.

Ссылочными по отношению к отношению Progress являются таблицы Student, Teacher, Subject, Report, следовательно, в таблице будет четыре внешних ключа.

CREATE TABLE Progress

(NRecordBook Varchar(6),

PIN INT,

IDSubject INT,

IDReport INT,

NTerm Varchar(2),

Mark SMALLINT,

CONSTRAINT ProgressPrimary PRIMARY KEY

(NrecordBook,IDSubject,IDReport,NTerm),

CONSTRAINT ProgressStudentForeign FOREIGN KEY (NRecordBook) REFERENCES Student,


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: