Оператор SQL UPDATE


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

Оператор SQL UPDATE имеет следующий синтаксис:

UPDATE table_name SET expression [WHERE condition]

Напоминаю, что записи в квадратных скобках [] являются необязательными.

После ключевого слова SET должен идти список столбцов таблицы, которые следует изменить, и новые значения в формате Имя_столбца = значение.

Дополнительное условие, описываемое в операторе SQL WHERE, помогает более гибко совершать манипуляции данными.


Примеры оператора SQL UPDATEИмеется следующая таблица Planets:

ID PlanetName Radius SunSeason OpeningYear HavingRings Opener
1 Mars 3396 687 1659 No Christiaan Huygens
2 Saturn 60268 10759.22 Yes
3 Neptune 24764 60190 1846 Yes John Couch Adams
4 Mercury 2439 115.88 1631 No Nicolaus Copernicus
5 Venus 6051 243 1610 No Galileo Galilei

Пример 1. С помощью оператора SQL UPDATE изменить название планеты Neptune на Pluton:

UPDATE Planets
SET PlanetName = 'Pluton'
WHERE ID = 3

В этом примере условие оператора SQL WHERE является обязательным, так как без него все поля столбца PlanetName во всей таблице изменились бы на Pluton. В данном случае, нам приходит на помощь столбец ID, ибо он является Первичным ключом, позволяющим однозначно идентифицировать запись.

Выполним запрос оператором SQL SELECT, чтобы посмотреть изменения в записи:

SELECT *
FROM Planets
WHERE ID = 3

Результат:

ID PlanetName Radius SunSeason OpeningYear HavingRings Opener
3 Pluton 24764 60190 1846 Yes John Couch Adams

Пример 2. С помощью оператора SQL UPDATE у первых трех записей таблицы изменить значение наличия колец (HavingRings) на «No» и обнулить поле ID

Код примера для MS SQL Server:

UPDATE TOP(3) Planets
SET HavingRings = 'No', ID = NULL

Код примера для MySQL:

UPDATE Planets
SET HavingRings = 'No', ID = NULL
LIMIT 3

Выполним проверку:

SELECT TOP(3) *
FROM Planets

Результат:

ID PlanetName Radius SunSeason OpeningYear HavingRings Opener
NULL Mars 3396 687 1659 No Christiaan Huygens
NULL Saturn 60268 10759.22 No
NULL Neptune 24764 60190 1846 No John Couch Adams