Вопрос 14: Создание таблиц. Команда CREATE TABLE. Определение значений NULL и NOT NULL. Добавление и удаление столбцов. Использование свойства Identity (счетчика, автонумерации).
Создание таблиц
Ключевым объектом в базе данных являются таблицы. Таблицы состоят из строк и столбцов. Столбцы определяют тип информации, которая хранится, а строки содержат значения для этих столбцов. Чтобы создать таблицу, нужно указать имя таблицы, имена и типы данных для каждого столбца таблицы. Также рекомендуется указывать, допускаются ли значения NULL для каждого из столбцов. Одной из самых важных особенностей, которую должна предоставлять СУБД, является способ обеспечения целостности данных. Ограничения, которые используются для проверки данных при их модификации или вставке, называются ограничениями для обеспечения целостности (integrity CONSTRAINTs). Обеспечение целостности данных может осуществляться пользователем в прикладной программе или же системой управления базами данных. Про ограничения целостности расписано в билете 15
Команда CREATE TABLE
Инструкция CREATE TABLE создает новую таблицу базы данных со всеми соответствующими столбцами требуемого типа данных. Далее приводится базовая форма инструкции CREATE TABLE:
CREATE TABLE Department (
Number CHAR (4) NOT NULL,
DepartmentName NCHAR (40) NOT NULL,
Location NCHAR (40) NULL
);
Определение значений NULL и NOT NULL
Рассмотрим теперь ограничение, связанное с присутствием или отсутствием значений NULL в столбце. Если для столбца не указано, что значения NULL разрешены (NOT NULL), то данный столбец не может содержать значения NULL, и при попытке вставить такое значение система возвратит сообщение об ошибке.
Добавление и удаление столбцов
Чтобы добавить новый столбец в существующую таблицу, в инструкции ALTER TABLE используется предложение ADD. В одной инструкции ALTER TABLE можно добавить только один столбец. Применение предложения ADD показано в примере ниже:
ALTER TABLE Employee
ADD PhoneNumber CHAR(12) NULL;
В этом примере инструкция ALTER TABLE добавляет в таблицу Employee столбец PhoneNumber. Компонент Database Engine заполняет новый столбец значениями NULL или IDENTITY или указанными значениями по умолчанию. По этой причине новый столбец должен или поддерживать значения NULL, или для него должно быть указано значение по умолчанию.
Новый столбец нельзя вставить в таблицу в какой-либо конкретной позиции. Столбец, добавляемый предложением ADD, всегда вставляется в конец таблицы.
Столбцы из таблицы удаляются посредством предложения DROP COLUMN. Применение этого предложения показано в примере ниже:
ALTER TABLE Employee
DROP COLUMN PhoneNumber;
В этом коде инструкция ALTER TABLE удаляет в таблице Employee столбец PhoneNumber, который был добавлен в эту таблицу предложением ADD ранее.
Использование свойства Identity (счетчика, автонумерации)
Столбец идентификаторов, создаваемый указанием свойства IDENTITY, может иметь только целочисленные значения, которые системой присваиваются обычно неявно. Каждое следующее значение, вставляемое в такой столбец, вычисляется, увеличивая последнее, вставленное в этот столбец, значение. Поэтому определение столбца со свойством IDENTITY содержит (явно или неявно) начальное значение и шаг инкремента (такой столбец еще называют столбцом с автоинкрементом).
CREATE TABLE UserInfo (
-- Для столбца Id будет использоваться автоинкремент IDENTITY(10,5),
-- т.е. при вставке данных первому элементу будет присвоено
-- значение 10, второму 15, третьему 20 и т.д.
Id INT NOT NULL PRIMARY KEY IDENTITY (10,5),
Login VARCHAR(40) NOT NULL
)