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 пісочниці:
UPDATE users SET age = 99 WHERE id = 1;SELECT * FROM users WHERE id = 1;DELETE FROM orders WHERE id = 5;