Базы данных
и язык SQL

SQL UPDATE - обновление данных

Оператор SQL UPDATE предназначен для обновления (редактирования) данных в таблице. Он применяется, когда в той или иной строке таблицы уже записаны некоторые данные и нужно внести в них изменения. Оператор UPDATE имеет следующий синтаксис:

UPDATE ИМЯ_ТАБЛИЦЫ SET ИМЯ_СТОЛБЦА_1=ЗНАЧЕНИЕ, ..., ИМЯ_СТОЛБЦА_N=ЗНАЧЕНИЕ [WHERE УСЛОВИЕ]

Квадратные скобки [], в которые заключена часть запроса WHERE УСЛОВИЕ, означает, что эта часть является необязательной.

Использование оператора SQL UPDATE вместе с секцией WHERE

Хотя часть запроса на обновление данных WHERE УСЛОВИЕ является необязательной, в большинстве случаев она применяется, так как обновить чаще требуется значения столбцов в определённых строках.

Пример 1. Есть база портала объявлений. В ней есть таблица Ads, содержащая данные о объявлениях, поданных за неделю (более подробно - в уроке об агрегатных функциях SQL, пример 7). Таблица выглядит так:

IdCategoryPartUnitsMoney
1ТранспортАвтомашины11017600
2НедвижимостьКвартиры8918690
3НедвижимостьДачи5711970
4ТранспортМотоциклы13120960
5СтройматериалыДоски687140
6ЭлектротехникаТелевизоры1278255
7ЭлектротехникаХолодильники1378905
8СтройматериалыРегипс11211760
9ДосугКниги966240
10НедвижимостьДома479870
11ДосугМузыка1177605
12ДосугИгры412665

Требуется изменить значения столбцов Units и Money в строке с ID=4. Для этого пишем следующий запрос:

UPDATE ADS SET Units=148, Money=23680 WHERE ID=4

После выполнения этого запроса соответствующая строка будет содержать следующие данные:

4ТранспортМотоциклы14823680

Запросом на обновление данных с использованием оператора SQL UPDATE и секции WHERE можно изменить значения столбцов и в нескольких строках, которые соответствуют условию, указанному в секции WHERE.

Пример 2. База данных и таблица - те же, что и в примере 1. Требуется поменять название категории "Недвижимость" на "Постройки". Пишем следующий запрос:

UPDATE ADS SET Category='Постройки' WHERE Category='Недвижимость'

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

Использование оператора SQL UPDATE без секции WHERE

Пример 3. База данных и таблица - те же, что и в предыдущих примерах. Требуется сделать неопределёнными (NULL) значения столбцов Units и Money во всех строках таблицы. Запрос для такого обновления данных будет следующим:

UPDATE ADS SET Units=NULL, Money=NULL

В результате действия этого запроса столбцы Units и Money примут значение NULL во всех строках таблицы.

Использование оператора SQL UPDATE и вычисляемые значения

В запросах на обновление данных с использованием оператора SQL UPDATE можно путём задания вычислений менять значения, имеющие числовой формат. Соответствующие запросы могут быть с или без секции WHERE.

Пример 4. База данных и таблица - те же, что и в предыдущих примерах.

Теперь предположим, что во время заполнения таблицы данными изменились расценки на объявления, публикуемые на портале. Требуется увеличить значения столбца Money в 2 раза во всех строках таблицы. Пишем следующий запрос:

UPDATE ADS SET Money = Money*2

Поделиться с друзьями

Реляционные базы данных и язык SQL