SQL — це не лише запити до бази даних, а й потужні команди для зміни даних у таблицях. Ці команди мови маніпулювання даними (Data Manipulation Language, DML), як-от INSERT, UPDATE та DELETE, дозволяють додавати, змінювати або видаляти рядки в базі даних. У цій статті ми розглянемо ці команди на практичних прикладах.
Приклад таблиці: Співробітники
Розпочнемо з прикладу таблиці "Співробітники", щоб продемонструвати приклади:
| EmployeeID | Name | Position | Salary | Department |
| ---------- | ------- | ---------- | ------ | ---------- |
| 1 | Alice | Developer | 70000 | IT |
| 2 | Bob | Designer | 65000 | Design |
| 3 | Charlie | Developer | 72000 | IT |
| 4 | Diana | Manager | 90000 | HR |
| 5 | Eve | Developer | 70000 | IT |
1. INSERT: Додавання рядків до таблиці
Команда INSERT використовується для додавання нових рядків до таблиці.
Завдання: Додати нового співробітника Френка, який є тестувальником у відділі QA з зарплатою 60 000 доларів.
INSERT INTO Employees (EmployeeID, Name, Position, Salary, Department)
VALUES (6, 'Frank', 'Tester', 60000, 'QA');
Результат: Таблиця тепер включає нового співробітника:
| EmployeeID | Name | Position | Salary | Department |
| ---------- | ------- | ---------- | ------ | ---------- |
| 1 | Alice | Developer | 70000 | IT |
| 2 | Bob | Designer | 65000 | Design |
| 3 | Charlie | Developer | 72000 | IT |
| 4 | Diana | Manager | 90000 | HR |
| 5 | Eve | Developer | 70000 | IT |
| 6 | Frank | Tester | 60000 | QA |
2. UPDATE: Зміна існуючих рядків
Команда UPDATE дозволяє змінювати дані в існуючих рядках на основі певних умов.
Завдання: Збільшити зарплату всім розробникам у відділі IT на 10%.
UPDATE Employees
SET Salary = Salary * 1.10
WHERE Position = 'Developer' AND Department = 'IT';
Результат: Зарплата для Аліси, Чарлі та Єви була оновлена:
| EmployeeID | Name | Position | Salary | Department |
| ---------- | ------- | ---------- | ------ | ---------- |
| 1 | Alice | Developer | 77000 | IT |
| 2 | Bob | Designer | 65000 | Design |
| 3 | Charlie | Developer | 79200 | IT |
| 4 | Diana | Manager | 90000 | HR |
| 5 | Eve | Developer | 77000 | IT |
| 6 | Frank | Tester | 60000 | QA |
3. DELETE: Видалення рядків з таблиці
Команда DELETE видаляє рядки з таблиці на основі умови.
Завдання: Видалити всіх співробітників з відділу QA.
DELETE FROM Employees
WHERE Department = 'QA';
Результат: Френк був видалений з таблиці:
| EmployeeID | Name | Position | Salary | Department |
| ---------- | ------- | ---------- | ------ | ---------- |
| 1 | Alice | Developer | 77000 | IT |
| 2 | Bob | Designer | 65000 | Design |
| 3 | Charlie | Developer | 79200 | IT |
| 4 | Diana | Manager | 90000 | HR |
| 5 | Eve | Developer | 77000 | IT |
4. MERGE (UPSERT): Комбінування INSERT та UPDATE
Команда MERGE використовується для вставки нових рядків або оновлення існуючих рядків на основі умови співпадіння. Це також відомо як "upsert".
Завдання: Якщо співробітник з EmployeeID = 5 існує, змінити його позицію на "Lead Developer".
Інакше, вставити нового співробітника.
MERGE INTO Employees AS Target
USING (SELECT 5 AS EmployeeID, 'Eve' AS Name, 'Lead Developer' AS Position, 80000 AS Salary, 'IT' AS Department) AS Source
ON Target.EmployeeID = Source.EmployeeID
WHEN MATCHED THEN
UPDATE SET Position = Source.Position, Salary = Source.Salary
WHEN NOT MATCHED THEN
INSERT (EmployeeID, Name, Position, Salary, Department)
VALUES (Source.EmployeeID, Source.Name, Source.Position, Source.Salary, Source.Department);
Результат: Позиція Єви була оновлена на "Lead Developer":
| EmployeeID | Name | Position | Salary | Department |
| ---------- | ------- | -------------- | ------ | ---------- |
| 1 | Alice | Developer | 77000 | IT |
| 2 | Bob | Designer | 65000 | Design |
| 3 | Charlie | Developer | 79200 | IT |
| 4 | Diana | Manager | 90000 | HR |
| 5 | Eve | Lead Developer | 80000 | IT |
5. TRUNCATE: Швидке очищення всіх рядків
Команда TRUNCATE видаляє всі рядки з таблиці, але на відміну від DELETE, вона не веде журнал окремих видалених рядків, що робить її швидшою.
Завдання: Очистити всі рядки в таблиці "Employees".
TRUNCATE TABLE Employees;
Результат: Таблиця тепер порожня, але структура залишається незмінною.
6. DROP: Видалення всієї таблиці
Команда DROP видаляє таблицю та її дані назавжди.
Завдання: Видалити таблицю "Employees" з бази даних.
DROP TABLE Employees;
Результат: Таблиця "Employees" більше не існує.
Підсумок
SQL надає широкий набір команд для зміни даних та структури таблиць. Ось короткий підсумок:
Команда Використання
- INSERT Додавання нових рядків до таблиці.
- UPDATE Зміна даних у існуючих рядках.
- DELETE Видалення конкретних рядків з таблиці.
- MERGE Комбінування логіки INSERT і UPDATE (upsert).
- TRUNCATE Швидке очищення всіх рядків у таблиці.
- DROP Видалення всієї структури таблиці та даних.
Ці команди дозволяють підтримувати вашу базу даних актуальною, чистою та організованою. Практикуйте ці приклади на власній базі даних, щоб набратись впевненості в зміні даних за допомогою SQL!
Дякую, що знайшли час ознайомитися з даними та їх маніпулюванням. Я ціную вашу зацікавленість. Якщо ви вважаєте цю інформацію корисною, запрошую вас підписатися на мене або зв'язатися через LinkedIn. Успіхів у вивченні!👋
Перекладено з: A Quick Guide to SQL Data Modification Commands with Examples