ТОП 10:

Дайте характеристику основным типам ограничений.



При создании таблиц (или при их изменении) можно вводить ограничения на значения отдельных столбцов. Если ограничения введены, SQL будет отклонять любые значения, которые не удовлетворяют введенным ограничениям. Имеется два основных типа ограничений — ограничения столбца и ограничения таблицы. Различие между ними в том, что ограничение столбца применяется только к индивидуальным столбцам, в то время как ограничение таблицы применяется к группам из одного или более столбцов.

Ограничения NULL / NOT NULL разрешают или запрещают ввод в поле NULL-значений. Очевидно, что ограничение NOT NULL должно быть указано для первичных ключей, поскольку в противном случае под угрозой окажется целостность данных. Кроме того, отдельные поля таблиц по своему назначению могут требовать только определенных значений. Если поместить ключевые слова NOT NULL сразу после типа данных столбца, любая попытка поместить значение NULL в это поле будет отклонена. В противном случае, SQL будет считать, что для этого столбца NULL-значения разрешены.

Ограничение PRIMARY KEY (первичный ключ), используется для назначения первичных ключей. Поля с таким ограничением не могут принимать NULL-значений, и даже если ограничение NOT NULL не указывается для такого поля, SQL добавляет его по умолчанию. Ограничение PRIMARY KEY автоматически требует уникальности вводимых данных. Будучи назначенным для нескольких столбцов (составной первичный ключ) это ограничение задает уникальность комбинаций соответствующих значений, хотя по отдельности значения в каждом столбце составного ключа не обязательно должно быть уникальным.

Ограничение UNIQUE (уникальный), как и ограничение PRIMARY KEY, ограничивает множество значений для указанных столбцов уникальными значениями. Как и ограничение PRIMARY KEY, ограничение UNIQUE может быть ограничением таблицы, и тогда оно определяет уникальность комбинаций значений соответствующих столбцов.

Ограничение FOREIGN KEY (внешний ключ) обеспечивает принцип ссылочной целостности. Когда столбец является внешним ключом, он определенным образом связан с таблицей, на которую он ссылается. Фактически это означает, что каждое значение в этом столбце (внешнем ключе) непосредственно привязано к значению в другом столбце (родительском ключе). Каждое значение (каждая строка) внешнего ключа должно недвусмысленно ссылаться к одному и только этому значению (строке) родительского ключа. Если это так, то система будет в состоянии ссылочной целостности. Понятно, что любое число внешних ключей может ссылаться к единственному значению родительского ключа. Понятно также, что в качестве родительского ключа могут выступать столбцы с ограничениями PRIMARY KEY или UNIQUE, т.е. столбцы с уникальными значениями и не содержащие NULL-значений. Внешний ключ может содержать только те значения, которые фактически представлены в родительском ключе или NULL-значения, попытка ввода других значений приводит к ошибке. Присутствие NULL-значений во внешнем ключе не нарушит ссылочную целостность, но даст возможность не вводить данные, если они пока не известны.

Ограничение FOREIGN KEY может быть ограничением таблицы или столбца. В первом случае списки столбцов внешнего ключа и родительских ключей, перечисляемых после служебного слова REFERENCES и имени содержащей их таблицы, должны быть идентичны. Во втором случае ограничение относится только к одному столбцу и служебные слова FOREIGN KEY не нужны.

Ограничение CHECK позволяет установить условие, которому должно удовлетворять значение, вводимое в таблицу, прежде чем оно будет принято. Ограничение CHECK состоит из ключевого слова CHECK, сопровождаемое предикатом, который использует указанное поле. Любая попытка модифицировать или вставить значение поля, которое могло бы сделать этот предикат неверным будет отклонена. Таким образом, можно предотвратить ввод нежелательных данных. Ограничение CHECK может использоваться в виде некоторой маски ввода, что обеспечит контроль заданного формата вводимых данных.

 







Последнее изменение этой страницы: 2017-01-25; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.235.74.184 (0.01 с.)