Синтаксис команды CREATE TABLE для создания таблицы без ограничений:
CREATE TABLE [<имя базы данных>.[<имя владельца>| <имя владельца>]
<имя таблицы> ({<имя столбца> <тип данных> (<размер>)});
Пример 1
Задача.
Создать таблицу Subject [1] cо столбцами IDSubject, NameSubject.
Решение.
CREATE TABLE Subject
(IDSubject INT,
NameSubject VARCHAR (35));
Здесь и всегда сообщение об успешном выполнении команды CREATE имеет вид: The command(s) completed successfully.
Пример 2
Задача.
Создать таблицу Subject cо столбцами IDSubject (значение которого генерируется автоматически) и NameSubject.
Решение.
CREATE TABLE Subject
(IDSubject INT IDENTITY,
NameSubject VARCHAR (35));
Автоматическая генерация значения столбца IDSubject достигается за счет использования свойства IDENTITY, по умолчанию начальное значение, генерируемое с помощью IDENTITY равно 1, так же, как и его приращение. Таким образом, следующее значение будет равно 2. Значения в IDENTITY-столбцах обязательно последовательные, то есть если приращение положительное, то следующее значение всегда больше предыдущего, если приращение отрицательное, то – всегда меньше. Приращение и начальное значение могут быть заданы, однако этот механизм чрезвычайно редко используется в реальных проектах.
|
|
Пример 3
Задача.
Создать таблицу Subject cо столбцами IDSubject (значение которого генерируется автоматически, начиная со значения 2 с шагом 2) и NameSubject.
Решение.
CREATE TABLE Subject
(IDSubject INT IDENTITY (2,2),
NameSubject VARCHAR (35));
Не нуждается в доказательстве, что таблица без ограничений не имеет смысла. Например, в таблице Subject – IDSubject является первичным ключом, другой атрибут NameSubject – потенциальным. В первом случае необходимо наложить ограничение PRIMARY KEY, во втором – UNIQUE, кроме того, целесообразно наложить ограничение NOT NULL на оба атрибута.
Синтаксис команды CREATE TABLE для создания таблицы c ограничениями:
CREATE TABLE [<имя базы данных>.[<имя владельца>] <имя таблицы>
({<имя столбца> <тип данных> (<размер>) [<ограничение для столбца>]}
[,…n])
[,<ограничение для таблицы>];
Ограничения на уровне таблицы целесообразно вводить, если они имеют отношения к нескольким столбцам. Ограничения для одного столбца рекомендуется устанавливать на уровне столбца. Все ограничения, за исключением ограничения NULL/NOT NULL, создаются как на уровне столбца, так и на уровне таблицы. Каждому созданному ограничению, за исключением ограничений NULL/NOT NULL, присваивается уникальное имя. Если вы хотите сами присвоить имя тому или иному ограничению, то необходимо при создании ограничения воспользоваться предложением CONSTRAINT. Синтаксис предложения CONSTRAINT, задающего в команде CREATE TABLE ограничения, как на уровне таблицы, так и на уровне столбца, приведен ниже.
|
|
Синтаксис предложения CONSTRAINT:
[CONSTRAINT <имя ограничения>]
[PRIMARY KEY (<имя столбца>[, …n]) ]
[UNIQUE (<имя столбца>[, …n]) ]
[CHECK (<условие>)]
[FOREIGN KEY (<имя столбца, ссылающейся таблицы>[, …n])
REFERENCES <имя ссылочной таблицы> [(Имя столбца ссылочной
таблицы [, …n])]]
! |
Обратите внимание на то, что при задании ограничения на уровне таблицы перед предложением CONSTRAINT должна стоять запятая.
Если устанавливается несколько поименованных ограничений, то назначение каждого ограничения начинается с ключевого слова CONSTRAINT, ограничения отделяются друг от друга запятыми.