English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SQL обновление данных (оператор UPDATE)
Обновление данных таблицыВ предыдущих главах мы изучили, как обновлять данные в таблице на основе различных условийи как вставлять данные в таблицу базы данныхВыбор данных для запроса. В этом руководстве мы будем изучать более важную задачу - обновление существующих записей в таблице базы данных.
Оператор 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 | +--------+------------------+------------+--------+---------+