Команда UPDATE

В MySQL (як і в інших системах керування базами даних), UPDATE — це SQL-команда, яка використовується для зміни (оновлення) наявних даних у таблиці.

Синтаксис команди UPDATE

UPDATE ім'я_таблиці
SET ім'я_поля1 = нове_значення1, ім'я_поля2 = нове_значення2, ...
WHERE умова;

Важливо:

Без WHERE умови оновляться всі рядки у таблиці. Тобто потрібно бути обережним.

Приклад 1: Оновити одне поле в одному рядку

UPDATE users
SET age = 30
WHERE id = 1;
-- Цей запит змінює значення віку на 30 для користувача з id = 1.

Приклад 2: Оновити кілька полів

UPDATE products
SET price = 19.99, stock = 50
WHERE product_id = 1001;
-- Тут ми оновлюємо ціну та залишок товару.

Приклад 3: Масове оновлення

UPDATE employees
SET salary = salary * 1.1
WHERE department = 'HR';
-- Цей запит підвищує зарплату всім працівникам відділу кадрів на 10%.

Приклад 4: Оновити всі записи (небезпечна операція!)

UPDATE users
SET status = 'inactive';
-- Це оновить усі рядки в таблиці users.

Приклад

-- Створення бази даних
CREATE DATABASE company_db;
USE company_db;

-- Створення таблиці employees
CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    full_name VARCHAR(100),
    position VARCHAR(50),
    department VARCHAR(50),
    salary DECIMAL(10, 2)
);
-- Вставка даних
INSERT INTO employees (full_name, position, department, salary) VALUES
('Олег Іваненко', 'Менеджер', 'Продажі', 12000.00),
('Ірина Шевченко', 'Інженер', 'Технічний відділ', 15000.00),
('Максим Білий', 'Інженер', 'Технічний відділ', 14800.00),
('Анна Коваль', 'Бухгалтер', 'Фінанси', 13000.00),
('Сергій Павленко', 'HR', 'Кадри', 11000.00),
('Катерина Литвин', 'Дизайнер', 'Маркетинг', 12500.00),
('Андрій Кузьменко', 'Менеджер', 'Продажі', 11900.00);

-- Перевірка поточного стану таблиці
SELECT * FROM employees;
-- Отримаємо таблицю зі всіма співробітниками.

-- Підвищити зарплату всім у "Технічному відділі" на 10%
UPDATE employees
SET salary = salary * 1.10
WHERE department = 'Технічний відділ';
-- Перевірка результатів після UPDATE
SELECT * FROM employees WHERE department = 'Технічний відділ';

-- Зміна посади
UPDATE employees
SET position = 'Старший менеджер'
WHERE full_name = 'Олег Іваненко';

-- перевірка всієї таблиці
SELECT * FROM employees;

Для додаткової візуалізації є відео.

Команда INSERT

Команда INSERT в MySQL використовується для додавання нових рядків (записів) у таблицю бази даних.

Синтаксис:

INSERT INTO назва_таблиці (стовпець1, стовпець2, ..., стовпецьN)
VALUES (значення1, значення2, ..., значенняN);

Приклад:

INSERT INTO users (name, email, age)
VALUES ('James', 'James@example.com', 30);

Особливості:

    • Можна не вказувати стовпці, якщо значення подаються для всіх стовпців у правильному порядку:

INSERT INTO users
VALUES (1, 'Maria', 'maria@example.com', 25);

    • Можна додати кілька записів за один запит:

INSERT INTO users (name, email, age)
VALUES
('Oleg', 'oleg@example.com', 28),
('Olga', 'olga@example.com', 32);

Приклад

-- Створення бази даних
CREATE DATABASE bookstore;
USE bookstore;

-- Створення таблиці
CREATE TABLE authors (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    country VARCHAR(50)
);
-- Створення таблиці
CREATE TABLE books (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(150) NOT NULL,
    genre VARCHAR(50),
    year_published INT,
    author_id INT,
    FOREIGN KEY (author_id) REFERENCES authors(id)
        ON DELETE CASCADE
        ON UPDATE CASCADE
);
-- Внесення даних в таблицю авторів
INSERT INTO authors (name, country) VALUES
('Джордж Орвелл', 'Велика Британія'),
('Габріель Гарсія Маркес', 'Колумбія'),
('Ліна Костенко', 'Україна'),
('Харукі Муракамі', 'Японія'),
('Ернест Хемінгуей', 'США'),
('Жуль Верн', 'Франція'),
('Астрід Ліндгрен', 'Швеція');
-- Внесення даних в таблицю книги
INSERT INTO books (title, genre, year_published, author_id) VALUES
('1984', 'Антиутопія', 2019, 1),
('Сто рокiв самотностi', 'Магічний реалізм', 2021, 2),
('Маруся Чурай', 'Історичний роман', 2017, 3),
('Норвезький ліс', 'Роман', 2019, 4),
('Старий і море', 'Повість', 2023, 5),
('Подорож до центру Землі', 'Наукова фантастика', 2020, 6),
('Фієста', 'Роман', 2021, 5),
('Карлсон, що живе на даху', 'Дитяча література', 2020, 7);

Для додаткової візуалізації є відео.

Команда TRUNCATE

Команда TRUNCATE в MySQL використовується для швидкого видалення всіх рядків з таблиці. Вона є подібною до команди DELETE, але має кілька важливих відмінностей
Швидкість• TRUNCATE виконується значно швидше, ніж DELETE, оскільки не генерує окремі записи для кожного видаленого рядка і не ініціює тригери (як це робить DELETE).
Не можна видалити вибіркові рядки• TRUNCATE не дозволяє видаляти окремі рядки на основі умови, на відміну від DELETE, яке можна використовувати з умовами WHERE.
Скидає лічильники автоінкременту• В більшості випадків, коли ви використовуєте TRUNCATE, лічильник автоінкременту для стовпця, який має властивість AUTO_INCREMENT, буде скинутий до початкового значення.

Приклад:

-- Створення бази даних
CREATE DATABASE IF NOT EXISTS truncate_practice;
USE truncate_practice;

-- Створення таблиці
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);
-- Наповнення таблиці даними
INSERT INTO users (name, email) VALUES
('Olga', 'olga@example.com'),
('Maria', 'maria@example.com'),
('Veronika', 'veronika@example.com');

-- Використання команди TRUNCATE
TRUNCATE TABLE users;
-- Перевіримо таблицю після очищення
SELECT * FROM users;

-- Ще раз внесемо дані в таблицю
INSERT INTO users (name, email) VALUES
('Olga', 'olga@example.com'),
('Maria', 'maria@example.com'),
('Petro', 'petro@example.com'),
('Sofia', 'sofia@example.com'),
('Olena', 'olena@example.com');

SELECT * FROM users;

Для додаткової візуалізації є відео.