ОПРЕДЕЛЕНИЕ ОГРАНИЧЕНИЙ ЦЕЛОСНОСТИ ТАБЛИЦЫ
Раздел определения ограничений целостности таблицы обладает следующим синтаксисом:
<table constraint definition> ::=<unique constraint definition>| <referential constraint definition>| <check constraint definition><unique constraint definition> ::=<unique specification> (<unique column list>)<unique specification> ::=UNIQUE | PRIMARY KEY<unique column list> ::=<column name> [{, <column name>}. . . ]<referential constraint definition> ::=FOREIGN KEY (<referencing columns>)<references specification><references specification> ::=REFERENCES <referenced table and columns><referencing columns> ::=<reference column list><referenced table and columns> ::=<table name> [(<reference column list>)]<reference column list> ::=<column name> [{, <column name>}. . . ]<check constraint definition> ::=CHECK (<search condition>)
Для одной таблицы может быть задано несколько ограничений целостности, в том числе те, которые неявно порождаются ограничениями целостности столбцов. Стандарт SQL/89 устанавливает, что ограничения таблицы фактически проверяются при выполнении каждого оператора SQL.
Замечание: наличие правильно подобранного набора ограничений БД очень важно для надежного функционирования прикладной информационной системы. Вместе с тем в некоторых СУБД ограничения целостности практически не поддерживаются. Поэтому при проектировании прикладной системы необходимо принять решение о том, что более существенно: рассчитывать на поддержку ограничений целостности, но ограничить набор возможных СУБД или отказаться от их использования на уровне SQL, сохранив возможность применения не самых современных СУБД.
Далее T обозначает таблицу, для которой определяются ограничения целостности.