Ограничение unique

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

Cинтаксис предложения CONSTRAINT, задающего ограничение UNIQUE на уровне столбца

[СONSTRAINT <имя ограничения>] UNIQUE

Пример 7

Задача.

Создать ограничение UNIQUE в таблице Subject для столбцаNameSubject.

Решение.

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

CREATE TABLE Subject

(IDSubject INT IDENTITY

CONSTRAINT SubjectPrimary PRIMARY KEY,

NameSubject VARCHAR(35) NOT NULL

CONSTRAINT SubjectNameSubjectUnique UNIQUE);

В этом случае целесообразно установить ограничение NOT NULL на атрибут NameSubject, так как автоматически оно не устанавливается.

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

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

Пример 8

Задача.

Установить ограничения UNIQUE в таблице Student.

Решение.

При установлении ограничений следует обратить внимание на следующее: в отношении студент существует несколько множеств атрибутов, которые могут однозначно идентифицировать любую строку в таблице. Во-первых, это ИНН, во-вторых, Номер зачетки, в-третьих, так называемые паспортные данные, которые включают в себя Номер паспорта, Серию паспорта, Наименование организации, выдавшей паспорт и Дату выдачи. В качестве первичного ключа был выбран Номер зачетки, поскольку именно значение этого атрибута не меняется в процессе жизни базы данных, по крайней мере, его значение определяется внутренними требованиями ВУЗа и может быть ими же отрегулировано. Вероятность изменения ИНН, как это не грустно, существует, а что касается третьего множества, то первой причиной того, чтобы отвергнуть его использование в качестве первичного ключа, является то, что оно составное, во-вторых, вероятность того, что его значения будут меняться в процессе жизни базы данных, очень велика. Для этого студентке нужно просто выйти замуж и сменить фамилию, или кому-то из студентов потерять паспорт. Таким образом, создавая таблицу Student, целесообразно кроме ограничения PRIMARY KEY создать два ограничения UNIQUE.

CREATE TABLE Student

(NRecordBook VARCHAR (6)

CONSTRAINT StudentPrimary PRIMARY KEY,

INN VARCHAR(10)


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



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