Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_k_ekzamenu (1).doc
Скачиваний:
5
Добавлен:
28.09.2019
Размер:
275.97 Кб
Скачать

Типы ограничений

Ограничения доменов – распространяется на один или несколько столбцов(ограничения проверки, правила, значения по умолчанию).

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

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

Ограничения ключей

Существуют 4 общепринятых типа ключей:

первичный;

внешний;

альтернативный;

инверсный.

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

Инверсный ключ фактически представляет собой индекс, который не налагает на таблицу какие-либо ограничения, а вместо поддержки целостности применяется в качестве альтернативного способа сортировки.

Ограничения первого ключа

Первичный ключ (primary key) представляет собой уникальный идентификатор строки.

Первичный ключ должен содержать уникальные значения (и поэтому не может принимать нулевые значения).

Создать первичный ключ при помощи команды CREATE TABLE либо команды ALTER TABLE.

CREATE TABLE Customers

(CustomerNo int NOT NULL PRIMARY KEY,

CustomerName varchar (25) NOT NULL)

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

ALTER TABLE Employees

ADD CONSTRAINT PK_EmployeeID

PRIMARY KEY (EmployeeID)

Ограничения внешнего ключа

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

<имя_столбца><тип_данных>

<допустимость_NULL_значения>

FOREYGN KEY REFERENCES <имя_таблицы>

(<имя_столбца>)

[ON DELETE {CASCADE NO ACTION}]

[ON UPDATE {CASCADE NO ACTION}]

_______________________________________________________________________

Пример:

CREATE TABLE OrderDetails(

OrderID int NOT NULL,

UnitPrice money NOT NULL,

PartNo varchar(10) NOT NULL,

8000

CONSTRAINT PK_OrderDetails PRIMARY KEY (OrderID, PartNo),

CONSTRAINT PK_Orde FPREYGN KEY (OrderID)

ON DELETE NO ACTION

ON UPDATE CASCADE

)

Добавление внешнего ключа в существующую таблицу:

= Первичный и внешний ключ может существовать для одного и того же поля.

= В каждой таблице может присутствовать от 0 до 253 внешних ключей.

= Единственное ограничивающее условие – данный столбец может иметь только один внешний ключ.

= На один и тот же столбец может ссылаться неограниченное количество таблиц.

ALTER TABLE Orders

ADD CONSTRAINT FK_EmployeeOrders

FOREYGN KEY (EmployeeID) REFERENCES

Employees (EmployeeID)

Ограничение уникальности

= Таблица может иметь более одного ограничения уникальности.

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

ALTER TABLE Employees

ADD CONSTRAINT AK_EmployeeSSN

UNIQUE (SSN)

Выполнив запуск хранимой процедуры EXEC sp_helpconstraint <имя_таблицы>, можно получить сведения об именах, критериях и статусе ограничений данной таблицы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]