ГЛАВА 6

МАНИПУЛИРОВАНИЕ ДАННЫМИ III:

ОПЕРАЦИИ ОБНОВЛЕНИЯ

ВВЕДЕНИЕ

 

В двух последних главах весьма подробно было рассмотрено предложение выборки данных SELECT языка SQL. Обратим теперь наше внимание на предложения обновления данныхUPDATE (обновить), DELETE (удалить) и INSERT (вставить). Примечание. Термин «обновить» имеет, к сожалению, в системе DB2 два различных смысла. Он используется как родовой термин для ссылки на все три указанные операции как класс, а с другой стороны, специально для ссылки на операцию UPDATE саму по себе. Для того чтобы различать эти два смысла в данной книге, рассматриваемый термин записывается строчными буквами, когда предполагается его использование в родовом смысле, и прописными, если имеется в виду специфический его смысл.

Как и предложение SELECT, три предложения обновления данных оперируют не только базовыми таблицами, но и представлениями. Однако по причинам, рассмотрение которых выходит за рамки данной главы, не все представления являются обновляемыми. Если пользователь попытается выполнять операцию обновления над необновляемым представлением, система DB2 просто отвергнет эту операцию с соответствующим сообщением для пользователя. Предположим, следовательно, для целей данной главы, что все таблицы, которые будут обновляться, являются базовыми таблицами, а рассмотрение запросов к представлениям и, в частности, обновления представлений отложим до главы 8.

В следующих трех разделах подробно обсуждаются три операции обновления. Синтаксис этих операций следует тому же общему образцу, который был уже показан для операции SELECT. Для удобства в начале соответствующих разделов приводится в общих чертах синтаксис обсуждаемых предложений языка SQL.

 

ПРЕДЛОЖЕНИЕ UPDATE

 

Предложение UPDATEимеет следующий общий формат:

UPDATE таблица

SET поле = выражение

[,поле = выражение] . . .

[WHERE предикат];

Все записи в «таблице», которые удовлетворяют «предикату», обновляются в соответствии с присваиваниями «поле = выражение» во фразе SET (установить).