CREATE TABLE: основная форма

Оценить
(0 голоса)

Оператор create table создает новую таблицу в базе данных со всеми соответствующими столбцами и их типами данных. Основная форма оператора create table:

create table table_name

(col_namel typel  [not null | null]

[{,  col_name2 type2 [not null | null])  ...])

Параметр tabie_name-- это имя создаваемой базовой таблицы. Максимальное количество таблиц в базе данных ограничивается количеством объектов в этой базе данных (в базе данных может быть более 2 миллиардов объектов, включая таблицы, представления, хранимые процедуры, триггеры и ограничения). col_namel, col_name2, ... являются именами столбцов таблицы, typel, type2, ... -типы данных соответствующих столбцов.

Первое ограничение, которое будет рассматриваться в данной книге, - это существование или отсутствие значений null в столбце. Если задано not null, то присваивание значений null для этого столбца недопустимо. В этом случае столбец не может содержать пустых значений, и при попытке поместить в такой столбец значение null система вернет сообщение об ошибке.

Как уже было сказано, объект базы данных (в данном случае таблица) всегда создается в схеме базы данных. Пользователь может создавать таблицу только в схеме, для которой он имеет полномочия alter. Любой пользователь с ролью sysadmin. db ddladmin или db_owner может создавать таблицы в любой схеме. (Полномочия alter, а также роли базы данных и сервера подробно обсуждаются.)

Создатель таблицы не обязан быть ее владельцем. Это означает, что вы можете создать таблицу, которая принадлежит кому-то другому. Аналогично, таблица, созданная оператором create table, не обязательно будет принадлежать текущей базе данных, если в имени таблицы задается префикс некоторой другой (существующей) базы данных вместе с именем схемы.

Схема, которой принадлежит таблица, имеет два возможных имени по умолчанию. Если таблица задана без явного указания имени схемы, то система ищет для имени этой таблицы соответствующую схему по умолчанию. Если имя объекта не может быть найдено в схеме по умолчанию, то система выполняет поиск в схеме dbo.

Временные таблицы являются специальным видом базовых таблиц. Они сохраняются в базе данных tempdb и автоматически удаляются в конце сессии. Свойства временных таблиц и примеры их использования даны.

В примере 5.4 показано создание всех таблиц базы данных sample. (База данных sample должна быть текущей базой данных.)

CREATE TABLE: основная форма

Помимо типа данных и допустимости пустого значения спецификация столбца может содержать следующие опции:

♦ предложение default;

♦ свойство identity.

Предложение default в определении столбца задает значение по умолчанию для столбца, т. е. когда новая строка добавляется в таблицу, значение по умолчанию для столбца будет использовано, если для него не задано никакого значения. В качестве значения по умолчанию могут быть использованы, помимо прочих, константные значения, такие как системные функции user, current_user, session_user, systemjjser, current_timestamp и null.

Столбец со свойством identity допускает только целочисленные значения, которые обычно неявно задаются системой. Каждое значение, которое должно быть помещено в столбец, вычисляется путем увеличения на единицу последнего помещенного в такой столбец значения. Поэтому объявление столбца со свойством identity содержит (неявно или явно) начальное значение и инкремент. Это свойство будет подробно рассматриваться в следующей главе (см. пример 6.41).

Для завершения этого раздела в примере 5.5 показано создание таблицы со столбцом, имеющим тип данных sqlvariant.

 

CREATE TABLE: основная форма

 

В примере 5.5 таблица содержит столбец value, который имеет тип данных sql_variant. Как вы уже знаете, тип данных sql_variant может быть использован для хранения в одно и то же время различных типов данных, таких как числовые значения, строки и значения даты. Обратите внимание, что тип данных sqlvariant в примере 5.5 используется для значений столбца, потому что различные значения атрибутов могут присутствовать для различных типов данных. Например, атрибут размера сохраняется в виде целочисленного значения, а атрибут имени - в виде строки символов.


Оператор CREATE TABLE и ограничения декларативной целостности
Предложение UNIQUE
Предложение PRIMARY KEY
Предложение CHECK
Предложение FOREIGN KEY

Добавить комментарий


Защитный код
Обновить

© 2021 serversql.ru. Все права защищены.