Определение ограничений целостности таблицы
Ограничения целостности таблицы обладают следующим синтаксисом:
<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 обозначает таблицу, для которой определяются ограничения целостности.