На мой взгляд, это самый сложный метод и применять его стоит только в редких случаях, когда вам нужно создать сложную таблицу с необычной конфигурацией или если у вас много времени и вы хотите поэкспериментировать.
Создание таблиц в Microsoft SQL Server (CREATE TABLE) – подробная инструкция
Привет, сегодня я собираюсь показать вам, как создавать таблицы в Microsoft SQL Server, и мы рассмотрим примеры создания таблиц как через графический интерфейс пользователя, особенно для начинающих, так и через команду CREATE TABLE в T-SQL.
В предыдущей статье «Создание базы данных в Microsoft SQL Server» я объяснил, как создавать пустые базы данных без таблиц. Сегодня я покажу вам, как создавать таблицы, в которые добавляются и хранятся все данные.
Как упоминалось ранее, существует два способа создания таблицы в Microsoft SQL Server: один — с помощью графического конструктора SQL Server Management Studio (SSMS), а другой — с помощью операторов T-SQL.
Внимание! Для всестороннего изучения T-SQL я рекомендую мои видеоуроки по T-SQL, которые используют единую методологию и охватывают все структуры SQL и T-SQL.
Исходные данные для примера
Допустим, нам нужно реализовать базу данных со следующей структурой (пример структуры является тестовым). В нем у нас будет две таблицы, содержащие следующие столбцы:
- Goods – таблица будет содержать информацию о товарах:
- ProductId — ID продукта, столбец не должен содержать значений NULL, первичный ключ,
- Категория — ссылка на категорию продукта, столбец не может содержать значения NULL, но имеет значение по умолчанию, например, если продукт еще не был отнесен к нужной категории, в этом случае продукт будет отнесен к категории по умолчанию («Не определена» или «Не указана»),
- Название продукта — название продукта, столбец не должен содержать значений NULL,
- Цена — цена продукта, столбец может содержать значения NULL, например, если цена еще не определена.
- CategoryId — идентификатор категории, столбец не должен содержать значений NULL, первичный ключ,
- CategoryName — название категории; колонка не должна содержать значений NULL.
В то же время мы не можем добавить продукты с несуществующей категорией, поэтому мы добавляем ограничение внешнего ключа.
Внимание. Мой сервер — Microsoft SQL Server 2017 Express, как его установить, вы можете посмотреть в моем обучающем видео.
Итак, давайте начнем.
Создание таблицы в Microsoft SQL Server с помощью Management Studio
Запустите SQL Server Management Studio.
В обозревателе объектов откройте контейнер «Базы данных». Затем откройте нужную базу данных, щелкните правой кнопкой мыши на записи «Таблицы» и выберите «Таблица».
Откроется окно создания таблицы. Будет только три колонки:
- Имя колонки — здесь мы пишем имя колонки,
- Тип данных — выберите тип данных для этого столбца. Подробнее о типах данных вы можете прочитать в статье «Типы данных в Microsoft SQL Server»,
- Разрешить значения NULL — если вы отметите этот флажок, столбец может принимать значения NULL.
Заполните эти столбцы, сначала в соответствии с нашей тестовой структурой таблицы «Категории».
Далее нам нужно указать первичный ключ, поэтому щелкните правой кнопкой мыши на нужной нам колонке (в нашем случае CategoryId) и выберите «Set Primary Key».
Мы также задаем спецификацию ID для этого столбца, т.е. устанавливаем свойство IDENTITY так, чтобы этот столбец автоматически генерировал уникальный ID записи.
Для этого найдите раздел «Спецификация идентификатора» в свойствах колонки в нижней части производителя и d активируйте его, т.е. установите значение «Да». При необходимости вы можете указать начальное значение для идентификатора, например, начать идентификацию с определенного значения, а также изменить инкремент, т.е. с каким значением увеличивается ваш идентификатор.
Наше определение таблицы готово, теперь нам нужно сохранить его. Для этого щелкните правой кнопкой мыши на вкладке и выберите «Сохранить» или просто нажмите комбинацию клавиш «Ctrl+S». Кнопка «Сохранить» также доступна в меню «Файл».
Затем введите название таблицы, в нашем случае «Категории», и нажмите «OK».
Вот и все. Вы можете закрыть конструктор и обновить браузер объектов, чтобы таблица появилась.
Теперь перейдите к столу с товарами. В этом случае вы делаете то же самое, т.е. задаете столбцы, первичный ключ и спецификацию ID. Только в этом случае нам нужно установить значение по умолчанию для столбца Category и создать ограничение FOREIGN KEY.
Чтобы установить значение по умолчанию, нужно выбрать столбец и указать желаемое значение по умолчанию в свойствах этого столбца в параметре «Значение по умолчанию или привязка», в нашем случае мы пишем 1.
Затем мы можем сохранить таблицу таким же образом, как и раньше. Назовем это товарами. Если появится предупреждение о том, что затронуты следующие таблицы, ответьте «Да», т.е. продолжайте.
Движки хранения данных MySQL
В документации MySQL говорится: «Хранилища данных — это компоненты MySQL, которые управляют операциями SQL для различных типов таблиц.
MySQL использует эти движки для выполнения CRUD-операций (создание, чтение, обновление и удаление) над базой данных.
В MySQL вы можете указать тип движка, который вы хотите использовать для своей таблицы. Для этого используется пункт ENGINE. Если вы опустите этот параметр, будет использоваться механизм по умолчанию, InnoDB.
От редакции Techrocks. Вас также могут заинтересовать следующие статьи:
Что такое IF NOT EXISTS?
В запрос можно добавить необязательный пункт IF NOT EXISTS. Это позволит проверить, существует ли таблица, которую вы хотите создать, в базе данных. Вы можете поместить это предложение непосредственно перед именем таблицы.
Если таблица существует, новая таблица создаваться не будет.
Если вы не укажете IF NOT EXISTS и попытаетесь воссоздать существующую таблицу, вы получите сообщение об ошибке.
В этом примере я создал таблицу учителей. Когда я попытался воссоздать ту же таблицу, я получил сообщение об ошибке.
Как создавать столбцы в таблице
Команда CREATE TABLE перечисляет в круглых скобках после имени таблицы имена создаваемых столбцов, их типы данных и ограничения.
В этом примере мы добавим четыре колонки в таблицу учителей: school_id, name, email и age. Имена столбцов разделяются запятыми.
В документации MySQL говорится: «MySQL имеет жесткое ограничение в 4096 столбцов на таблицу, но фактический максимум может быть меньше. Фактическое ограничение на количество колонок зависит от нескольких факторов.
Однако, если вы работаете над небольшими личными проектами, вряд ли вам понадобится больше столбцов, чем разрешено.
Согласно документации PostgreSQL, эта база данных имеет ограничение в 1600 столбцов на таблицу. Как и в MySQL, максимальное количество столбцов может варьироваться в зависимости от ограничений по объему памяти или производительности.