Бази даних. SQL. Створення таблиць. Оператор CREATE TABLE

Створення таблиць. Оператор CREATE TABLE. Приклади

Перед вивченням даної теми рекомендується ознайомитись з темою:


Зміст


Пошук на інших ресурсах:

1. Оператор CREATE TABLE. Створення таблиці. Загальна форма

Таблиця є основним елементом (об’єктом) будь-якої реляційної бази даних. Уся необхідна інформація, що повинна бути збережена в базі даних, розміщується у таблицях. Таблиці можуть бути між собою зв’язані зв’язками. Кількість таблиць в базі даних необмежена і залежить від складності розв’язуваної задачі.

Щоб створити таблицю, у мові SQL використовується оператор CREATE TABLE. У найпростішому випадку загальна форма оператора CREATE TABLE наступна

CREATE TABLE Table_Name (
    Field_Name_1 Type_1,
    Field_Name_2 Type_2,
    ...
    Field_Name_N Type_N
)

тут

  • Table_Name – ім’я таблиці бази даних, яка створюється. Якщо в базі даних є таблиця з таким іменем, то виникне помилка;
  • Field_Name_1, Field_Name_2, Field_Name_N – імена полів таблиці бази даних. Ім’я кожного поля у таблиці Table_Name повинно бути унікальне. У різних таблицях імена полів можуть співпадати;
  • Type_1, Type_2, Type_N – відповідно типи полів Field_Name_1, Field_Name_2, Field_Name_N такі як INTEGER, DECIMAL, DATE та інші.

На поля Field_Name_1, Field_Name_2, Field_Name_N можуть накладатись обмеження. Кожне обмеження вказується після імені поля. У цьому випадку загальна форма оператора CREATE TABLE має приблизно наступний вигляд:

CREATE TABLE Table_Name (
    Field_Name_1 Type_1 Attribute_1,
    Field_Name_2 Type_2 Attribute_2,
    ...
    Field_Name_N Type_N Attribute_N
)

тут

  • Attribute_1, Attribute_2, Attribute_N – обмеження, що накладаються відповідно на поля Field_Name_1, Field_Name_2, Field_Name_N. Обмеження задаються одним з можливих слів NOT NULL, UNIQUE, CHECK.

Розгляд існуючих атрибутів полів в мові SQL не є предметом вивчення даної теми.

 

2. Приклади створення таблиць
2.1. Приклад створення найпростішої таблиці обліку товарів у магазині

Умова задачі.

  1. Використовуючи засоби мови SQL створити таблицю з іменем Product, яка буде відображати наступну інформацію про облік товарів у магазині
Назва товару Вартість закупівлі, грн. Кількість, штук Дата отримання Примітка
  1. Таблиця повинна містити первинний ключ і забезпечувати унікальність записів.

 

Розв’язок.

  1. Для забезпечення унікальності записів у таблиці потрібно створити додаткове поле, яке буде лічильником (автоінкрементом). Назва поля – ID_Product. Це поле є первинним ключем. Також це поле має обмеження NOT NULL (непусте поле).
  1. Наступним кроком розв’язку є призначення імен полям таблиці. У зв’язку з тим, що не всі системи керування базами даних (СКБД) підтримують символи кирилиці імена полів таблиці будуть задаватись латинськими символами. У нашому випадку формуються імена та типи даних, які сформовані в наступній таблиці:
Назва поля в умові задачі Назва поля на мові SQL Тип поля Пояснення
ID_Product ID_Product INTEGER Первинний ключ, лічильник, NOT NULL
Назва товару [Name] VARCHAR(100) Рядковий тип змінної довжини максимум до 100 символів
Вартість закупівлі Price DECIMAL(15, 2) Точність рівна 15 знакам, масштаб рівний 2 знаки після коми
Кількість штук [Count] INTEGER Ціле число
Дата отримання [Date] DATE
Примітка Note VARCHAR(200)
  1. Написання коду на мові SQL з врахуванням особливостей попередніх кроків. Текст програми створення таблиці на мові SQL наступний

 

CREATE TABLE [Product] (
    [ID_Product] Integer Not Null Primary Key,
    [Name] VarChar(100) ,
    [Price] Decimal(15, 2),
    [Count] Integer,
    [Date] Date,
    [Note] VarChar(200)
)

У Microsoft SQL Server допускається задавати імена полів без їх обрамлення в квадратні дужки []. Тобто, попередня команда може бути переписана наступним чином

CREATE TABLE Product (
    ID_Product Integer Not Null Primary Key,
    Name VarChar(100) ,
    Price Decimal(15, 2),
    Count Integer,
    Date Date,
    Note VarChar(200)
)

У вищенаведеному коді для поля ID_Product задаються обмеження Not Null та Primary Key. У результаті запуску програми на SQL буде створена наступна таблиця

ID_Product Name Price Count Date Note

На рисунку 1 відображено поля створеної таблиці в Microsoft SQL Server Management Studio.

Microsoft SQL Server Management Studio 18. Етапи створення таблиці

Рисунок 1. Етапи створення таблиці Product в Microsoft SQL Server Management Studio 18: 1 – створення файлу; 2 – набір SQL-запиту; 3 – запуск запиту на виконання; 4 – результуюча таблиця

Звичайно, можна створити таблицю, в якій не має поля ID_Product і не має первинного ключа. Така таблиця не буде забезпечувати унікальність записів, оскільки можлива ситуація коли дані у двох записах можуть співпасти. У цьому випадку SQL код програми має вигляд

CREATE TABLE Product (
    Name VarChar(100) ,
    Price Decimal(15, 2),
    Count Integer,
    Date Date,
    Note VarChar(200)
)

 

2.2. Приклад створення таблиці обліку телефонів абонентів

Умова задачі.

Використовуючи засоби мови SQL (T-SQL) створити нижченаведену таблицю обліку телефонів абонентів.

Name Address Phone Number 1 Phone Number 2 Phone Number 3
Ivanov I.I. New York 123456 067-1234567
Johnson J. Kiev 789012 033-7777778 102
Petrenko P.P. Warshaw 044-2521412

Забезпечити унікальність та коректне збереження записів таблиці.

Розв’язок.

Для забезпечення унікальності записів потрібно створити додаткове поле – лічильник. Це поле буде збільшувати своє значення на 1 при кожному додаванні нового запису. Якщо запис буде видалятись, поточне максимальне значення лічильника не буде зменшуватись. Таким чином, всі числові значення цього поля будуть різнитися між собою (будуть унікальними). У нашому випадку додається поле ID_Subscriber. Це поле не допускає нульових значень (NULL).

Для полів Name та [Phone Number 1] доцільно задати обмеження (атрибут) NOT NULL. Це означатиме, що в ці поля обов’язково потрібно ввести значення. Це є логічно, оскільки абонент в базі даних повинен мати як мінімум ім’я та хоча б один номер телефону.

Після внесених змін, поля таблиці будуть мати наступні властивості

Назва поля Тип даних Пояснення
ID_Subscriber INTEGER Первинний ключ, лічильник, NOT NULL
Name VARCHAR(50) Прізвище та ім’я абонента
Address VARCHAR(100) Адреса
[Phone Number 1] VARCHAR(20) NOT NULL
[Phone Number 2] VARCHAR(20)
[Phone Number 3] VARCHAR(20)

Враховуючи вищесказане команда CREATE TABLE на мові Transact-SQL (T-SQL) буде виглядати наступним чином

Create Table Subscriber (
    ID_Subscriber Int Not Null Primary Key,
    [Name] VarChar(50) Not Null,
    [Address] VarChar(100),
    [Phone Number 1] VarChar(20) Not Null,
    [Phone Number 2] VarChar(20),
    [Phone Number 3] VarChar(20)
)

У запиті імена полів

[Phone Number 1]
[Phone Number 2]
[Phone Number 3]

обов’язково повинні бути в квадратних дужках [], оскільки імена складаються з декількох слів (між словами є символ пробіл).

На рисунку 2 відображено етапи створення таблиці в системі Microsoft SQL Server Management Studio.

Microsoft SQL Server Management Studio. Етапи формування запиту

Рисунок 2. Вікно Microsoft SQL Server Management Studio. Етапи формування запиту: 1 – Створення файлу “SQL Query 2.sql”; 2 – набір SQL-запиту; 3 – виконання; 4 – результуюча таблиця

 

2.3. Приклад створення таблиці обліку заробітної плати та відрахувань в організації

Умова задачі

Використовуючи мову SQL створити таблицю Account, в якій ведеться облік нарахованої заробітної плати в деякій організації. Зразок таблиці наступний

Name Position Accrued salary Date of employment Gender
Johnson J. Manager 3200.00 01.02.2128 M
Petrova M.P. Clerk 2857.35 02.03.2125 F
Williams J. Secretary 3525.77 01.08.2127 F
Wilson K. Recruiter 1200.63 22.07.2125 F

Таблицю реалізувати так, щоб забезпечувалась унікальність записів.

 

Розв’язок.

Щоб забезпечити унікальність записів створюється додаткове поле-лічильник ID_Account типу Int. Це поле доцільно вибрати первинним ключем якщо потрібно буде використовувати дані цієї таблиці в інших зв’язаних таблицях.

Після модифікації поля таблиці матимуть наступні властивості.

Назва поля (атрибут) Тип даних Додаткові пояснення
ID_Account Int Автоінкремент (лічильник), первинний ключ (Primary Key), ненульове поле (Not Null), забезпечує унікальність записів
[Name] VARCHAR(50) Прізвище та ім’я, не нульове поле (Not Null)
Position VARCHAR(100) Посада, не нульове поле (Not Null)
Salary DECIMAL Тип, призначений для збереження грошових величин
[Employment Date] DATE Дата, не нульове поле (Not Null)
Gender CHAR(1) Стать, не нульове поле (Not Null)

У модифікованій таблиці поле Salary допускає нульові (Null) значення. Таким випадком може бути, наприклад, коли людина прийнята на роботу але заробітна плата їй ще не нарахована. У цій ситуації тимчасово встановлюється Null-значення. Всі інші поля є обов’язковими для заповнення.

Запит на мові SQL, який створює вищенаведену таблицю має вигляд

/* Create the Account table */
Create Table Account (
    ID_Account Int Not Null Primary Key,
    [Name] VarChar(50) Not Null,
    [Position] VarChar(100) Not Null,
    Salary Decimal Null,
    [Employment Date] Date Not Null,
    Gender Char(1)
)

Результат виконання SQL-запиту відображений на рисунку 3

Microsoft SQL Server Management Studio. Результат виконання запиту на мові Transact-SQL. Команда CREATE TABLE

Рисунок 3. Результат виконання запиту на мові Transact-SQL (T-SQL)

 


Споріднені  теми