Обновление данных

В то время как оператор INSERT добавляет в таблицу новые строки, оператор UPDATE предназначен для изменения существующих в таблице данных.

В операторе UPDATE нужно указать изменяемые строки и их новые значения. Новые данные могут быть константами или выражениями, или могут быть получены из других таблиц. В большинстве СУБД оператор INSERT имеет следующий синтаксис:

UPDATE <table_name> SET
{<column_name> = <literal> |
<expression> |
(<single_row_select_statement>) |
NULL |
DEFAULT,...}
[WHERE <search_condition>
]

Ключевое слово UPDATE предшествует названию таблицы или обновляемого представления. Как и в случае с другими операторами модификации данных, в каждом операторе UPDATE можно изменять данные только одной таблицы.

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

В предложении SET определяются столбцы и указываются их новые значения. В предложении WHERE можно указать условия для изменяемых строк. Предложение WHERE в операторе UPDATE может включать в себя подзапросы к одной или нескольким другим таблицам.

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

IDevice IconПримеры
Увеличить размер поля в таблице tbl_clients и добавить код "+372" ко всем номерам телефонов
SQL:
ALTER TABLE tbl_clients MODIFY phone char(12);
UPDATE tbl_clients SET phone = CONCAT('+372 ', phone);

В данном примере для получения нового значения в поле phone используется функция СONCAT.


Уменьшить на 10% цену всех товаров группы "HAAVANDTOVE RAVIMID" (код группы равен 6)

SQL:
UPDATE tbl_product SET price = price*0.9 WHERE prod_group=6