UPDATE Payments SET unit_price = unit_price *
2;
Дозволяється також значення одних стовпців надавати іншим стовпцям. Але при цьому, звичайно, типи стовпців мають бути сумісними.
Як використовувати оператор Update в SQL
Поліпшіть свої навички роботи з базою даних, вивчивши оператор Update у SQL. У цій статті ви знайдете докладний опис синтаксису, приклади використання та поради щодо оптимізації запитів. Докладніше читайте у нашій статті.
Працюючи з базами даних регулярно доводиться оновлювати вміст таблиць. За вирішення цього завдання у БД SQL відповідає оператор UPDATE. Інструмент дозволяє змінювати існуючі значення в стовпцях за заданими умовами. Ця стаття познайомить вас із синтаксисом, покаже приклади та пояснить, як ефективно використовувати цей оператор.
Синтаксис
UPDATE TableName SET ColumnName_1 = NewValue_1, ColumnName_2 = NewValue_2 … WHERE Condition;
- TableName - назва таблиці SQL, в якій необхідно змінити дані;
- ColumnName – назва стовпця для оновлення;
- NewValue – оновлені дані для зазначеного стовпця;
- Condition – рядки, які потрібно модифікувати.
Змінна Condition — це додатковий необов'язковий фільтр, який визначає вибір записів для оновлення. Якщо параметр не вказано, зміниться всі значення стовпців.
Приклади використання оператора UPDATE
Можна змінювати значення вибірково, масово чи повністю всю таблицю.
Точкова заміна даних
Для модифікації одного поля введемо таке:
UPDATE customers SET email = '[email protected]' WHERE
Цей код оновлює поле email у таблиці customers на [email protected] для запису, у якого id дорівнює 2. Щоб оператор спрацював коректно, аргумент WHERE має однозначно вказувати лише на один запис та бути унікальним.
Разова зміна кількох стовпців
Для одночасного оновлення двох полів виконаємо таку команду:
UPDATE sales SET price = 100, amount = 5 WHERE >Цей код оновлює кілька полів - price і amount - у таблиці sales для запису, у якої id дорівнює 10. Зверніть увагу: пари стовпець-значення в SET потрібно розділяти комами.
Оновлення таблиці SQL
Щоб змінити відразу всі рядки, опустимо блок WHERE:
UPDATE sales SET price = 1000;
Цей код встановлює ціну на всі товари з бази sales, що дорівнює 1000. Оскільки додатковий параметр WHERE не вказаний, команда застосовується до всіх значень у стовпцях зазначеної таблиці.
Доопрацюємо цей приклад: припустимо, у магазині діє знижка 5% на всі товари. Значить, потрібно зменшити всі ціни, тобто помножити існуючі значення на 0,95. Як це зробити:
UPDATE sales SET price = (price * 0,95);
Запит оновлює поля price у таблиці sales для всіх записів відповідно до зазначеної формули.
Застосування умов
Щоб відфільтрувати дані, які підлягають оновленню, скористаємося параметром WHERE:
UPDATE orders SET status = 'cancelled' WHERE order_date < '2023-01-01';
Цей код оновлює статус усіх замовлень у стовпцях таблиці orders, дата яких менша за 01.01.2023.
Додаткові можливості оператора
При складанні запитів використовуються аргументи:
- DEFAULT — встановлює параметр за промовчанням чи NULL, якщо за промовчанням не заданий;
- FROM - Вказує, з якої таблиці потрібно витягувати дані;
- ORDER BY - задає правила сортування;
- LIMIT — обмежує кількість записів, що оновлюються.
Ці дані можна замінити записами з іншої таблиці. Для цього використовується синтаксис такого вигляду:
UPDATE TableName_1 SET ColumnName_1 = (SELECT NewValue_1 FROM TableName_2 WHERE Condition) [WHERE Condition];
Тут TableName_1 вказує на БД SQL, в якій потрібно замінити інформацію, а TableName_2 - БД, з якої потрібно взяти нові значення відповідно до блоків FROM і SELECT і перенести до першої БД за умовами, зазначеними в Condition.
Подивимося, як оновлювати значення БД за допомогою підзапитів, на прикладі:
UPDATE products SET price = (SELECT avg_price FROM product_stats WHERE product_id = products.id) WHERE category = 'electronics';
Цей код оновить ціну товарів із категорії electronics, встановивши її рівною середньою ціною з таблиці product_stats.
Основні правила роботи з UPDATE
Оператор відрізняється досить простим синтаксисом та потужною функціональністю. Щоб ефективно користуватися цим інструментом, варто дотримуватись кількох рекомендацій:
- використовуйте WHERE для фільтрації рядків, щоб уникнути випадкової заміни потрібних даних;
- використовуйте COMMIT після виконання запиту, щоб зафіксувати зміни до БД;
- у разі помилки використовуйте ROLLBACK для скасування змін.
Також важливо пам'ятати, що UPDATE нічого не повертає — лише змінює інформацію у вказаних стовпцях та рядках.
Резюме
UPDATE є потужним інструментом для модифікації записів у базах даних SQL.
Знання правил роботи з оператором, використання його додаткових можливостей дозволяє ефективно та безпечно змінювати інформацію в таблицях SQL та спрощує процес адміністрування БД.