Ограничение PRIMARY KEY создает первичный ключ таблицы. Ограничение PRIMARY KEY — это столбец или набор столбцов, однозначно идентифицирующий каждую строку в таблице. Это ограничение требует уникальности конкретного столбца или набора столбцов и гарантирует отсутствие в них неопределенных значений. Ограничения PRIMARY KEY могут быть заданы как для столбца, так и для таблицы.
Ограничение FOREIGN KEY
Ограничение FOREIGN KEY, направленное на обеспечение целостности ссылок, задает столбец или набор столбцов в качестве внешнего ключа и устанавливает связь с первичным или уникальным ключом той же самой таблице или между таблицами. Значение внешнего ключа должно совпадать с существующим значением в родительской таблице или быть неопределенным (NULL). Ограничения FOREIGN KEY могут быть заданы как на уровне столбца, так и на уровне таблицы. Внешний ключ, являющийся частью первичного ключа, не может быть неопределенным значением, поскольку ни одна часть первичного ключа не может иметь значение NULL.
Внешний ключ описывается комбинацией следующих ключевых слов:
· FOREIGN KEY задает столбец в дочерней таблице как ограничение на уровне таблицы.
· REFERENCES указывает таблицу и столбец в родительской таблице.
· ON DELETE CASCADE означает, что если удаляется строка в родительской таблице, зависимые строки в дочерней таблице также будут удалены, а если отсутствует, то, строка родительской таблицы не может быть удалена.
Ограничение CHECK
Ограничение CHECK определяет условие, которому должна удовлетворять каждая строка. Это условие может содержать те же конструкции, что и в запросах за исключением следующих:
· Ссылок на псевдостолбцы CURRVAL, NEXTVAL, LEVEL и ROWNUM
· Обращений к функциям SYSDATE, UID, USER и USERENV
· Запросов со ссылками на другие значения в других строках
Ограничение CHECK может быть задано как на уровне столбца, так и на уровне таблицы. Синтаксис этого ограничения применим к любому столбцу таблицы, а не только к тому, для которого задано данное ограничение.
Пример.