В операторі UPDATE, так як і в операторі DELETE, підлеглі запити відіграють важливу роль, бо вони дають можливість відбирати рядки для оновлення, враховуючи інформацію із інших таблиць:
14). Збільшити на 5000 грн. кредит для тих клієнтів, які зробили якесь замовлення вартістю понад 25000 грн.
14). UPDATE Clienty
SET Credit = Credit + 5000
WHERE Kod_Clienta IN
(SELECT DISTINCT Client
FROM Zamovlennia
WHERE Vartist > 25000)
15). Закріпити за Івановим (код працівника = 105) тих клієнтів, які обслуговувалися працівниками, чий об’єм продаж менший, ніж 80% від їх особистого плану.
15). UPDATE Clienty
SET Prodavec = 105
WHERE Prodavec IN
(SELECT Kod_Pracivn
FROM Pracivnyky
WHERE Prodano < 0.8 * Plan)
16). Всіх працівників, які обслуговують понад трьох клієнтів, підпорядкувати безпосередньо Петрову (код працівника = 106).
16). UPDATE Pracivnyky
SET Kerivnyk = 106
WHERE 3 <
(SELECT COUNT (*)
FROM Clienty
WHERE Prodavec = Kod_Pracivn)
- згідно стандарту SQL1, підлеглий запит потрібно записувати після знаку операції відношення.
Для оператора UPDATE те саме обмеження, яке накладає стандарт SQL1, що і для оператора DELETE: ім’я цільової таблиці не може бути присутнє в секції FROM підлеглого запиту будь-якого рівня вкладеності. Це запобігає звертанню із підлеглих запитів до цільової таблиці (частина рядків якої вже може бути модифікована). Таким чином, всі звертання в підлеглих запитах до цільової таблиці – це зовнішні звертання до того рядка цільової таблиці, який перевіряється в даний момент секцію WHERE оператора UPDATE.
В стандарті SQL2 це обмеження також знімається і визначається, що звертання до цільової таблиці в підлеглому запиті – це звертання до цільової таблиці в її початковому стані, коли ще не були зроблені жодні оновлення.