Включите исполнение JavaScript в браузере, чтобы запустить приложение.
11 ноя 2024

Как использовать оператор Update в SQL

Улучшите свои навыки работы с базой данных, изучив оператор Update в SQL. В этой статье вы найдете подробное описание синтаксиса, примеры использования и советы по оптимизации запросов. Подробнее читайте в нашей статье.

При работе с базами данных регулярно приходится обновлять содержимое таблиц. За решение этой задачи в БД SQL отвечает оператор UPDATE. Инструмент позволяет менять уже существующие значения в столбцах по заданным условиям. Эта статья познакомит вас с синтаксисом, покажет примеры и объяснит, как эффективно использовать этот оператор.

Синтаксис

Для изменения данных в SQL предусмотрена команда следующего вида:

UPDATE TableName
SET ColumnName_1 = NewValue_1, ColumnName_2 = NewValue_2 …
WHERE Condition;
sql

Описание переменных:

  • TableName — название таблицы SQL, в которой необходимо поменять данные;
  • ColumnName — название столбца для обновления;
  • NewValue — обновленные данные для указанного столбца;
  • Condition — строки, которые нужно модифицировать.

Переменная Condition — это дополнительный необязательный фильтр, определяющий выборку записей для обновления. Если параметр не задан, изменятся все значения столбцов.

Примеры использования оператора UPDATE

Можно менять значения выборочно, массово или полностью всю таблицу.

Точечная замена данных

Для модификации одного поля введем следующее:

UPDATE customers
SET email = 'new_email@example.com'
WHERE id = 2; 
sql

Этот код обновляет поле email в таблице customers на new_email@example.com для записи, у которой id равен 2. Чтобы оператор сработал корректно, аргумент WHERE должен однозначно указывать только на одну запись и быть уникальным.

Разовое изменение нескольких столбцов

Для одновременного обновления двух полей выполним такую команду:

UPDATE sales
SET price = 100, amount = 5
WHERE id = 10;
sql

Этот код обновляет несколько полей — price и amount — в таблице sales для записи, у которой id равен 10. Обратите внимание: пары столбец-значение в SET нужно разделять запятыми.

Обновление таблицы SQL

Чтобы поменять сразу все строки, опустим блок WHERE:

UPDATE sales
SET price = 1000;
sql

Этот код устанавливает цену на все товары из базы sales, равную 1000. Так как дополнительный параметр WHERE не указан, команда применяется ко всем значениям в столбцах указанной таблицы.

Доработаем этот пример: допустим, в магазине действует скидка 5% на все товары. Значит, нужно снизить все цены, то есть умножить существующие значения на 0,95. Как это сделать:

UPDATE sales
SET price = (price * 0,95);
sql

Запрос обновляет поля price в таблице sales для всех записей в соответствии с указанной формулой.

Применение условий

Чтобы отфильтровать данные, подлежащие обновлению, воспользуемся параметром WHERE:

UPDATE orders
SET status = 'cancelled'
WHERE order_date < '2023-01-01';
sql

Этот код обновляет статус всех заказов в столбцах таблицы 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];
sql

Здесь 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';
sql

Этот код обновит цену товаров из категории electronics, установив ее равной средней цене из таблицы product_stats.

Основные правила работы с UPDATE

Оператор отличается довольно простым синтаксисом и мощной функциональностью. Чтобы эффективно пользоваться этим инструментом, стоит придерживаться нескольких рекомендаций:

  • используйте WHERE для фильтрации строк, чтобы избежать случайной замены нужных данных;
  • используйте COMMIT после выполнения запроса, чтобы зафиксировать изменения в БД;
  • в случае ошибки используйте ROLLBACK для отмены изменений.

Также важно помнить, что UPDATE ничего не возвращает — только изменяет информацию в указанных столбцах и строках.

Резюме

UPDATE — мощный инструмент для модификации записей в базах данных SQL. 

Знание правил работы с оператором, использование его дополнительных возможностей позволяет эффективно и безопасно изменять информацию в таблицах SQL и упрощает процесс администрирования БД.