UPDATE SQL Server
Оператор UPDATE SQL Server (Transact-SQL) используется для обновления существующих записей в таблице в базе данных SQL Server. Существует три синтаксиса для оператора UPDATE в зависимости от того, выполняете ли вы традиционное обновление или обновляете одну таблицу данными из другой таблицы.
Синтаксис
Синтаксис оператора UPDATE при обновлении одной таблицы в SQL Server (Transact-SQL):
UPDATE table
SET column1 = expression1,
column2 = expression2,
.
[WHERE conditions];
Или
Синтаксис оператора UPDATE при обновлении одной таблицы данными из другой таблицы в SQL Server (Transact-SQL):
Оператор SQL UPDATE
Оператор SQL UPDATE используется для изменения значений в записях таблицы.
Оператор SQL UPDATE имеет следующий синтаксис:
UPDATE table_name SET expression [WHERE condition]
Напоминаю, что записи в квадратных скобках [] являются необязательными.
После ключевого слова SET должен идти список столбцов таблицы, которые следует изменить, и новые значения в формате Имя_столбца = значение.
Дополнительное условие, описываемое в операторе SQL WHERE, помогает более гибко совершать манипуляции данными.
Примеры оператора SQL UPDATE. Имеется следующая таблица Planets :
| ID | PlanetName | Radius | SunSeason | OpeningYear | HavingRings | Opener |
| 1 | Mars | 3396 | 687 | 1659 | No | Christiaan Huygens |
| 2 | Saturn | 60268 | 10759.22 | — | Yes | — |
| 3 | Neptune | 24764 | 60190 | 1846 | Yes | John Couch Adams |
| 4 | Mercury | 2439 | 115.88 | 1631 | No | Nicolaus Copernicus |
| 5 | Venus | 6051 | 243 | 1610 | No | Galileo Galilei |
Пример 1. С помощью оператора SQL UPDATE изменить название планеты Neptune на Pluton:
UPDATE Planets SET PlanetName = 'Pluton' WHERE >В этом примере условие оператора SQL WHERE является обязательным, так как без него все поля столбца PlanetName во всей таблице изменились бы на Pluton. В данном случае, нам приходит на помощь столбец ID, ибо он является Первичным ключом, позволяющим однозначно идентифицировать запись.
Выполним запрос оператором SQL SELECT, чтобы посмотреть изменения в записи:
SELECT * FROM Planets WHERE >Результат:
| ID | PlanetName | Radius | SunSeason | OpeningYear | HavingRings | Opener |
| 3 | Pluton | 24764 | 60190 | 1846 | Yes | John Couch Adams |
Пример 2. С помощью оператора SQL UPDATE у первых трех записей таблицы изменить значение наличия колец (HavingRings) на «No» и обнулить поле ID
Код примера для MS SQL Server:
UPDATE TOP(3) Planets SET HavingRings = 'No', >Код примера для MySQL:
UPDATE Planets SET HavingRings = 'No', 3
SELECT TOP(3) * FROM Planets
| ID | PlanetName | Radius | SunSeason | OpeningYear | HavingRings | Opener |
| NULL | Mars | 3396 | 687 | 1659 | No | Christiaan Huygens |
| NULL | Saturn | 60268 | 10759.22 | — | No | — |
| NULL | Neptune | 24764 | 60190 | 1846 | No | John Couch Adams |
SQL оператор UPDATE
В этом учебном материале вы узнаете, как использовать SQL оператор UPDATE с синтаксисом и примерами.
Описание
SQL оператор UPDATE используется для обновления существующих записей в таблицах.
Синтаксис
Синтаксис для оператора UPDATE при обновлении таблицы в SQL.
UPDATE table
SET column1 = expression1,
column2 = expression2,
.
[WHERE conditions];
Или
Синтаксис SQL оператора UPDATE при обновлении таблицы данными из другой таблицы:
UPDATE table1
SET column1 = (SELECT expression1
FROM table2
WHERE conditions)
[WHERE conditions];
Или
Синтаксис SQL оператора UPDATE при обновлении нескольких таблиц (не разрешен в Oracle):
UPDATE table1, table2, .
SET column1 = expression1,
column2 = expression2,
.
WHERE table1.column = table2.column
[AND conditions];
Параметры или аргументы
column1 , column2 Столбцы, которые вы хотите обновить expression1 , expression2 Это новые значения, назначаемые column1 , column2 . Поэтому column1 будет присвоено значение expression1 , а column2 будет присвоено значение expression2 и т.д. WHERE conditions Необязательный. Условия, которые должны быть выполнены, чтобы выполнить обновление. Если никаких условий не предусмотрено, то все записи в таблице будут обновлены
Пример — обновить один столбец
Давайте рассмотрим пример, показывающий, как использовать SQL оператор UPDATE для обновления одного столбца в таблице.
В этом примере UPDATE у нас есть таблица customers со следующими данными:
| customer_id | first_name | last_name | favorite_website |
|---|---|---|---|
| 4000 | Justin | Bieber | google.com |
| 5000 | Selena | Gomez | bing.com |
| 6000 | Mila | Kunis | yahoo.com |
| 7000 | Tom | Cruise | oracle.com |
| 8000 | Johnny | Depp | NULL |
| 9000 | Russell | Crowe | google.com |
Теперь давайте продемонстрируем, как работает оператор UPDATE, обновив один столбец в таблице customers . Введите следующую команду UPDATE.
Оператор UPDATE стр. 1
Оператор UPDATE изменяет имеющиеся данные в таблице. Команда имеет следующий синтаксис:
С помощью одного оператора могут быть заданы значения для любого количества столбцов. Однако в одном и том же операторе UPDATE можно вносить изменения в каждый столбец указанной таблицы только один раз. При отсутствии предложения WHERE будут обновлены все строки таблицы.
Если столбец допускает NULL -значение, то его можно указать в явном виде. Кроме того, можно заменить имеющееся значение на значение по умолчанию (DEFAULT) для данного столбца.
Ссылка на «выражение для вычисления значения столбца» может относиться к текущим значениям в изменяемой таблице. Например, мы можем уменьшить все цены портативных компьютеров на 10 процентов с помощью следующего оператора:
Разрешается также значения одних столбцов присваивать другим столбцам. Пусть, например, требуется заменить жесткие диски менее 10 Гбайт в портативных компьютерах. При этом емкость новых дисков должна составлять половину объема RAM, имеющейся в данных устройствах. Эту задачу можно решить следующим образом:
Естественно, типы данных столбцов hd и ram должны быть совместимы. Для приведения типов может использоваться выражение CAST (пункт 5.9).
Если требуется изменять данные в зависимости от содержимого некоторого столбца, можно воспользоваться выражением CASE (пункт 5.9) Если, скажем, нужно поставить жесткие диски объемом 20 Гбайт на портативные компьютеры с памятью менее 128 Мбайт и 40 гигабайтные — на остальные портативные компьютеры, то можно написать такой запрос:
Для вычисления значений столбцов допускается также использование подзапросов. Например, требуется укомплектовать все портативные компьютеры самыми быстрыми процессорами из имеющихся в наличии. Тогда можно написать:
Необходимо сказать несколько слов об автоинкрементируемых столбцах. Если столбец code в таблице Laptop определен как IDENTITY(1,1), то следующий оператор
не будет выполнен, так как автоикрементируемое поле не допускает обновления, и мы получим соответствующее сообщение об ошибке. Чтобы выполнить все же эту задачу, можно поступить следующим образом. Сначала вставить нужную строку, используя SET IDENTITY_INSERT , после чего удалить старую строку:
Разумеется, другой строки со значением code = 5 в таблице быть не должно.