КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Определение столбца.
Столбцы новой таблицы задаются в инструкции CREATE TABLE. Определения столбцов представляют собой список, заключенный в круглые скобки, элементы которого отделены друг от друга запятыми. Порядок следования определений столбцов в списке соответствует расположению столбцов в таблицею Каждое определение содержит следующую информацию: · Имя столбца, которое используется для обращения к столбцу в инструкциях SQL. Каждый столбец в таблице должен иметь уникальное имя, состоящее только из символов латиницы и знаков подчеркивания. Пробелы в именах столбцов недопустимы. · Тип данных столбца, указывающий, данные какого типа хранятся в столбце. Для некоторых типов (например, VARCHAR), требуется указание размерности или точности (как, например, для DECIMAL). Эта информация заключается в круглые скобки и должна следовать за ключевым словом, определяющим тип данных). · Значение по умолчанию, которое записывается в столбец, если в инструкции добавления данных не было явно указано значение для данного столбца (блок DEFAULT). · Указание на то, обязательно ли столбец должен содержать данные. Ограничение NOT NULL, если оно задано, запрещает занесение в столбец значения NULL; в противном случае значения NULL допускаются.
Стандарт SQL2 (SQL92) позволяет указывать в определении столбца несколько дополнительных элементов, с помощью которых модно ограничить значения данных в столбце (блок CHECK) и установить, что столбец обязательно должен содержать уникальные значения (UNIQUE) либо являться первичным или внешним ключом (PRIMARY / FOREIGN KEY). Так же определение столбца может содержать раздел ограничений ссылочной целостности (блок REFERENCES). Значение по умолчанию (блок DEFAULT) может быть указано в виде литеральной константы с типом, соответствующим типу столбца или путем задания ключевого слова NULL, означающего, что значением по умолчанию является неопределенное значение. Если значение столбца по умолчанию не специфицировано, и в разделе ограничений целостности столбца указано NOT NULL, то попытка занести в таблицу строку с не специфицированным значением данного столбца приведет к ошибке. Указание в разделе ограничений целостности NOT NULL приводит к неявному порождению проверочного ограничения целостности для всей таблицы CHECK (column IS NOT NULL) (где column - имя данного столбца). Если ограничение NOT NULL не указано, и раздел умолчаний отсутствует, то неявно порождается раздел умолчаний DEFAULT NULL. Если указана спецификация уникальности, то порождается соответствующая спецификация уникальности для таблицы. Если в разделе ограничений целостности указаны ограничения ссылочной целостности для данного столбца (блок REFERENCES), то порождается соответствующее определение ограничение ссылочной целостности для таблицы: Наконец, если указано проверочное ограничение столбца (блок CHECK), то условие поиска этого ограничения должно ссылаться только на данный столбец, и неявно порождается соответствующее проверочное ограничение для всей таблицы. Для одной таблицы может быть задано несколько ограничений ссылочной целостности, в том числе те, которые неявно порождаются ограничениями ссылочной целостности столбцов. Стандарт SQL1 устанавливает, что ограничения таблицы фактически проверяются при выполнении каждого оператора SQL. Наличие правильно подобранного набора ограничений БД очень важно для надежного функционирования прикладной информационной системы. Вместе с тем, в некоторых СУБД ограничения целостности практически не поддерживаются. Поэтому при проектировании прикладной системы необходимо принять решение о том, что более существенно: рассчитывать на поддержку ограничений целостности, но ограничить набор возможных СУБД, или отказаться от их использования на уровне SQL, сохранив возможность использования не самых современных СУБД.
|