Синтаксис update sql: SQL UPDATE « Язык запросов SQL

UPDATE SQL Server — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном пособии вы узнаете, как использовать оператор UPDATE в SQL Server (Transact-SQL) с синтаксисом и примерами.

Описание

Оператор 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):

UPDATE table1 SET column1 = (SELECT expression1 FROM table2 WHERE conditions) [WHERE conditions];

UPDATE table1

SET column1 = (SELECT expression1

               FROM table2

               WHERE conditions)

[WHERE conditions];

Или
Синтаксис оператора SQL Server UPDATE при обновлении одной таблицы данными из другой таблицы:

UPDATE table1 SET table1.column = table2.expression1 FROM table1 INNER JOIN table2 ON (table1.column1 = table2.column1) [WHERE conditions];

UPDATE table1

SET table1.column = table2.expression1

FROM table1

INNER JOIN table2

ON (table1.column1 = table2.column1)

[WHERE conditions];

Параметры или аргументы

column1, column2 — столбцы, которые вы хотите обновить.
expression1, expression2 — новые значения для назначения column1, column2. Таким образом, column1 присваивается значение expression1, column2 присваивается значение expression2 и т.д.
WHERE conditions — необязательный. Условия, которые должны выполняться для выполнения обновления.

Пример обновления одного столбеца

Рассмотрим очень простой пример запроса SQL Server UPDATE.
Например:

UPDATE employees SET last_name = ‘Tomson’ WHERE employee_id = 10;

UPDATE employees

SET last_name = ‘Tomson’

WHERE employee_id = 10;

Этот пример SQL Server UPDATE обновит last_name в ‘Tomson’ в таблице employees, где employee_id = 10.

Пример обновления нескольких столбцов.

Рассмотрим пример UPDATE SQL Server, где вы можете обновить более одного столбца с помощью одного оператора UPDATE.
Например:

UPDATE employees SET first_name = ‘Jon’, employee_id = 12 WHERE last_name = ‘Tomson’;

UPDATE employees

SET first_name = ‘Jon’,

    employee_id = 12

WHERE last_name = ‘Tomson’;

Если вы хотите обновить несколько столбцов, вы можете сделать это, разделив столбцы запятыми.

Этот пример SQL Server UPDATE обновит first_name в ‘Jon’, а employee_id в 12, где last_name — ‘Tomson’.

Пример обновления таблицы данными из другой таблицы.

Рассмотрим пример UPDATE, который показывает, как обновить таблицу данными из другой таблицы в SQL Server.
Например:

UPDATE employees SET first_name = (SELECT first_name FROM contacts WHERE contacts.last_name = employees.last_name) WHERE employee_id > 95;

UPDATE employees

SET first_name = (SELECT first_name

                  FROM contacts

                  WHERE contacts.last_name = employees.last_name)

WHERE employee_id > 95;

В этом примере будет обновляться только таблица employees для всех записей, где employee_id больше 95. Когда last_name из таблицы contacts совпадает с last_name из таблицы employee, значение first_name из таблицы contacts будет скопировано в поле first_name таблицы employees.

Вы можете переписать этот оператор UPDATE в SQL Server, используя второй синтаксис, чтобы обновить таблицу данными из другой таблицы.
Например:

UPDATE employees SET employees.first_name = contacts.first_name FROM employees INNER JOIN contacts ON (employees.last_name = contacts.last_name) WHERE employee_id > 95;

UPDATE employees

SET employees.first_name = contacts.first_name

FROM employees

INNER JOIN contacts

ON (employees.last_name = contacts.last_name)

WHERE employee_id > 95;

Этот пример UPDATE будет выполнять те же обновления, что и предыдущий.

SQL — Запрос UPDATE | ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Запрос UPDATE используется для изменения существующих записей в таблице.

Вы можете использовать WHERE с запросом UPDATE, чтобы обновить выбранные строки, в противном случае будут затронуты все строки.

Синтаксис:

Базовый синтаксис запроса UPDATE с WHERE выглядит следующим образом:

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

 

Вы можете объединить N число условий с помощью операторов AND или OR.

Пример:

Рассмотрим таблицу клиентов, имеющих следующие записи:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Maxim    |  35 | Moscow    | 21000.00 |
|  2 | AndreyEx |  38 | Krasnodar | 55500.00 |
|  3 | Oleg     |  33 | Rostov    | 34000.00 |
|  4 | Masha    |  35 | Moscow    | 31500.00 |
|  5 | Ruslan   |  34 | Omsk      | 43000.00 |
|  6 | Dima     |  32 | SP        | 45000.00 |
|  7 | Roma     |  34 | SP        | 10000.00 |
+----+----------+-----+-----------+----------+

 

Ниже приведен пример, который будет обновлять ADDRESS для клиента с идентификатором 6:

SQL> UPDATE CUSTOMERS
SET ADDRESS = 'Rostov'
WHERE ID = 6;

 

Теперь таблица CUSTOMERS будет иметь следующую информацию:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Maxim    |  35 | Moscow    | 21000.00 |
|  2 | AndreyEx |  38 | Krasnodar | 55500.00 |
|  3 | Oleg     |  33 | Rostov    | 34000.00 |
|  4 | Masha    |  35 | Moscow    | 31500.00 |
|  5 | Ruslan   |  34 | Omsk      | 43000.00 |
|  6 | Dima     |  32 | Rostov    | 45000.00 |
|  7 | Roma     |  34 | SP        | 10000.00 |
+----+----------+-----+-----------+----------+

 

Если вы хотите изменить все значения ADDRESS и столбцов SALARY в таблице CUSTOMERS, вам не нужно использовать WHERE, и запрос UPDATE будет выглядеть следующим образом:

SQL> UPDATE CUSTOMERS
SET ADDRESS = 'Rostov', SALARY = 25000.00;

 

Теперь таблица CUSTOMERS будет иметь следующие документы:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Maxim    |  35 | Rostov    | 25000.00 |
|  2 | AndreyEx |  38 | Rostov    | 25000.00 |
|  3 | Oleg     |  33 | Rostov    | 25000.00 |
|  4 | Masha    |  35 | Rostov    | 25000.00 |
|  5 | Ruslan   |  34 | Rostov    | 25000.00 |
|  6 | Dima     |  32 | Rostov    | 25000.00 |
|  7 | Roma     |  34 | Rostov    | 25000.00 |
+----+----------+-----+-----------+----------+

Более подробные примеры можно посмотреть в гиде: 11 основных примеров команды UPDATE в MySQL.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Инструкция UPDATE (Microsoft Access SQL)

  • Чтение занимает 2 мин

В этой статье

Область применения: Access 2013, Office 2013Applies to: Access 2013, Office 2013

Создает запрос на обновление, который изменяет значения в полях в указанной таблице на основании заданных условий.Creates an update query that changes values in fields in a specified table based on specified criteria.

СинтаксисSyntax

UPDATE таблица SET новое_значение WHERE критерии;UPDATE table SET newvalue WHERE criteria;

Инструкция UPDATE состоит из трех указанных ниже частей.The UPDATE statement has these parts:

ЧастьPart

ОписаниеDescription

таблицаtable

Имя таблицы, содержащей данные, которые необходимо изменить.The name of the table containing the data you want to modify.

новое_значениеnewvalue

Выражение, указывающее значение, которое необходимо вставить в определенное поле обновляемых записей.An expression that determines the value to be inserted into a particular field in the updated records.

критерииcriteria

Выражение, определяющее, какие записи необходимо обновить.An expression that determines which records will be updated. Будут обновлены только те записи, которые удовлетворяют условиям выражения.Only records that satisfy the expression are updated.

КомментарииRemarks

Инструкция UPDATE особенно полезна, когда необходимо изменить большое количество записей либо когда записи, которые необходимо изменить, находятся в нескольких таблицах.UPDATE is especially useful when you want to change many records or when the records that you want to change are in multiple tables.

Вы можете изменить одновременно несколько полей.You can change several fields at the same time. В следующем примере показано, как увеличить значения Order Amount на 10 процентов, а значения Freight на 3 процента для грузоотправителей в Соединенном Королевстве:The following example increases the Order Amount values by 10 percent and the Freight values by 3 percent for shippers in the United Kingdom:

UPDATE Orders 
SET OrderAmount = OrderAmount * 1.1, 
Freight = Freight * 1.03 
WHERE ShipCountry = 'UK';
  • Инструкция UPDATE не создает результирующее множество.UPDATE does not generate a result set. Кроме того, после обновления записи с помощью запроса на обновление вам не удастся отменить эту операцию.Also, after you update records using an update query, you cannot undo the operation. Если вам необходимо узнать, какие записи были обновлены, сначала изучите результаты выполнения запроса на выборку, использующего те же критерии, а затем запустите запрос на обновление.If you want to know which records were updated, first examine the results of a select query that uses the same criteria, and then run the update query.
  • Всегда храните резервные копии данных.Maintain backup copies of your data at all times. Если вы обновите не те записи, вы сможете восстановить их из резервных копий.If you update the wrong records, you can retrieve them from your backup copies.

ПримерExample

В этом примере показано, как изменить значения в поле ReportsTo на 5 для всех записей сотрудников, у которых поле ReportsTo имеет значение 2.This example changes values in the ReportsTo field to 5 for all employee records that currently have ReportsTo values of 2.

    Sub UpdateX() 
     
        Dim dbs As Database 
        Dim qdf As QueryDef 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
         
        ' Change values in the ReportsTo field to 5 for all  
        ' employee records that currently have ReportsTo  
        ' values of 2. 
        dbs.Execute "UPDATE Employees " _ 
            & "SET ReportsTo = 5 " _ 
            & "WHERE ReportsTo = 2;" 
             
        dbs.Close 
     
    End Sub

Сложный Update с использованием нескольких таблиц в Oracle 11 R2 | Блог разработчика IT

Всем привет!

Хотел бы написать сегодня про «сложный» апдейт данных в Oracle с помощью нескольких таблиц. Все разработчики БД знают про то, как обновлять данные, это одно из самых первых, что все изучают. Я не буду в этой статье лить воду, те, кто мало знаком с апдейтом в принципе, думаю, необходимо прочитать что это такое и с чем это едят, а тем кто уже считает себя опытным — прошу! Итак, самый простой update выглядит так:

UPDATE table1
SET column1='Новосибирск'
WHERE column1='Сахалин'

update table1 set column1=’Новосибирск’ where column1=’Сахалин’

Но что делать, когда нужно обновить данные в одной таблице, исходя из данных в другой таблице? Хм..давайте сделаем это 🙂  Недавно, на работе, увидел как коллега запустил обновление таблички, посмотрев через специальный скрипт (напишу потом отдельно по этому скрипту статью), что он делает, какой у него код и самое главное — сколько скрипт будет выполняться (да, oracle может показывать время окончания из специальных служебных таблиц) я просто офигел — выполнения скрипта должно окончиться, эдак через 5 дней 🙂 Виной всему неоптимизированный алгоритм выполенения апдейта. Итак, приступим.

Допустим, у нас существуют 2 таблички, у которых есть одинаковое поле для объединения (обязательное условие) , например, номер договора. В таблице 1 также есть адрес магазина и клиента, а в таблице 2 тоже какая-нибудь инфа и более корректные адреса магазина и адреса клиентов (можете что-то свое придумать). В итоге нам нужно из 2 таблицы взять эти корректные адреса магазинов и клиентов и подставить в 1 таблицу. Пишем запрос:

UPDATE
(
SELECT
       t.adress_shop,
       t.adress_client,
       s.adress_shop AS adress_shop_new,
       s.adress_client AS adress_client_new
 
FROM table1 t
INNER JOIN table2 s ON s.ur_number=t.ur_number
)
tt
SET tt.adress_shop=tt.adress_shop_new, tt.adress_client=tt.adress_client_new

update ( select t.adress_shop, t.adress_client, s.adress_shop as adress_shop_new, s.adress_client as adress_client_new from table1 t inner join table2 s on s.ur_number=t.ur_number ) tt set tt.adress_shop=tt.adress_shop_new, tt.adress_client=tt.adress_client_new

Я думаю вы тут все поняли, что и как. Немного поясню — выбираем поля, которые нужно обновить из первой таблицы, также тут же выбираем из второй таблицы, на которые нужно обновить. Все это добро цепляем по номеру договору (не забываем про дубликаты). Также тут специально использовал одинаковые название полей, чтобы хоть как-то усложнить, сделал 2 поля для обновления после «set», а то просто возникал как-то вопрос, как обновить одновременно 2 поля.

Здесь я использовал «inner join», но можете любой join  — кому как угодно, в зависимости от посталенной задачи и производительности. Соответсвенно, в join’е можно использовать несколько таблиц. Думаю, все знают как джоиниться к другим таблицам, это описывать я не буду, в любой книге найти можно. Я лишь хотел показать то, что уже не в каждой книге найдешь. Когда начинал работать с Oracle вставали у меня вопросы такого апдейта, мне в свое время помогли, когда был начинающий, теперь хочу помочь вам 🙂 Кстати, есть еще один способ сделать такой же апдейт, но через «merge» — это оператор для «insert», «delete» и «update». Напишу скрипт с небольшими пояснениями, если будет что непонятно — всегда можете задать вопрос:

MERGE INTO table1 t
 
USING (SELECT * FROM table2 s) p
  ON (p.ur_number=t.ur_number)
 
WHEN MATCHED THEN--когда совпали договора, то идет сам update
 
UPDATE SET t.adress_shop=p.adress_shop, t.adress_client=p.adress_client
 
WHEN NOT MATCHED THEN INSERT (t.adress_shop) VALUES ('Ничего не нашел')

MERGE INTO table1 t USING (SELECT * FROM table2 s) p ON (p.ur_number=t.ur_number) WHEN MATCHED THEN—когда совпали договора, то идет сам update update set t.adress_shop=p.adress_shop, t.adress_client=p.adress_client WHEN NOT MATCHED THEN insert (t.adress_shop) values (‘Ничего не нашел’)

Кстати, 2 вариант считается уже более высокого уровня. Он показывает, что вы знакомы со сложным апдейтом, а также умеете работать с оператором «merge».

Плюс второго способа в том, что можно вставить какое-то дефолтное значение, если наше условие сцепки не сработало. Кстати, это все работает и в Oracle 10g, в 9 версии тоже.

Надеюсь, было все понятно и кому-то пригодится это.

Удачи!

c # — синтаксис обновления sql

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

  1. Авторизоваться зарегистрироваться
  2. текущее сообщество

    • Переполнение стека Помогите болтать
    • Переполнение мета-стека

    ваши сообщества

.

sql — синтаксис MySQL для обновления присоединения

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

MySQL — запрос UPDATE на основе запроса SELECT

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

.Сервер

sql — запрос обновления Sql

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *