UPDATE та DELETE

UPDATE - оновлення даних

Команда UPDATE змінює існуючі записи:

UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;

Оновлення одного поля

UPDATE users SET age = 30 WHERE id = 1;

Оновлення кількох полів

UPDATE users
SET name = 'Олена Петренко', age = 29
WHERE id = 1;
УВАГА! Завжди використовуй WHERE в UPDATE. Без WHERE будуть оновлені ВСІ записи в таблиці!

UPDATE з виразами

-- Збільшити ціну на 10%
UPDATE products SET price = price * 1.10;

-- Збільшити вік на 1
UPDATE users SET age = age + 1 WHERE id = 1;

UPDATE з RETURNING

UPDATE users SET age = 35 WHERE id = 1
RETURNING id, name, age;

DELETE - видалення даних

Команда DELETE видаляє записи з таблиці:

DELETE FROM table_name WHERE condition;

Видалення за умовою

DELETE FROM users WHERE id = 5;

Видалення кількох записів

DELETE FROM users WHERE age < 18;
УВАГА! Завжди використовуй WHERE в DELETE. Без WHERE будуть видалені ВСІ записи з таблиці!

DELETE з RETURNING

DELETE FROM users WHERE id = 5
RETURNING *;

TRUNCATE - швидке очищення

Для видалення всіх записів (швидше за DELETE):

TRUNCATE TABLE users;
Різниця: TRUNCATE швидший, але не записує в лог транзакцій і скидає лічильник SERIAL.

Безпечне оновлення/видалення

Рекомендована практика - спочатку перевірити SELECT:

-- 1. Перевірити, які записи будуть змінені
SELECT * FROM users WHERE age > 60;

-- 2. Якщо все правильно, виконати UPDATE/DELETE
DELETE FROM users WHERE age > 60;

Практика

Спробуй в SQL пісочниці:

  1. UPDATE users SET age = 99 WHERE id = 1;
  2. SELECT * FROM users WHERE id = 1;
  3. DELETE FROM orders WHERE id = 5;

У наступному уроці навчимося створювати власні таблиці.

Наступний урок: CREATE TABLE →