Команда создания таблицы — create table 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Команда создания таблицы — create table



Создание таблицы выполняется при помощи команды CREATETABLE. Обобщенный синтаксис команды следующий:

GREATE TABLE имя_ таблицы

({<определение_столбца> ‌ <определение_ ограничения_ таблицы>}

[,..., {<определение_ столбца>  <определение_ ограничения_ таблицы > } ])

То есть после задания имени таблицы через запятую в круглых скобках должны быть перечислены все предложения, определяющие отдельные элементы таблицы, — столбцы или ограничения целостности:

Имя_ таблицы — идентификатор создаваемой таблицы, который в общем случае строится из имени базы данных, имени владельца таблицы и имени самой таблицы. При этом комбинация имени таблицы и ее владельца должна быть уникальной. в пределах базы данных. Если таблица создается не в текущей базе данных, в ее идентификатор необходимо включить имя базы данных;

Определение_ столбца — задание имени, типа данных и параметров отдельного столбца таблицы. Названия столбцов должны соответствовать правилам для идентификаторов и быть уникальными в пределах таблицы;

Определение_ ограничения_ таблицы — задание некоторого ограничения целостности на уровне таблицы.

Описание столбцов

Как видно из синтаксиса команды С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. Если для столбца не задано значение по умолчанию, то при вставке строки с неизвестным значением для столбца будет предприниматься попытка вставки в столбец значения 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.

СНЕСК — ограничение целостности, инициирующее контроль вводимых в столбец значений;

Логическое_ выражение — логическое выражение, используемое для ограничения СНЕСК.

Ограничения на уровне таблицы

Синтаксис команды CREATE TABLE предусматривает использование предложения <ограничение_ таблицы>, с помощью которого определяются ограничения целостности на уровне таблицы. Синтаксис предложения следующий:

<ограничение_ таблицы>::= [ CONSTRAINT <имя_ ограничения>]

{ [ { PRIMARY KEY I UNIQUE }

{(<имя_ колонки> [ASC DESC] [,...,,n])}]

FOREIGN KEY

[ (<имя_колонки>[,..., n ]) ]

REFERENCES <внешняя_ таблица> [(<имя_ колонки_ внешней_ таблицы>[,...,n])]

[ ON DELETE { CASCADE NO ACTION } ]

[ ON UPDATE { CASCADE NO ACTION } ]

CHECK (<логическое_ выражение>)

}

Назначение параметров совпадает с назначением аналогичных параметров предложения <ограничение_ столбца>. Тем не менее, в предложении <ограничение_ таблицы> имеются некоторые новые параметры:

Имя_ колонки — столбец, на которые необходимо наложить какие-либо ограничения целостности;

[ASC│DESC] — метод упорядочивания данных в индексе. Индекс создается при указании ключевых слов PRIMARY KEY, UNIQUE. При указании значения ASC данные в индексе будут упорядочены по возрастанию, при указании значения DESC — по убыванию. По умолчанию используется значение ASC.



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 198; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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