Рано или поздно возникает необходимость изменения данных в таблице. Для изменения данных можно использовать различные методы, включая удаление и повторную вставку строк. Изменение данных производится с помощью команды UPDATE, позволяющей выполнять как простое обновление данных в столбце, так и сложные операции модификации данных во множестве строк таблицы. Рассмотрим синтаксис этой команды:
UPDATE таблица_или_представление
SET объекты_изменения
[WHERE (условие)]
Для обновления представления с помощью оператора UPDATE существуют те же ограничения, что и для обновления представления с помощью оператора INSERT.
За ключевым словом SET следует перечень подлежащих обновлению столбцов, отделяемых запятыми, а также их новые значения. Форма записи при этом будет следующая: имя_столбца=новое_значение. Новое значение может быть константой или выражением, которое также может ссылаться на сам столбец. Например, выражение SalesPrice=SalesPrice*.90 будет уменьшать значения в столбце SalesPrice на 10 процентов. Фраза WHERE является необязательной. Если она имеется, то должна задавать строки, подлежащие обновлению. Если фраза WHERE в операторе UPDATE отсутствует, будут модифицироваться все строки в таблице.
Оператор UPDATE использует фразу FROM для извлечения значений из другой таблицы:
UPDATE таблица_или_представление
SET объекты_изменения
FROM таблица_или_представление оператор_связывания условие_связывания
[WHERE (условие_ограничения)].
Фраза FROM здесь имеет тот же формат, что и фраза FROM в операторе SELECT. После того как источник данных указан в разделе FROM, в разделах WHERE и SET можно ссылаться на столбцы этого источника данных. Назначение раздела WHERE, используемого в запросе UPDATE, полностью соответствует назначению, которое раздел имеет в запросе SELECT. To есть с помощью раздела WHERE можно сузить диапазон строк, в которых будет выполняться изменение данных. Пользователь должен указать логическое условие, на основе которого будет приниматься решение об изменении данных конкретной строки. Если в контексте значений строки указанное логическое условие выполняется (то есть она возвращает значение TRUE), то данные этой строки будут изменены. В противном случае изменение не выполняется. Предполагается, что логическое условие включает имена столбцов изменяемой таблицы. Однако это не обязательно.
Так же вы можете задать более одной таблицы или представления путем добавления операторов связывания. Необязательное условие WHERE может использоваться для ограничения множества модифицируемых строк.
Команда UPDATE позволяет изменять не только столбцы таблицы, но и значения переменных. В одной команде допускается изменение и столбцов и переменных. За один вызов UPDATE можно изменить данные в нескольких столбцах множества строк одной таблицы.
Для каждого изменяемого столбца нужно определить значение, которое он примет после выполнения изменения. С помощью ключевого слова DEFAULT можно присвоить столбцу значение, определенное для него по умолчанию. Можно также установить для столбца значение NULL. Если необходимо установить определенное значение, следует указать константу, переменную или выражение. Изменению подвергнутся все строки, удовлетворяющие критериям ограничения области действия запроса UPDATE, которые задаются с помощью раздела WHERE. При составлении выражения можно ссылаться на любые столбцы таблицы, включая изменяемые. При этом следует учитывать, что изменения в данные вносятся только после выполнения команды. Таким образом, при ссылке на изменяемые столбцы будут использоваться старые значения.
Рассмотрим пример изменения ссылки на номер группы с 10-го на 20-ый: