Описание столбцов
Как видно из синтаксиса команды СREАТЕ TABLE, для каждого столбца указывается предложение <определение_ столбца>, с помощью которого и задаются свойства столбца. Предложение имеет следующий синтаксис:
<Имя столбца> <тип данных>
[<ограничение_ столбца> ] [,...,<ограничение_ столбца>]
Рассмотрим назначение и использование параметров.
Имя_ столбца — идентификатор, задающий имя столбца таблицы;
Тип_ данных — задает тип данных столбца. Если при определении столбца явно не указано ограничение на хранение значений NULL, то будут использованы свойства типа данных, т. е. если выбранный тип данных позволяет хранить значения NULL то и в столбце можно будет хранить значения NULL. Если же при определении столбца в команде CREATE TABLE явно будет разрешено или запрещено хранение значений NULL, то свойства типа данных будут перекрыты установленным на уровне столбца ограничением. Например, если тип данных позволяет хранить значения NULL, а на уровне столбца будет установлен запрет, то попытка вставки значения NULL в столбец закончится ошибкой;
Ограничение_ столбца — с помощью этого предложения указываются ограничения, которые будут определены для столбца. Синтаксис предложения следующий:
<ограничение_ столбца>::=[ CONSTRAINT <имя_ ограничения > ]
{[ DEFAULT <выражение>]
[ NULL NOT NULL ]
[ PRIMARY KEY UNIQUE ]
[FOREIGN KEY
REFERENCES <имя_ главной_ таблицы>[(<имя_ столбца> [,...,n] )]
[ ON DELETE { CASCADE NO ACTION } ]
[ ON UPDATE { CASCADE NO ACTION ) ]
]
[СНЕСК (<логическое_ выражение>)]
{
Рассмотрим назначение параметров.
CONSTRAINT — необязательное ключевое слово, после которого указывается название ограничения на значения столбца (имя ограничения). Имена ограничений должны быть уникальны в пределах базы данных.
DEFAULT — задает значение по умолчанию для столбца. Это значение будет использовано при вставке строки, если для столбца явно не указано никакое значение.
NULL│NOT NULL — ключевые слова, разрешающие (NULL) или запрещающие (NOT NULL) хранение в столбце значений NULL. Если для столбца не задано значение по умолчанию, то при вставке строки с неизвестным значением для столбца будет предприниматься попытка вставки в столбец значения NULL. Если при этом для столбца указано ограничение NOT NULL, то попытка вставки строки будет отклонена, и пользователь получит соответствующее сообщение об ошибке.
PRIMARY KEY — определение первичного ключа на уровне одного столбца (т. е. первичный ключ будет состоять только из значений одного столбца). Если необходимо сформировать первичный ключ на базе двух и более столбцов, то такое ограничение целостности должно быть задано на уровне таблицы. При этом следует помнить, что для каждой таблицы может быть создан только один первичный ключ.
UNIQUE — указание на создание для столбца ограничения целостности UNIQUE, что позволит гарантировать уникальность каждого отдельного значения в столбце в пределах этого столбца. В таблице может быть создано несколько ограничений целостности UNIQUE.
FOREIGN KEY ... REFERENCES —указание на то, что столбец будет служить внешним ключом для таблицы, имя которой задается с помощью параметра <имя_ главной_ таблицы>.
(имя_ столбца [,...,n]) — столбец или список перечисленных через запятую столбцов главной таблицы, входящих в ограничение FOREIGN KEY. При этом столбцы, входящие во внешний ключ, могут ссылаться только на столбцы первичного ключа или столбцы с ограничением UNIQUE таблицы.
ON DELETE {CASCADE I NO ACTION} — эти ключевые слова определяют действия, предпринимаемые при удалении строки из главной таблицы. Если указано ключевое слово CASCADE, то при удалении строки из главной (родительской) таблицы строка в зависимой таблице также будет удалена. При указании ключевого слова NO ACTION в подобном случае будет выдана ошибка. Значением по умолчанию является вариант NO ACTION.
ON UPDATE {CASCADE│NO ACTION} — эти ключевые слова определяют действия, предпринимаемые при модификации строки главной таблицы. Если указано ключевое слово CASCADE, то при модификации строки из главной (родительской) таблицы строка в зависимой таблице также будет модифицирована. При использовании ключевого слова NO ACTION в подобном случае будет выдана ошибка. Значением по умолчанию является вариант NO ACTION.
СНЕСК — ограничение целостности, инициирующее контроль вводимых в столбец (или столбцы) значений;
Логическое_ выражение — логическое выражение, используемое для ограничения СНЕСК.
Дата добавления: 2015-04-15; просмотров: 941;