0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>В статье пойдёт речь о том, как создать таблицу в СУБД SQL Server от Microsoft. Для работы будет использована графическая среда SQL Server Management Studio (SSMS). Также рассмотрим, как создавать таблицу с помощью инструкции CREATE TABLE.</p>
1
<p>В статье пойдёт речь о том, как создать таблицу в СУБД SQL Server от Microsoft. Для работы будет использована графическая среда SQL Server Management Studio (SSMS). Также рассмотрим, как создавать таблицу с помощью инструкции CREATE TABLE.</p>
2
<h2>Предусловия</h2>
2
<h2>Предусловия</h2>
3
<p>Перед началом работы у вас должен быть установлен как сам MS SQL Server, так и SSMS. Версию сервера следует выбирать, исходя из технических характеристик своего компьютера и установленной операционной системы. В статье используется MS SQL Server 2017 Express.</p>
3
<p>Перед началом работы у вас должен быть установлен как сам MS SQL Server, так и SSMS. Версию сервера следует выбирать, исходя из технических характеристик своего компьютера и установленной операционной системы. В статье используется MS SQL Server 2017 Express.</p>
4
<p>Также таблицы (tables) не могут существовать без базы данных. Поэтому, прежде чем приступить к созданию таблиц, следует создать пустую БД. Это делается очень просто - достаточно запустить среду SSMS и выполнить несколько простых действий: 1) кликаем правой кнопкой мыши по контейнеру "Базы данных" и выбираем "Создать базу данных"; 2) в появившемся поле прописываем имя БД; 3) нажимаем "ОК".</p>
4
<p>Также таблицы (tables) не могут существовать без базы данных. Поэтому, прежде чем приступить к созданию таблиц, следует создать пустую БД. Это делается очень просто - достаточно запустить среду SSMS и выполнить несколько простых действий: 1) кликаем правой кнопкой мыши по контейнеру "Базы данных" и выбираем "Создать базу данных"; 2) в появившемся поле прописываем имя БД; 3) нажимаем "ОК".</p>
5
<h2>Исходные данные</h2>
5
<h2>Исходные данные</h2>
6
<p>База создана, поэтому можно подумать о её структуре. Планируется создание двух таблиц: 1.<strong>Goods</strong>- table с информацией о товарах. Будет содержать несколько столбцов: -<em>ProductId</em>. Представляет собой идентификатор товара. Значение не должно быть NULL. Также здесь будет первичный ключ; -<em>Category</em>. Это ссылка на категорию товара. Не NULL. Если товар не распределён в нужную категорию, ему присваивается категория по умолчанию ("Не указана", "Не определена"); -<em>ProductName</em>. В этом столбце будет наименование товара. Не NULL; -<em>Price</em>. Речь идёт о стоимости. Если цена ещё не определена, возможен NULL. 2.<strong>Categories</strong>- вторая table. В ней будет описание категорий реализуемых товаров, представленное двумя столбцами: -<em>CategoryId</em>. Представляет собой идентификатор категории. Не NULL, первичный ключ; -<em>CategoryName</em>. Название категории, не NULL.</p>
6
<p>База создана, поэтому можно подумать о её структуре. Планируется создание двух таблиц: 1.<strong>Goods</strong>- table с информацией о товарах. Будет содержать несколько столбцов: -<em>ProductId</em>. Представляет собой идентификатор товара. Значение не должно быть NULL. Также здесь будет первичный ключ; -<em>Category</em>. Это ссылка на категорию товара. Не NULL. Если товар не распределён в нужную категорию, ему присваивается категория по умолчанию ("Не указана", "Не определена"); -<em>ProductName</em>. В этом столбце будет наименование товара. Не NULL; -<em>Price</em>. Речь идёт о стоимости. Если цена ещё не определена, возможен NULL. 2.<strong>Categories</strong>- вторая table. В ней будет описание категорий реализуемых товаров, представленное двумя столбцами: -<em>CategoryId</em>. Представляет собой идентификатор категории. Не NULL, первичный ключ; -<em>CategoryName</em>. Название категории, не NULL.</p>
7
<p>Для того чтобы нельзя было внести товар с несуществующей категорией, будет добавлено ограничение внешнего ключа.</p>
7
<p>Для того чтобы нельзя было внести товар с несуществующей категорией, будет добавлено ограничение внешнего ключа.</p>
8
<h2>Создание table в Management Studio</h2>
8
<h2>Создание table в Management Studio</h2>
9
<p>Когда структура ясна, можно приступать к созданию: 1) откройте контейнер "Базы данных"; 2) откройте только что созданную тестовую БД; 3) щёлкните правой кнопкой мыши по категории "Таблицы" и выберите пункт "Таблица".</p>
9
<p>Когда структура ясна, можно приступать к созданию: 1) откройте контейнер "Базы данных"; 2) откройте только что созданную тестовую БД; 3) щёлкните правой кнопкой мыши по категории "Таблицы" и выберите пункт "Таблица".</p>
10
<p>В результате будет открыт специальный конструктор таблиц с тремя колонками: • имя столбца; • тип данных (подробнее о типах данных читайте<a>здесь</a>); • значения NULL (если да - ставим галочку).</p>
10
<p>В результате будет открыт специальный конструктор таблиц с тремя колонками: • имя столбца; • тип данных (подробнее о типах данных читайте<a>здесь</a>); • значения NULL (если да - ставим галочку).</p>
11
<p>Колонки заполняются с учётом спроектированной ранее структуры для table Categories.</p>
11
<p>Колонки заполняются с учётом спроектированной ранее структуры для table Categories.</p>
12
<p>Далее определяем первичный ключ (primary key), щелкая по требуемому столбцу правой кнопкой мыши (у нас это CategoryId). Также выбираем пункт "Задать первичный ключ".</p>
12
<p>Далее определяем первичный ключ (primary key), щелкая по требуемому столбцу правой кнопкой мыши (у нас это CategoryId). Также выбираем пункт "Задать первичный ключ".</p>
13
<p>Теперь надо обеспечить, чтобы в столбце автоматически генерировался уникальный ID-записи. Для этого идентификатору надо задать свойство IDENTITY. Делается путём включения пункта "Спецификация идентификатора".</p>
13
<p>Теперь надо обеспечить, чтобы в столбце автоматически генерировался уникальный ID-записи. Для этого идентификатору надо задать свойство IDENTITY. Делается путём включения пункта "Спецификация идентификатора".</p>
14
<p>Теперь пользователь может сохранить table (правая кнопка мыши -> "Сохранить" либо известное сочетание "Ctrl+S"). Останется ввести название таблицы и нажать "OK".</p>
14
<p>Теперь пользователь может сохранить table (правая кнопка мыши -> "Сохранить" либо известное сочетание "Ctrl+S"). Останется ввести название таблицы и нажать "OK".</p>
15
<p>На очереди таблица Goods. Здесь осуществляются те же действия с той лишь разницей, что для столбца Category дополнительно задаётся дефолтное значение и создаётся ограничение внешнего ключа. Для этого в свойствах соответствующего столбца в значении по умолчанию пишем 1.</p>
15
<p>На очереди таблица Goods. Здесь осуществляются те же действия с той лишь разницей, что для столбца Category дополнительно задаётся дефолтное значение и создаётся ограничение внешнего ключа. Для этого в свойствах соответствующего столбца в значении по умолчанию пишем 1.</p>
16
<p>А для создания FOREIGN KEY щёлкните правой кнопкой мыши в любой области конструктора и выберите пункт "Отношения…".</p>
16
<p>А для создания FOREIGN KEY щёлкните правой кнопкой мыши в любой области конструктора и выберите пункт "Отношения…".</p>
17
<p>Далее жмём кнопку "Добавить".</p>
17
<p>Далее жмём кнопку "Добавить".</p>
18
<p>Теперь зададим спецификацию таблиц и столбцов:</p>
18
<p>Теперь зададим спецификацию таблиц и столбцов:</p>
19
<p>В открывшемся окне указываем: • таблицу первичного ключа - Categories; • таблицу внешнего ключа - это текущая таблица, которая пока не создана, поэтому отображается в качестве Table_1. Тут следует выбирать столбец Category из текущей таблицы - именно он и станет выполнять роль внешнего ключа (сопоставление будет CategoryId = Category); • имя связи - название ограничения. Можно написать FK_Category.</p>
19
<p>В открывшемся окне указываем: • таблицу первичного ключа - Categories; • таблицу внешнего ключа - это текущая таблица, которая пока не создана, поэтому отображается в качестве Table_1. Тут следует выбирать столбец Category из текущей таблицы - именно он и станет выполнять роль внешнего ключа (сопоставление будет CategoryId = Category); • имя связи - название ограничения. Можно написать FK_Category.</p>
20
<p>Останется определить правила обновления и удаления. Правило обновления оставляем как есть (изменять идентификатор - не лучшая идея). А чтобы при удалении категории всем товарам присваивалось дефолтное значение, определим правило удаления как "Присвоить значение по умолчанию".</p>
20
<p>Останется определить правила обновления и удаления. Правило обновления оставляем как есть (изменять идентификатор - не лучшая идея). А чтобы при удалении категории всем товарам присваивалось дефолтное значение, определим правило удаления как "Присвоить значение по умолчанию".</p>
21
<p>Останется сохранить созданную (created) таблицу, назвав её Goods. Может появиться предупреждающее сообщение - оно не должно вас смутить.</p>
21
<p>Останется сохранить созданную (created) таблицу, назвав её Goods. Может появиться предупреждающее сообщение - оно не должно вас смутить.</p>
22
<p>Созданные таблицы станут видны в обозревателе объектов.</p>
22
<p>Созданные таблицы станут видны в обозревателе объектов.</p>
23
<p>Теперь с ними можно работать и добавлять данные, используя инструкцию INSERT.</p>
23
<p>Теперь с ними можно работать и добавлять данные, используя инструкцию INSERT.</p>
24
<h2>Инструкция CREATE TABLE</h2>
24
<h2>Инструкция CREATE TABLE</h2>
25
<p>Создать новую таблицу можно и с помощью инструкции CREATE TABLE. CREATE TABLE является ключевым словом, которое сообщает СУБД, что именно вы хотите выполнить. Синтаксис создания в языке (language) SQL следующий:</p>
25
<p>Создать новую таблицу можно и с помощью инструкции CREATE TABLE. CREATE TABLE является ключевым словом, которое сообщает СУБД, что именно вы хотите выполнить. Синтаксис создания в языке (language) SQL следующий:</p>
26
<p>Как видите, после оператора CREATE TABLE надо указать имя либо идентификатор таблицы, потом список столбцов и тип данных для каждого столбца, а также первичный ключ.</p>
26
<p>Как видите, после оператора CREATE TABLE надо указать имя либо идентификатор таблицы, потом список столбцов и тип данных для каждого столбца, а также первичный ключ.</p>
27
<p>Для примера создадим table CUSTOMERS. В качестве первичного ключа укажем столбец ID. Также установим ограничения для полей, которые не могут иметь нулевое значение при создании записей (NOT NULL):</p>
27
<p>Для примера создадим table CUSTOMERS. В качестве первичного ключа укажем столбец ID. Также установим ограничения для полей, которые не могут иметь нулевое значение при создании записей (NOT NULL):</p>
28
<p>Увидеть структуру созданной table можно, если сделать соответствующий запрос (query) командой DESC:</p>
28
<p>Увидеть структуру созданной table можно, если сделать соответствующий запрос (query) командой DESC:</p>
29
<p>Вот и всё. Очень надеемся, что статья помогла вам разобраться в том, как создавать table в реляционных системах управления базами данными. Если же вас интересуют более продвинутые знания как по базам данных, так и по MS SQL Server конкретно, обратите внимание на следующие курсы в OTUS: -<a>https://otus.ru/lessons/subd/</a>; -<a>https://otus.ru/lessons/ms-sql-server-razrabotchik/</a>.</p>
29
<p>Вот и всё. Очень надеемся, что статья помогла вам разобраться в том, как создавать table в реляционных системах управления базами данными. Если же вас интересуют более продвинутые знания как по базам данных, так и по MS SQL Server конкретно, обратите внимание на следующие курсы в OTUS: -<a>https://otus.ru/lessons/subd/</a>; -<a>https://otus.ru/lessons/ms-sql-server-razrabotchik/</a>.</p>
30
<p><em>При подготовке статьи использовались следующие материалы:</em>• 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.</p>
30
<p><em>При подготовке статьи использовались следующие материалы:</em>• 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.</p>
31
31