Update SQL: что это, синтаксис, примеры использования

Аватарка пользователя Дух айтишной эмо школы
Отредактировано

Рассказали об операторе UPDATE SQL, разобрали синтаксис оператора и рассмотрели его использование на практических примерах.

22К открытий48К показов

SQL UPDATE — это оператор, который используется для изменения записей в таблице. Он позволяет обновлять значения в столбцах таблицы в соответствии с определенным условием.

Синтаксис Update SQL

Синтаксис SQL UPDATE выглядит так:

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

UPDATE table_name указывает таблицу, в которой нужно обновить данные.

SET column1 = value1, column2 = value2, ... определяет столбцы, которые нужно обновить, и новые значения для них.

WHERE condition определяет условие, по которому будут выбраны записи для обновления. Если это условие не указано, то будут обновлены все записи в таблице.

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

Обновление одной записи

Чтобы обновить только одну запись в SQL, необходимо использовать оператор UPDATE с условием, которое точно соответствует только одной записи.

			UPDATE students
SET grade = '3'
WHERE student_id = 12345;
		

В этом примере оператор UPDATE обновит столбец grade для студента с идентификатором 12345 и установит оценку “3” только для этой записи.

Чтобы обновить только одну запись, условие WHERE должно быть уникальным и соответствовать только этой записи в таблице.

Обновление записей

Чтобы обновить несколько записей в SQL с помощью UPDATE, используйте оператор WHERE для указания условий, под которые попадают сразу несколько строк или столбцов.

В примере ниже оператор UPDATE обновит все записи в таблице users и установит значение active для всех записей в поле status , если значение age больше 25 лет:

			UPDATE users
SET status = 'active'
WHERE age > 25;
		

Важно! Если обновить записи в SQL при помощи UPDATE и не указать условие WHERE, то все записи в таблице будут обновлены.

Пример использования команды UPDATE без указания WHERE:

			UPDATE users
SET status = 'inactive';
		

В этом примере все записи в таблице users будут обновлены, и значения поля status будут установлены как inactive для всех записей без ограничений. Использование такого синтаксиса допустимо только в тех случаях, когда требуется массовое обновление всех данных.

Обновление нескольких столбцов

C помощью оператора SQL UPDATE можно обновлять сразу несколько столбцов за один запрос:

			UPDATE customers
SET address = '123 New St', city = 'New York'
WHERE customer_id = 345;

		

Обновление с функцией LIMIT

Функция LIMIT ограничивает число обновляемых записей. Это полезно, если нужно изменить лишь несколько записей, соответствующих определённому условию.

			UPDATE customers
SET status = 'active'
WHERE city = 'Moscow'
LIMIT 5;

		

Обновление нескольких таблиц

С помощью оператора UPDATE можно обновить сразу несколько таблиц за один запрос:

			UPDATE orders, customers
SET orders.status = 'processed', customers.last_order_date = NOW()
WHERE orders.customer_id = customers.customer_id AND orders.order_id = 5001;

		

В этом запросе обновляются данные как в таблице заказов, так и в табличке клиентов для конкретного заказа.

Обновление с DEFAULT

Функция DEFAULT возвращает значение поля к его значению по умолчанию.

			UPDATE products
SET discount = DEFAULT
WHERE product_id = 1001;

		

Здесь скидка для продукта с идентификатором 1001 будет возвращена к значению по умолчанию, которое было определено при создании таблицы.

Обновление с INNER JOIN

Функция INNER JOIN используется для обновления данных на основе совпадений между таблицами:

			UPDATE employees
INNER JOIN departments ON employees.department_id = departments.department_id
SET employees.salary = 60000
WHERE departments.name = 'HR';

		

Здесь зарплата всех сотрудников отдела кадров будет установлена на уровне 60000, используя условие соединения между таблицами employees и departments.

Обновление с LEFT JOIN

При необходимости обновления данных даже в тех строках, где нет соответствий между таблицами, используем LEFT JOIN.

			UPDATE employees
LEFT JOIN bonuses ON employees.employee_id = bonuses.employee_id
SET employees.bonus = bonuses.amount
WHERE bonuses.year = 2024;

		

Здесь для сотрудников, у которых есть премия за 2023 год, значения премии будут обновлены, а для остальных сотрудников поле останется неизменным.

Заключение

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

UPDATE определяет таблицу для обновления данных, SET определяет столбцы для обновления, а WHERE определяет условия.

Важно не забывать определить условие WHERE, чтобы случайно не обновить все данные в столбцах.

Следите за новыми постами
Следите за новыми постами по любимым темам
22К открытий48К показов