7.4.3. Изменение данных – команда UPDATE

 

Для внесения изменений в данные таблиц служит команда UPDATE, позволяющая выполнять как простое обновление данных в столбце, так и сложные операции модификации данных во множестве строк таблицы. Рассмотрим упрощенный синтаксис этой команды:

 

UPDATE <имя_таблицы>

SET { <имя_колонки> = { <выражение> | DEFAULT | NULL }}[,...,n]

{ [ FROM { <имя_исходной_таблицы> } [,...,n] ]

[ WHERE <условие_отбора> ] }

 

Рассмотрим назначение каждого из аргументов.

<имя_таблицы> - имя таблицы, в которой необходимо произвести изменение данных.

SET - с этого ключевого слова начинается блок, в котором определяется список изменяемых столбцов. За один вызов UPDATE можно изменить данные в нескольких столбцах множества строк одной таблицы.

<имя_столбца> = {<выражение> | DEFAULT | NULL} - для каждого изменяемого столбца нужно задать значение, которое он примет после выполнения измене­ния. С помощью ключевого слова DEFAULT можно присвоить столбцу значе­ние, определенное для него по умолчанию. Можно также установить для столб­ца значение NULL. Изменению подвергнутся все строки, удовлетворяющие критериям ограничения области действия запроса UPDATE, которые задаются с помощью раздела WHERE. При составлении выражения можно ссылаться на любые столбцы таблицы, включая изменяемые. При этом следует учитывать, что изменения в данные вносятся только после выполнения команды. Таким образом, при ссылке на изменяемые столбцы будут использоваться старые значения.

FROM {<имя_исходной_таблицы>} - если при изменении данных в таблице необходимо учесть состояние данных в других таблицах, то эти источники данных необходимо указать в разделе FROM. Собственно источник данных описывается с помощью конструкции <имя_исходной_таблицы>.

WHERE <условие_отбора> - назначение раздела WHERE, используемого в запросе UPDATE, полностью соответствует назначению, которое раздел имеет в запросе SELECT, т.е. с помощью раздела WHERE можно сузить диапазон строк, в которых будет выполняться изменение данных. Необходимо указать логическое условие, на основе которого будет приниматься решение об изменении данных конкретной строки. Если в контексте значений строки указанное логическое условие выполняется (т.е. возвращает значение TRUE), то данные этой строки будут изменены. В противном случае изменение не выполняется. Предполагается, что логическое условие включает имена стол­бцов изменяемой таблицы, однако это не обязательно.

Приведем простейший пример изменения данных. Добавим в таблицу «Учебный_план» по 2 часа в столбец  Количество_часов  для дисциплин 1-го семестра с формой отчетности - экзамен:

Выведем сначала исходное состояние данных:

 

SELECT *

FROMУчебный_план

WHERE (Отчетность= ‘э’) AND (Семестр = 1)

 

Затем выполним изменения и снова посмотрим данные.

 

UPDATEУчебный_план

SETКоличество_часов = Количество_часов + 2

WHERE (Отчетность= ‘э’) AND (Семестр = 1)

SELECT *

FROMУчебный_план

WHERE (Отчетность= ‘э’) AND (Семестр = 1)

 

 

К оглавлению

Назад к разделу "7.4.2. Добавление данных – команда INSERT"

Вперед к разделу "7.4.4. Удаление данных – команда DELETE"