Освоєння DDL: Там, де починається архітектура баз даних

Blueprint мова, яка формує ваш світ баз даних

Що таке DDL?

DDL (Data Definition Language — Мова визначення даних) є підмножиною SQL (Structured Query Language — Мова структурованих запитів), яка відповідає за структуру та визначення об'єктів бази даних.

Вона використовується для створення, зміни та видалення структур баз даних, а не самих даних.

SQL команди можна поділити на 5 категорій:

  1. DDL — Мова визначення даних (Data Definition Language)
  2. DML — Мова маніпулювання даними (Data Manipulation Language)
  3. DQL — Мова запитів до даних (Data Query Language)
  4. DCL — Мова керування доступом до даних (Data Control Language)
    5.
    TCL — Мова керування транзакціями (Transaction Control Language)

pic

Давайте поговоримо про DDL:

DDL має в основному 5 команд

  • CREATE — Створює нові бази даних, таблиці, уявлення, індекси
  • ALTER — Змінює існуючі структури баз даних
  • DROP — Видаляє бази даних або таблиці
  • TRUNCATE — Видаляє всі записи з таблиці
  • RENAME — Перейменовує об'єкти баз даних

Дозвольте пояснити основні команди DDL з прикладами:

CREATE — Використовується для створення нових об'єктів бази даних:

-- Створити базу даних  
CREATE DATABASE school;  

-- Створити таблицю  
CREATE TABLE students (  
 id INT PRIMARY KEY,  
 name VARCHAR(50),  
 age INT,  
 grade DECIMAL(3,2)  
);

ALTER — Модифікує існуючі об'єкти бази даних:

-- Додати нову колонку  
ALTER TABLE students ADD email VARCHAR(100);  

-- Змінити тип колонки  
ALTER TABLE students MODIFY name VARCHAR(100);

DROP — Видаляє об'єкти бази даних:

-- Видалити таблицю  
DROP TABLE students;  

-- Видалити базу даних  
DROP DATABASE school;

TRUNCATE — Видаляє всі записи з таблиці, зберігаючи при цьому структуру таблиці незмінною:

TRUNCATE TABLE students;

Обмеження — Правила, які можна визначити при створенні таблиць:

PRIMARY KEY — Унікально ідентифікує кожен запис у таблиці і не може містити значення NULL, зазвичай використовується для ідентифікаторів або основних ідентифікаторів.

CREATE TABLE students (  
 student_id INT PRIMARY KEY, -- Одноколонковий первинний ключ  
 name VARCHAR(50)  
);  

-- АБО з використанням кількох колонок  
CREATE TABLE enrollment (  
 student_id INT,  
 course_id INT,  
 PRIMARY KEY (student_id, course_id)  
);

FOREIGN KEY — Створює зв'язок між двома таблицями, посилаючись на первинний ключ іншої таблиці, забезпечуючи referential integrity (референтну цілісність).

CREATE TABLE courses (  
 course_id INT PRIMARY KEY,  
 course_name VARCHAR(100)  
);  

CREATE TABLE enrollment (  
 student_id INT,  
 course_id INT,  
 FOREIGN KEY (course_id) REFERENCES courses(course_id)  
);

UNIQUE — Забезпечує, щоб усі значення в колонці були різними, як, наприклад, електронні адреси чи телефонні номери, але може містити значення NULL.

CREATE TABLE users (  
 id INT PRIMARY KEY,  
 email VARCHAR(100) UNIQUE, -- Повторення електронних адрес не допускається  
 phone VARCHAR(15) UNIQUE  
);

NOT NULL — Змушує колонку завжди мати значення, запобігаючи введенню NULL, зазвичай використовується для важливих даних, таких як імена або дати.

CREATE TABLE employees (  
 id INT PRIMARY KEY,  
 name VARCHAR(50) NOT NULL, -- Ім'я повинно мати значення  
 email VARCHAR(100) NOT NULL  
);

CHECK — Перевіряє дані перед їх вставкою, вказуючи умови (наприклад, age > 18 або price > 0), щоб забезпечити виконання бізнес-правил.

CREATE TABLE products (  
 id INT PRIMARY KEY,  
 price DECIMAL(10,2) CHECK (price >= 0),  
 quantity INT CHECK (quantity >= 0),  
 status VARCHAR(20) CHECK (status IN ('active', 'inactive', 'discontinued'))  
);

DEFAULT — Автоматично присвоює вказане значення колонці, коли під час вставки не вказано жодного значення, корисно для полів часу або статусів.

CREATE TABLE products (  
 id INT PRIMARY KEY,  
 price DECIMAL(10,2) CHECK (price >= 0),  
 quantity INT CHECK (quantity >= 0),  
 status VARCHAR(20) CHECK (status IN ('active', 'inactive', 'discontinued'))  
);

Схема бази даних: Ви можете використовувати DDL для визначення повної схеми вашої бази даних:

-- Створити повну структуру бази даних school  
CREATE DATABASE school;  

CREATE TABLE teachers (  
 teacher_id INT PRIMARY KEY,  
 name VARCHAR(50),  
 subject VARCHAR(30)  
);  

CREATE TABLE classes (  
 class_id INT PRIMARY KEY,  
 teacher_id INT,  
 room_number VARCHAR(10),  
 FOREIGN KEY (teacher_id) REFERENCES teachers(teacher_id)  
);

Висновок:

Мова визначення даних (DDL) є основою архітектури баз даних, надаючи необхідні інструменти для створення та керування структурами баз даних.
За допомогою своїх основних команд — CREATE, ALTER, DROP, TRUNCATE та RENAME — DDL дозволяє адміністраторам баз даних та розробникам точно і з контролем формувати своє середовище даних. Різноманітні обмеження (PRIMARY KEY — первинний ключ, FOREIGN KEY — зовнішній ключ, UNIQUE — унікальність, NOT NULL — не NULL, CHECK — перевірка та DEFAULT — за замовчуванням) забезпечують цілісність даних і підтримують бізнес-правила.

Розуміння DDL є важливим, оскільки воно закладає основу для всіх операцій з базами даних. Це як проєктування будівлі — правильно налаштуй структуру, і все інше стане на свої місця. Незалежно від того, чи створюєте ви просту таблицю, чи розробляєте складну схему бази даних, освоєння DDL є першим кроком до ефективного керування базами даних.

Пам'ятайте: добре спроєктована структура бази даних за допомогою DDL є необхідною для:

  • Підтримки цілісності даних
  • Забезпечення ефективних операцій з даними
  • Підтримки масштабованості
  • Впровадження бізнес-правил
  • Надання надійної основи для ваших додатків

Перекладено з: Mastering DDL: Where Database Architecture Begins

Leave a Reply

Your email address will not be published. Required fields are marked *