Blueprint мова, яка формує ваш світ баз даних
Що таке DDL?
DDL (Data Definition Language — Мова визначення даних) є підмножиною SQL (Structured Query Language — Мова структурованих запитів), яка відповідає за структуру та визначення об'єктів бази даних.
Вона використовується для створення, зміни та видалення структур баз даних, а не самих даних.
SQL команди можна поділити на 5 категорій:
- DDL — Мова визначення даних (Data Definition Language)
- DML — Мова маніпулювання даними (Data Manipulation Language)
- DQL — Мова запитів до даних (Data Query Language)
- DCL — Мова керування доступом до даних (Data Control Language)
5.
TCL — Мова керування транзакціями (Transaction Control Language)
Давайте поговоримо про 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