English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL справочник

SQL обновление данных (оператор UPDATE)

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

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

Грамматика

Оператор UPDATE используется для обновления существующих данных в таблице.

UPDATE table_name SET column1_name = value1, column2_name = value2,... WHERE condition;

Здесь:column1_name,column2_name... - это имя столбца или поля таблицы базы данных, значение которого нужно обновить. Вы также можете использовать операторы OR и AND, изученные в предыдущей главеКомбинирование нескольких условий.

Предупреждение:WHERE подзапрос определяет записи, которые должны быть обновлены. Если подзапрос WHERE пропущен, то будут обновлены все записи.

Давайте посмотрим на несколько примеров, демонстрирующих их реальное действие.

Предположим, что у нас есть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-запросы обновятemployeesтаблицыemp_nameполе и установить новое значение, где employee id (т.е.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 |
+--------+------------------+------------+--------+---------+

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

Таким образом, вы можете использовать список имен столбцов и значений, разделенных запятыми, чтобы обновить несколько столбцов. Следующий пример обновитemployeesв таблицеemp_idу текущих сотрудников сsalaryиdept_idполя.

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 |
+--------+------------------+------------+--------+---------+