Update (SQL)

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Abc41 (обсуждение | вклад) в 05:43, 4 октября 2011 (Общий вид команды). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

UPDATE — оператор языка SQL, позволяющий обновить значения в заданных столбцах таблицы.

Общий вид команды

update [top(x)] <объект> 
set <присваивание1 [, присваивание2, ...]> 
[where <условие>]
[option <хинт1 [, хинт2, ...]>]
  • top(x) — команда выполнится только х раз
  • <объект> — объект, над которым выполняется действие (таблица или представление)
  • <присваивание> — присваивание, которое будет выполняться при каждом выполнении условия <условие>, или для каждой записи, если отсутствует раздел where
  • <условие> — условие выполнения команды
  • <хинт> — инструкция программе как исполнить запрос
  • set- после ключевого слова должен идти список полей таблицы, которые будут обновлены и непосредственно сами новые значения в виде
имя поля="значение"

Примеры

update top(10) tbl_books set price = 0 where quantity = 0
  option (force group, hash join, force order)

update per­sons set street = 'Nis­sesti­en 67', ci­ty = 'Sand­nes' where lastname = 'Tjes­sem' and firs­tna­me = 'Ja­kob'

UPDATE emp a SET deptno =
(SELECT deptno FROM dept WHERE loc = BOSTON), (sal, comm) = (SELECT 1.1*AVG(sal), 1.5*AVG(comm) 
  FROM emp b WHERE a.deptno = b.deptno) WHERE deptno IN (SELECT deptno FROM dept WHERE loc = DALLAS OR loc = DETROIT);

"UPDATE emp a ..." выполняет следующие операции:

  • Модифицирует только тех служащих, кто работают в Dallas или Detroit
  • Устанавливает значение колонки deptno для служащих из Бостона
  • Устанавливает жалованье каждого служащего в 1.1 раз больше среднего жалованья всего отдела
  • Устанавливает комиссионные каждого служащего в 1.5 раза больше средних комиссионных всего отдела

См. также