Найти тему

Создание таблиц в MS SQL Server. CREATE TABLE

Оглавление

Нужно разобраться в работе MS SQL? Получите первые профессиональные навыки 10 марта на демо-уроке «Polybase: жизнь до и после». Вместе с Кристиной Кучеровой, архитектором БД, вы рассмотрите, как можно было взаимодействовать с другими базами данных до Polybase и как это работает сейчас.
Демо-урок является частью программы онлайн-курса «MS SQL Server разработчик», созданного для разработчиков, которые хотят понять, как устроены БД, научиться писать сложные запросы или заниматься проектированием на SQL профессионально.

‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗

В статье пойдёт речь о том, как создать таблицу в СУБД SQL Server от Microsoft. Для работы будет использована графическая среда SQL Server Management Studio (SSMS). Также рассмотрим, как создавать таблицу с помощью инструкции CREATE TABLE.

Предусловия

Перед началом работы у вас должен быть установлен как сам MS SQL Server, так и SSMS. Версию сервера следует выбирать, исходя из технических характеристик своего компьютера и установленной операционной системы. В статье используется MS SQL Server 2017 Express.

Также таблицы (tables) не могут существовать без базы данных. Поэтому, прежде чем приступить к созданию таблиц, следует создать пустую БД. Это делается очень просто – достаточно запустить среду SSMS и выполнить несколько простых действий:

1) кликаем правой кнопкой мыши по контейнеру «Базы данных» и выбираем «Создать базу данных»;

2) в появившемся поле прописываем имя БД;

3) нажимаем «ОК».

-2
-3
-4

Исходные данные

База создана, поэтому можно подумать о её структуре. Планируется создание двух таблиц:

1. Goods – table с информацией о товарах. Будет содержать несколько столбцов:

ProductId . Представляет собой идентификатор товара. Значение не должно быть NULL. Также здесь будет первичный ключ;

Category . Это ссылка на категорию товара. Не NULL. Если товар не распределён в нужную категорию, ему присваивается категория по умолчанию («Не указана», «Не определена»);

ProductName . В этом столбце будет наименование товара. Не NULL;

Price . Речь идёт о стоимости. Если цена ещё не определена, возможен NULL.

2. Categories — вторая table. В ней будет описание категорий реализуемых товаров, представленное двумя столбцами:

CategoryId . Представляет собой идентификатор категории. Не NULL, первичный ключ;

CategoryName . Название категории, не NULL.

Для того чтобы нельзя было внести товар с несуществующей категорией, будет добавлено ограничение внешнего ключа.

-5

Создание table в Management Studio

Когда структура ясна, можно приступать к созданию:

1) откройте контейнер «Базы данных»;

2) откройте только что созданную тестовую БД;

3) щёлкните правой кнопкой мыши по категории «Таблицы» и выберите пункт «Таблица».

-6

В результате будет открыт специальный конструктор таблиц с тремя колонками:

• имя столбца;

• тип данных (подробнее о типах данных читайте здесь );

• значения NULL (если да – ставим галочку).

Колонки заполняются с учётом спроектированной ранее структуры для table Categories.

-7

Далее определяем первичный ключ (primary key), щелкая по требуемому столбцу правой кнопкой мыши (у нас это CategoryId). Также выбираем пункт «Задать первичный ключ».

-8

Теперь надо обеспечить, чтобы в столбце автоматически генерировался уникальный ID-записи. Для этого идентификатору надо задать свойство IDENTITY. Делается путём включения пункта «Спецификация идентификатора».

-9

Теперь пользователь может сохранить table (правая кнопка мыши -> «Сохранить» либо известное сочетание «Ctrl+S»). Останется ввести название таблицы и нажать «OK».

-10

На очереди таблица Goods. Здесь осуществляются те же действия с той лишь разницей, что для столбца Category дополнительно задаётся дефолтное значение и создаётся ограничение внешнего ключа. Для этого в свойствах соответствующего столбца в значении по умолчанию пишем 1.

-11

А для создания FOREIGN KEY щёлкните правой кнопкой мыши в любой области конструктора и выберите пункт «Отношения…».

-12

Далее жмём кнопку «Добавить».

-13

Теперь зададим спецификацию таблиц и столбцов:

-14

В открывшемся окне указываем:

• таблицу первичного ключа – Categories;

• таблицу внешнего ключа – это текущая таблица, которая пока не создана, поэтому отображается в качестве Table_1. Тут следует выбирать столбец Category из текущей таблицы — именно он и станет выполнять роль внешнего ключа (сопоставление будет CategoryId = Category);

• имя связи — название ограничения. Можно написать FK_Category.

-15

Останется определить правила обновления и удаления. Правило обновления оставляем как есть (изменять идентификатор — не лучшая идея). А чтобы при удалении категории всем товарам присваивалось дефолтное значение, определим правило удаления как «Присвоить значение по умолчанию».

-16

Останется сохранить созданную (created) таблицу, назвав её Goods. Может появиться предупреждающее сообщение — оно не должно вас смутить.

-17

Созданные таблицы станут видны в обозревателе объектов.

-18

Теперь с ними можно работать и добавлять данные, используя инструкцию INSERT.

Инструкция CREATE TABLE

Создать новую таблицу можно и с помощью инструкции CREATE TABLE. CREATE TABLE является ключевым словом, которое сообщает СУБД, что именно вы хотите выполнить. Синтаксис создания в языке (language) SQL следующий:

-19

Как видите, после оператора CREATE TABLE надо указать имя либо идентификатор таблицы, потом список столбцов и тип данных для каждого столбца, а также первичный ключ.

Для примера создадим table CUSTOMERS. В качестве первичного ключа укажем столбец ID. Также установим ограничения для полей, которые не могут иметь нулевое значение при создании записей (NOT NULL):

-20

Увидеть структуру созданной table можно, если сделать соответствующий запрос (query) командой DESC:

-21

Вот и всё. Очень надеемся, что статья помогла вам разобраться в том, как создавать table в реляционных системах управления базами данными. Если же вас интересуют более продвинутые знания как по базам данных, так и по MS SQL Server конкретно, обратите внимание на следующие курсы в OTUS:

https://otus.ru/lessons/subd/ ;

https://otus.ru/lessons/ms-sql-server-razrabotchik/ .

При подготовке статьи использовались следующие материалы:

• https://www.tutorialspoint.com/sql/sql-create-table.htm;

• https://info-comp.ru/obucheniest/716-create-table-in-ms-sql-server.html;

• https://info-comp.ru/obucheniest/715-create-database-in-ms-sql-server.html.