Ограничение PRIMARY KEY служит для задания первичного ключа. Как известно, ключ может быть простым, состоящим из одного поля, и составным, включающим несколько полей. В первом случае ограничение может быть задано или непосредственно при описании поля (см. пример описания таблицы «Spr_mat» ниже), или как ограничивающее условие в конце описания таблицы (см. пример описания таблицы «Spr_post» ниже). Если ключ составной, то может быть использован только второй способ задания ограничения, причем поля, входящие в состав ключа поля, указываются в скобках и разделяются запятыми (см. пример описания таблицы «Post» ниже). В таблице может быть задано только одно ограничение PRIMARY KEY
Ограничение UNIQUE также может относиться как к отдельному полю, так и к совокупности полей. Оно похоже на ограничение PRIMARY KEY, но в отличие от него, во-первых, может задаваться для нескольких разных полей или совокупностей полей и, во-вторых, для них разрешено значение NUL.
Внешний ключ (FOREIGN KEY) - это столбец в дочерней таблице, ссылающийся на ключ родительской таблицы. Использование внешних ключей является основным механизмом поддержания ссылочной целостности внутри реляционной базы данных. При описании внешнего ключа указывается также ссылка на соответствующие поля в родительской таблице (REFERENCES) (см. пример описания таблицы «Spr_post» ниже). В родительской таблице для столбца или совокупности столбцов, на которые идет ссылка, должно быть задано ограничение на уникальность. Если внешний ключ составной, то при описании таблиц должны быть выполнены следующие условия: для каждого из полей, на которые идет ссылка, должно быть задано ограничение NOT NULL; число столбцов в ссылке на таблицу и столбцы должно соответствовать числу столбцов во внешнем ключе; i-й столбец во внешнем ключе соответствует i-му столбцу в ссылке на таблицу и столбцы, тип данных и длина поля каждого столбца ссылки должны соответствовать типу данных соответствующего целевого столбца и иметь равную длину.
предыдущаяследующая