Создание таблиц
Для создания таблиц в SQL Server в первую очередь необходимо сделать активной ту БД, в которой создается таблица. Для этого в новом запросе можно набрать команду:USE <Имя БД>, либо на панели инструментов необходимо выбрать в выпадающем списке рабочую БД. После выбора БД можно создавать таблицы.
Таблицы создаются командой
CREATE TABLE <Имя таблицы>(<Имя поля1> <Тип1> [IDENTITY NULL|NOTNULL],<Имя поля2> <Тип2>, … )
Здесь:
-
<Имя таблицы> - имя создаваемой таблицы;
-
<Имя поля> - имена полей таблицы;
-
<Тип> - типы полей;
-
<IDENTITY NULL|NOT NULL> - поле счётчик.
Пример: создать таблицу Типы книг (Код типа, Наименование типа).
CREATE TABLE TypeBook
(idType INT IDENTITY(1,1) PRIMARY KEY,
nameType VARCHAR(30) NOT NULL UNIQUE
)
IDENTITY(1,1) - Указывает, что новый столбец является столбцом идентификаторов. При добавлении в таблицу новой строки компонент Database Engine формирует для этого столбца уникальное последовательное значение. Столбцы идентификаторов обычно используются с ограничением PRIMARY KEY для поддержания уникальности идентификаторов строк в таблице. Свойство IDENTITY присвоено столбцам типа tinyint, smallint, int, bigint, decimal(p,0) или numeric(p,0). Для каждой таблицы можно создать только один столбец идентификаторов. Ограниченные значения по умолчанию и ограничения DEFAULT не могут использоваться в столбце идентификаторов. Необходимо указать как начальное значение, так и приращение, или же не указывать ничего. Если ничего не указано, применяется значение по умолчанию (1,1).
IDENTITY [ (seed , increment ) ]
seed
Значение, присваиваемое самой первой строке, загружаемой в таблицу.
increment
Значение приращения, которое прибавляется к значению идентификатора предыдущей загруженной строки.
NULL | NOT NULL
Определяет, допустимы ли для столбца значения NULL. Параметр NULL не является ограничением в строгом смысле слова, но может быть указан так же, как и NOT NULL. Ограничение NOT NULL может быть указано для вычисляемых столбцов только в случае, если одновременно указан параметр PERSISTED.
PRIMARY KEY
Ограничение, которое обеспечивает целостность сущностей для указанного столбца или столбцов с помощью уникального индекса. Можно создать только одно ограничение PRIMARY KEY для таблицы.
UNIQUE
Ограничение, которое обеспечивает целостность сущностей для указанного столбца или столбцов с помощью уникального индекса. В таблице может быть несколько ограничений UNIQUE.
Пример: создать таблицу Книги (Код книги, Код типа, Наименование книги, Цена 1 экз, Количество экземпляров, Сумма к оплате, Дата получения).
CREATE TABLE Books
(
idBook INT IDENTITY(1,5) PRIMARY KEY,
idType INT FOREIGN KEY REFERENCES TypeBook(idType) ON DELETE NO ACTION ON UPDATE NO ACTION,
nameBook VARCHAR(300) NOT NULL,
priceOne MONEY NOT NULL CHECK (priceOne>1 AND priceOne<5000),
countBooks INT NOT NULL DEFAULT 1,
sumOpl AS priceOne*countBooks,
dateP DATETIME
)
FOREIGN KEY REFERENCES
Ограничение, которое обеспечивает ссылочную целостность данных в этом столбце или столбцах. Ограничения FOREIGN KEY требуют, чтобы каждое значение в столбце существовало в соответствующем связанном столбце или столбцах в связанной таблице. Ограничения FOREIGN KEY могут ссылаться только на столбцы, являющиеся ограничениями PRIMARY KEY или UNIQUE в связанной таблице или на столбцы, на которые имеются ссылки в индексе UNIQUE INDEX связанной таблицы. Внешние ключи в вычисляемых столбцах должны быть также помечены как PERSISTED.
ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
Определяет операцию, которая производится над строками создаваемой таблицы, если эти строки имеют ссылочную связь, а строка, на которую имеются ссылки, удаляется из родительской таблицы. Параметр по умолчанию — NO ACTION.
NO ACTION
Компонент Database Engine формирует ошибку, и выполняется откат операции удаления строки из родительской таблицы.
CASCADE
Если из родительской таблицы удаляется строка, соответствующие ей строки удаляются и из ссылающейся таблицы.
SET NULL
Все значения, составляющие внешний ключ, при удалении соответствующей строки родительской таблицы устанавливаются в NULL. Для выполнения этого ограничения столбцы внешних ключей должны допускать значения NULL.
SET DEFAULT
Все значения, составляющие внешний ключ, при удалении соответствующей строки родительской таблицы устанавливаются в значение по умолчанию. Для выполнения этого ограничения все столбцы внешних ключей должны иметь определения по умолчанию. Если столбец допускает значение NULL и множество значений по умолчанию не задано явно, NULL становится неявным значением по умолчанию для данного столбца.
ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
Указывает, какое действие совершается над строками в изменяемой таблице, когда эти строки имеют ссылочную связь и строка родительской таблицы, на которую указывает ссылка, обновляется. Параметр по умолчанию — NO ACTION.