HTML Diff
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 (правая кнопка мыши -&gt; "Сохранить" либо известное сочетание "Ctrl+S"). Останется ввести название таблицы и нажать "OK".</p>
14 <p>Теперь пользователь может сохранить table (правая кнопка мыши -&gt; "Сохранить" либо известное сочетание "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