Редактирование записей –это изменение значений полей в группе записей.
Оно выполняется оператором UPDATE
UPDATE <имя таблицы>
SET <имя столбца 1> = <выражение 1>
(<имя столбца 2> = < выражение 2>,…)
[WHERE <условие отбора>];
Во всех записях, удовлетворяющих условию отбора, изменяются значения полей. Имя столбца указывает модифицируемое поле всей совокупности записей, а выражение определяет значения, которые будут присвоены этому полю.
· Критерий отбора, указанный в операнде WHERE, не отличается от критерия, заданного в операторе SELECT. Если он не задан, то изменяются значения всех указанных полей. Критерий отбора может варьироваться от простейшего, в котором сравниваются два значения, до сложного, когда учитывается много факторов.
· Критерий отбора представляет собой логическое выражение, в котором можно использовать следующие операции:
Операции сравнения
=
Равно
>
Больше
<
Меньше
>=
Больше или равно
<=
Меньше или равно
<> или !=
Не равно
!>
Не больше
!<
Не меньше
LIKE
Сравнение по шаблону
IS NULL
Проверка нулевого значения
IN
Проверка вхождения
BETWEEN
Проверка вхождения в диапазон
Логические операции
AND
Логическое И
OR
Логическое ИЛИ
NOT
Логическое НЕ
Круглые скобки
В языке SQL приоритет операций сравнения выше приоритета логических операций.
Оператор AND означает, что общий предикат будет истинным только тогда, когда условия, связанные по “AND”, будут истинны.
Оператор OR означает, что общий предикат будет истинным, когда хотя бы одно из условий, связанных по “OR”, будет истинным.
Оператор NOT означает, что общий предикат будет истинным, когда условие, перед которым стоит этот оператор, будет ложным.
В одном предикате логические операторы выполняются в следующем порядке: сначала выполняется оператор NOT, затем - AND и только после этого - оператор OR. Для изменения порядка выполнения операторов разрешается использовать скобки.
Пример. Увеличим Воронину оклад на 10%:
UPDATE Сотрудники SET Оклад = Оклад * 1.1
WHERE ТабНомер = 7738;
Пример. Увеличить оклад аналитиков и экономистов отдела 20 на 15%:
UPDATE Сотрудники SET Оклад = Оклад*1,15
WHERE (Должность = ‘Аналитик’ OR Должность = ‘Экономист’) AND Отдел = 20;
Если отсутствует предложение WHERE, обновляются все строки. Предложение WHERE может содержать запрос, в этом случае будут обновляться строки, удовлетворяющие этому запросу.
Пример. Увеличить оклад сотрудников, содержащихся в таблице ‘’Список’’:
UPDATE Сотрудники SET Оклад = Оклад*1,05
WHERE Фамилия IN (SELECT Фамилия FROM Список)
Предложение SET тоже может содержать запрос.
Пример. Установить оклад экономистам как у сотрудника с номером 7456:
UPDATE Сотрудники SET Оклад =
( SELECT Оклад FROM Сотрудники WHERE Табномер = 7456)