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

С помощью ограничения CHECK задаются ограничения на значения атрибутов.

Cинтаксис ограничения CHECK на уровне столбца

[СONSTRAINT <имя ограничения>] CHECK (<условие>)

Пример 11

Задача.

Создать таблицу Progress, назначить ограничения PRIMARY KEY и запретить ввод в таблицу оценок, отличных от 2,3,4,5, т.е. создать ограничение для значений столбца Mark в таблице Progress.

Решение.

CREATE TABLE Progress

(NRecordBook Varchar(6)

CONSTRAINT ProgressStudentForeign FOREIGN KEY

REFERENCES Student,

PIN INT,

IDSubject INT,

IDReport INT,

NTerm Varchar(2),

Mark SMALLINT

CONSTRAINT ProgressMarkCheck CHECK(Mark BETWEEN 2 AND 5),

CONSTRAINT ProgressPrimary PRIMARY KEY

(NrecordBook,IDSubject,IDReport,Nterm),

CONSTRAINT ProgressSubjectForeign FOREIGN KEY (IDSubject) REFERENCES Subject ON DELETE CASCADE,

CONSTRAINT ProgressReportForeign FOREIGN KEY

(IDReport) REFERENCES Report ON DELETE CASCADE,

CONSTRAINT ProgressTeacherForeign FOREIGN KEY

(PIN) REFERENCES Teacher ON DELETE CASCADE)

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

Задание 2

Удалить все созданные таблицы. Повторить создание учебного примера[2] согласно описаниям, приведенным выше.

Если таблицы созданы и связаны правильно, то на диаграмме, созданной в Enterprise Manager, это будет выглядеть так, как показано на следующем рисунке (см. Рисунок 1).

Рисунок 1

Вопросы для самоконтроля к лабораторной работе № 1

1. К какой группе команд SQL следует отнести команду CREATE?

2. Пусть даны два отношения R={ AB } и R={ A C}. В какой последовательности следует создавать таблицы, чтобы задать ограничения целостности, используя только команду Create?

3. С какой целью устанавливаются ограничения?

4. Какие ограничения могут быть установлены в отношении?

5. С какой целью используется предложение ON DELETE Cascade?

6. С какой целью используется предложение ON UPDATE Cascade?

7. Какова область действия ограничений в таблице?

8. Какие требования предъявляются к именам объектов базы данных?

9. Когда целесообразно устанавливать ограничения на уровне таблицы?

10. Когда целесообразно устанавливать ограничения на уровне столбца?

11. В чем отличие ограничений Primary key и Unique?

12. Каких правил следует придерживаться при назначении имен ограничений?

13. При каком определении ограничения FOREIGN KEY строка в ссылочной таблице не может быть удалена?

14. На какие столбцы запрещена ссылка в выражении ограничения CHECK?

15. Для каких столбцов обязательно должно быть установлено ограничение NOT NULL?

16. При создании какого из ограничений автоматически накладывается ограничение NOT NULL на атрибуты этого ограничения?

17. Для каких типов данных ширина столбца не является обязательным параметром?

18. Какой тип данных может быть присвоен только единственному столбцу в таблице?



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



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