Створення таблиць в 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» – це самовчитель по даному мови, в ній я детально, спеціально для початківців, розповідаю про всі основні конструкції мови T-SQL, і послідовно переходжу від простого до складного.

Вихідні дані для прикладу

Давайте уявимо, що нам потрібно реалізувати базу даних зі наступну структурою (приклад структури тестовий). У ній у нас буде дві таблиці, і вони будуть містити такі стовпці:

  • Goods – таблиця буде містити інформацію про товари:
    • ProductId – ідентифікатор товару, стовпець не може містити значення NULL, первинний ключ;
    • Category – посилання на категорію товару, стовпець не може містити значення NULL, але має значення за замовчуванням, наприклад, для випадків, коли товар ще не розподілили в необхідну категорію, в цьому випадку товару буде присвоєно категорію за замовчуванням («Не визначена» або «Не вказана»);
    • ProductName – найменування товару, стовпець не може містити значення NULL;
    • Price – ціна товару, стовпець може містити значення NULL, наприклад, з ціною ще не визначилися.
  • Categories – таблиця буде містити опис категорій товарів:
    • CategoryId – ідентифікатор категорії, стовпець не може містити значення NULL, первинний ключ;
    • CategoryName – найменування категорії, стовпець не може містити значення NULL.

При цьому внести товар з неіснуючої категорією можна, тому ми додамо ще й обмеження зовнішнього ключа.

Примітка! Як сервер у мене виступає версія Microsoft SQL Server 2017 Express, як її встановити, можете подивитися в моїй

Отже, давайте приступимо.

Створення таблиці в Microsoft SQL Server за допомогою Management Studio

Запускаємо середу SQL Server Management Studio.

У браузері об’єктів відкриваємо контейнер “Бази даних”, потім відкриваємо потрібну базу даних і клацаємо правою кнопкою миші по пункту «Таблиці», І вибираємо «Таблиця».

У Вас відкриється конструктор таблиць. У ньому буде всього три колонки:

  • Ім’я стовпця – сюди пишемо назву стовпця;
  • Тип даних – вибираємо тип даних для цього стовпця, детальніше про типах даних можете почитати в статті «Типи даних в Microsoft SQL Server»;
  • Дозволити значення NULL – якщо поставити галочку, то стовпець зможе приймати значення NULL.

Заповнюємо ці колонки, спочатку відповідно до нашої тестової структурою таблиці Categories.

Після цього нам потрібно визначити первинний ключ, для цього клацаємо правою кнопкою миші по потрібному стовпці (в нашому випадку це CategoryId) І вибираємо пункт «Поставити первинний ключ».

Також для цього стовпця давайте визначимо специфікацію ідентифікатора, тобто задамо властивість IDENTITY, для того щоб даний стовпець автоматично генерував унікальний ідентифікатор запису.

Щоб це зробити, у властивостях стовпця в нижній частині конструктора шукаємо розділ «Технічна специфікація ідентифікатора» і включаємо його, тобто ставимо «Так». У разі необхідності Ви можете задати початкове значення ідентифікатора, наприклад, для того щоб почати ідентифікацію з певного значення, а також можете змінити крок збільшення, тобто на яке значення буде збільшуватися Ваш ідентифікатор.

Визначення нашій таблиці готове, тепер нам її необхідно зберегти. Для цього клацаємо по вкладці правою кнопкою миші і натискаємо «Зберегти» або просто натискаємо поєднання клавіш «Ctrl + S», також кнопка «Зберегти» доступна і в меню «Файл».

Далі вводимо назву таблиці, в нашому випадку це Categories, і натискаємо «OK».

Все, конструктор можна закрити, можете оновити оглядач об’єктів, щоб таблиця у Вас відобразилася.

Тепер переходимо до таблиці Goods. В цьому випадку робимо все те ж саме, тобто визначаємо стовпці, задаємо первинний ключ і задаємо специфікацію ідентифікатора. Тільки в даному випадку нам потрібно додатково поставити значення за замовчуванням для стовпця Category і створити обмеження зовнішнього ключа (FOREIGN KEY).

Для того щоб задати значення за замовчуванням, необхідно вибрати стовпець, і у властивостях цього стовпця в параметрі «Значення за замовчуванням або прив’язка» вказати бажане значення за замовчуванням, в нашому випадку давайте напишемо 1.

Щоб створити зовнішній ключ, клацаємо в будь-якому місці конструктора правою кнопкою миші і вибираємо пункт «Відносини …».

Потім натискаємо додати.

Далі задаємо специфікацію таблиць і стовпців, для цього клацаємо на три точки навпроти відповідного властивості.

Потім відкриється вікно, в якому ми вказуємо наступне:

  • Таблиця первинного ключа – вибираємо зі списку таблицю Categories, а також її первинний ключ, за яким буде здійснюватися зв’язок;
  • Таблиця зовнішнього ключа – це якраз наша поточна таблиця, поки вона ще не створена, тому вона відображається як Table_1, в цьому випадку вибираємо стовпець Category цієї таблиці, який буде виконувати роль зовнішнього ключа, тобто це і буде посилання на зовнішню таблицю (тобто зіставлення таблиць буде здійснюватися як CategoryId = Category);
  • Ім’я зв’язку – назва обмеження, припустимо, у нас це буде FK_Category.

Натискаємо «ОК».

Нам залишилося задати правила оновлення та видалення, тобто що буде відбуватися з записами таблиці Goods (вони ж посилаються на таблицю Categories) Якщо категорія (запис таблиці Categories) Буде змінена або видалена.

Змінювати ідентифікатор категорії навряд чи доведеться, а якщо і доведеться, то нехай в цих випадках з’явиться помилка, іншими словами, правило оновлення просто не задаємо. А ось у випадку з видаленням категорії, нехай всім товарам присвоїти значення за замовчуванням, тобто невизначена категорія. Для цього визначаємо правило видалення як «Присвоїти значення за замовчуванням».

Натискаємо закрити.

Потім можемо зберегти таблицю тим же способом, що і раніше. Називаємо її Goods. У разі якщо з’явиться попередження про те, що будуть порушені наступні таблиці, відповідаємо «Так», тобто продовжуємо.

Після поновлення об’єктів в браузері, створена таблиця відобразиться.

Тепер Ви можете додавати дані в ці таблиці, наприклад, за допомогою інструкції INSERT.

Створення таблиці за допомогою інструкції CREATE TABLE мови T-SQL

Тепер давайте я покажу процес створення тих же самих таблиць, але тільки на мові T-SQL з використанням інструкції CREATE TABLE.

Спрощений синтаксис створення таблиць наступний:

CREATE TABLE Назва таблиці (
[Назва стовпця] [Тип даних] [Можливість прийняття значення NULL] [Визначення обмеження],

)

В реальності синтаксис інструкції CREATE TABLE дуже великий і з першого погляду складний, тому початківцям краще спочатку зрозуміти принцип створення таблиці, а потім заглиблюватися в деталі.

Щоб написати і виконати інструкцію T-SQL, відкриваємо редактор SQL запитів, для цього натискаємо кнопку «Створити запит» і пишемо необхідну інструкцію, вона представлена ​​трохи нижче. Ця інструкція еквівалентна всім діям, які ми робили в графічному інтерфейсі.

Примітка! Якщо Ви створили таблиці за допомогою графічного інтерфейсу і хочете протестувати таку інструкцію T-SQL зі створення таблиць, то Вам попередньо потрібно видалити ці таблиці, так як вони вже існують і сервер видасть помилку. Для цього я спеціально включив в інструкцію команду DROP TABLE IF EXISTS, яка видаляє таблиці, в разі якщо вони існують. Параметр IF EXISTS доступний, починаючи з 2016 версії SQL Server, детальніше про цей параметр ми говорили в статті – «Інструкція DROP IF EXISTS».

–видалення таблиць
–Параметр IF EXISTS доступний починаючи з 2016 версії SQL Server
DROP TABLE IF EXISTS Goods;
DROP TABLE IF EXISTS Categories;
–Созданіе таблиці з товарами
CREATE TABLE Goods (
ProductId INT IDENTITY (1,1) NOT NULL CONSTRAINT PK_ProductId PRIMARY KEY,
Category INT NOT NULL DEFAULT (1),
ProductName VARCHAR (100) NOT NULL,
Price MONEY NULL,
);
GO
–Созданіе таблиці з категоріями
CREATE TABLE Categories (
CategoryId INT IDENTITY (1,1) NOT NULL CONSTRAINT PK_CategoryId PRIMARY KEY,
CategoryName VARCHAR (100) NOT NULL
);
GO
–Добавленіе обмеження зовнішнього ключа (FOREIGN KEY)
ALTER TABLE Goods ADD CONSTRAINT FK_Category
FOREIGN KEY (Category)
REFERENCES Categories (CategoryId)
ON DELETE SET DEFAULT
ON UPDATE NO ACTION;
GO

Виконуємо інструкцію (кнопка «Виконати»), В результаті також будуть створені дві таблиці і відповідні обмеження.

Ссылка на основную публикацию