UPDATE в SQL
В этой статье вы научитесь обновлять записи в таблице БД с помощью SQL.
В предыдущих статьях мы говорили о том, как вставлять данные и как выбирать данные из таблицы на основе различных условий. В этой статье мы научимся выполнять еще одну важную задачу — обновлять существующие записи в таблице базы данных.
Синтаксис
Оператор UPDATE
позволяет обновлять существующие данные в таблице. Вот его синтаксис:
UPDATE имя_таблицы
SET имя_столбца1 = значение1, имя_столбца2 = значение2,...
WHERE условие;
имя_столбца1
, имя_столбца2
,... — это имена столбцов или полей таблицы базы данных, значения которых вы хотите обновить. Вы также можете объединить несколько условий с помощью операторов AND
или OR
, которые мы изучали в предыдущих статьях.
Примечание. Пункт
WHERE
в оператореUPDATE
определяет, какая запись или записи должны быть обновлены. Если опустить предложение WHERE, обновлены будут все записи.
Пример 1: обновление одного столбца
Предположим, что в нашей базе данных есть таблица сотрудников employees
, в которой содержатся следующие записи:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 5000 | 1 | | 2 | Tony Montana | 2002-07-15 | 6500 | 5 | | 3 | Sarah Connor | 2005-10-18 | 8000 | 3 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 4 | | 5 | Martin Blank | 2008-06-24 | 5600 | NULL | +--------+--------------+------------+--------+---------+
Следующий SQL-запрос обновит поле emp_name
(имя сотрудника) таблицы employees
и установит новое значение, где emp_id
(номер сотрудника), равен 3.
UPDATE employees SET emp_name = 'Sarah Ann Connor' WHERE emp_id = 3;
Результат будет выглядеть так:
+--------+------------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+------------------+------------+--------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 5000 | 1 | | 2 | Tony Montana | 2002-07-15 | 6500 | 5 | | 3 | Sarah Ann Connor | 2005-10-18 | 8000 | 3 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 4 | | 5 | Martin Blank | 2008-06-24 | 5600 | NULL | +--------+------------------+------------+--------+---------+
Пример 2: обновление нескольких столбцов
Аналогичным образом можно обновить несколько столбцов, используя список пар имен и значений столбцов, разделенных запятыми. Давайте обновим поле salary
(зарплата) и dept_id
(номер департамента) существующего сотрудника в таблице employees
, чей emp_id
(номер сотрудника) равен 5.
UPDATE employees SET salary = 6000, dept_id = 2 WHERE emp_id = 5;
Результат:
+--------+------------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+------------------+------------+--------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 5000 | 1 | | 2 | Tony Montana | 2002-07-15 | 6500 | 5 | | 3 | Sarah Ann Connor | 2005-10-18 | 8000 | 3 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 4 | | 5 | Martin Blank | 2008-06-24 | 6000 | 2 | +--------+------------------+------------+--------+---------+