Обновление данных. Команда UPDATE
Для изменения уже имеющихся строк в таблице применяется команда UPDATE. Она имеет следующий формальный синтаксис:
1 2 3 4 | UPDATE имя_таблицы SET столбец1 = значение1, столбец2 = значение2, ... столбецN = значениеN [ FROM выборка AS псевдоним_выборки] [ WHERE условие_обновления] |
Например, увеличим у всех товаров цену на 5000:
1 2 | UPDATE Products SET Price = Price + 5000 |
Используем критерий, и изменим название производителя с "Samsung" на "Samsung Inc.":
1 2 3 | UPDATE Products SET Manufacturer = 'Samsung Inc.' WHERE Manufacturer = 'Samsung' |
Более сложный запрос - заменим у поля Manufacturer значение "Apple" на "Apple Inc." в первых 2 строках:
1 2 3 4 5 | UPDATE Products SET Manufacturer = 'Apple Inc.' FROM ( SELECT TOP 2 FROM Products WHERE Manufacturer= 'Apple' ) AS Selected WHERE Products.Id = Selected.Id |
С помощью подзапроса после ключевого слова FROM производится выборка первых двух строк, в которых Manufacturer='Apple'. Для этой выборки будет определен псевдоним Selected. Псевдоним указывается после оператора AS.
Далее идет условие обновления Products.Id = Selected.Id
. То есть фактически мы имеем дело с двумя таблицами - Products и Selected
(которая является производной от Products). В Selected находится две первых строки, в которых Manufacturer='Apple'.
В Products - вообще все строки. И обновление производится только
для тех строк, которые есть в выборке Selected. То есть если в таблице Products десятки товаров с производителем Apple, то
обновление коснется только двух первых из них.