как обновить поле в таблице sql
Инструкция UPDATE в T-SQL — обновление данных в Microsoft SQL Server
Всем привет! Сегодня в материале я расскажу о том, как происходит обновление данных в Microsoft SQL Server с использованием языка T-SQL, будет рассмотрена инструкция UPDATE. Иными словами, Вы узнаете, как изменить уже существующие данные в таблицах на SQL Server.
Ранее я уже рассказывал о том, как создаются таблицы, как они изменяются, как происходит добавление данных в эти таблицы, поэтому пришло время рассказать о том, как происходит изменение (обновление) существующих данных.
Заметка!
Упомянутые выше материалы:
Заметка! Для комплексного изучения языка T-SQL рекомендую посмотреть мои видеокурсы по T-SQL, в которых используется последовательная методика обучения и рассматриваются все конструкции языка SQL и T-SQL.
Как обновить данные в таблицах Microsoft SQL Server?
Изменить данные в таблицах Microsoft SQL Server можно с помощью:
Однако в реальности обновление данных происходит только с использование инструкции UPDATE, так как использовать конструктор SSMS для каких-то массовых изменений невозможно, даже процесс обновления одного значения крайне неудобен. Поэтому я не использую конструктор, мне кажется, его мало кто использует.
Поэтому сегодня мы подробно поговорим об инструкции UPDATE.
Описание инструкции UPDATE в T-SQL
UPDATE – инструкция SQL, с помощью которой происходит изменение существующих данных в таблицах.
Важные моменты:
Упрощенный синтаксис UPDATE
Синтаксис UPDATE достаточно большой, и начинающим понять его сложно, поэтому, для того чтобы было проще понять логику формирования инструкции UPDATE, я приведу упрощенный синтаксис.
UPDATE Целевая таблица SET Имя столбца = Значение
FROM Таблица источник
Примеры использования инструкции UPDATE
Сейчас давайте рассмотрим несколько примеров SQL инструкций, которые будут обновлять данные в таблице инструкцией UPDATE.
Исходные данные для примеров
Для начала давайте определимся с исходными данными, чтобы Вы понимали, какие именно данные у нас есть, и что мы будем обновлять.
Также сразу скажу, что в качестве SQL сервера у меня выступает версия Microsoft SQL Server 2017 Express.
Следующая инструкция создает таблицы, которые мы будет использовать в примерах, и добавляет в них данные.
Пример обновления одного столбца всех строк таблицы
В этом примере мы обновим значения одного столбца, при этом никаких условий мы делать не будем, т.е. обновим все строки в таблице.
Для наглядности и удобства отслеживания внесенных изменений я буду во всех примерах перед и после UPDATE посылать простой запрос SELECT, чтобы видеть, какие данные были и какие стали.
Как видите, в итоге получился очень простой запрос на обновление, мы обновили значения в столбце ProductDescription у всех строк на «Товар».
Пример обновления двух столбцов и только некоторых строк таблицы
Теперь давайте обновим два столбца, и конкретизируем строки для обновления, т.е. мы обновим не все строки в таблице, как в предыдущем примере, а только те, которые подходят под указанное нами условие (для примера Category с идентификатором 1).
В этом случае изменились значения столбцов ProductDescription и Price в строках, в которых Category = 1.
Пример использования выражений в инструкции UPDATE
Как я уже отмечал, в качестве нового значения может выступать не только какое-то конкретное значение, но и целое выражение, в котором могут использоваться как другие столбцы таблицы, так и столбец, который в данный момент обновляется.
В следующем примере в столбец ProductDescription мы добавим дополнительный текст (просто цифру 3), а значение Price мы увеличим в полтора раза. Все это мы сделаем для строки с Category = 2.
Пример обновления данных таблицы на основе данных другой таблицы
Достаточно часто требуется обновить данные одной таблицы на основе данных другой, например, просто скопировать данные. Это можно сделать за счет объединения нужных таблиц в инструкции UPDATE. При этом существует несколько способов объединения, я покажу два.
Для примера здесь мы скопируем название категорий из таблицы Categories, и вставим их в столбец ProductDescription таблицы Goods, объединять будем по идентификатору категории.
Пример обновления данных с использованием подзапроса
В этом примере я покажу, как можно использовать подзапрос в инструкции UPDATE. Для примера мы подсчитаем количество товаров в каждой категории и присвоим полученное значение столбцу ProductDescription.
Для того чтобы узнать количество товаров, мы будем использовать встроенную функцию COUNT, а для преобразования числа в строку — функцию CAST. Фильтровать строки в подзапросе мы будем по идентификатору категории, значение для сравнения будем получать из основного запроса.
Как видите, все отработало так, как мы задумали.
Видео-инструкция по обновлению данных в Microsoft SQL Server
У меня на этом все, надеюсь, материал был Вам полезен, пока!
Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite
Базы данных
SQL оператор UPDATE
В этом учебном материале вы узнаете, как использовать SQL оператор UPDATE с синтаксисом и примерами.
Описание
SQL оператор UPDATE используется для обновления существующих записей в таблицах.
Синтаксис
Синтаксис для оператора UPDATE при обновлении таблицы в SQL.
Или
Синтаксис SQL оператора UPDATE при обновлении таблицы данными из другой таблицы:
Или
Синтаксис SQL оператора UPDATE при обновлении нескольких таблиц (не разрешен в Oracle):
Параметры или аргументы
Давайте рассмотрим пример, показывающий, как использовать 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 |
Будет обновлена 1 запись. Выберите данные из таблицы 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 | Joseph | Depp | NULL |
9000 | Russell | Crowe | google.com |
supplier_id | supplier_name | city | state |
---|---|---|---|
100 | Yandex | Moscow | Russian |
200 | Lansing | Michigan | |
300 | Oracle | Redwood City | California |
400 | Bing | Redmond | Washington |
500 | Yahoo | Sunnyvale | Washington |
600 | DuckDuckGo | Paoli | Pennsylvania |
700 | Qwant | Paris | France |
800 | Menlo Park | California | |
900 | Electronic Arts | San Francisco | California |
Теперь давайте продемонстрируем, как использовать оператор UPDATE для обновления более одного значения столбца одновременно. Введите следующую команду UPDATE.
Оператор UPDATE стр. 1
Оператор UPDATE изменяет имеющиеся данные в таблице. Команда имеет следующий синтаксис:
С помощью одного оператора могут быть заданы значения для любого количества столбцов. Однако в одном и том же операторе UPDATE можно вносить изменения в каждый столбец указанной таблицы только один раз. При отсутствии предложения WHERE будут обновлены все строки таблицы.
Ссылка на «выражение для вычисления значения столбца» может относиться к текущим значениям в изменяемой таблице. Например, мы можем уменьшить все цены портативных компьютеров на 10 процентов с помощью следующего оператора:
Разрешается также значения одних столбцов присваивать другим столбцам. Пусть, например, требуется заменить жесткие диски менее 10 Гбайт в портативных компьютерах. При этом емкость новых дисков должна составлять половину объема RAM, имеющейся в данных устройствах. Эту задачу можно решить следующим образом:
Естественно, типы данных столбцов hd и ram должны быть совместимы. Для приведения типов может использоваться выражение CAST (пункт 5.9).
Если требуется изменять данные в зависимости от содержимого некоторого столбца, можно воспользоваться выражением CASE (пункт 5.9) Если, скажем, нужно поставить жесткие диски объемом 20 Гбайт на портативные компьютеры с памятью менее 128 Мбайт и 40 гигабайтные — на остальные портативные компьютеры, то можно написать такой запрос:
Для вычисления значений столбцов допускается также использование подзапросов. Например, требуется укомплектовать все портативные компьютеры самыми быстрыми процессорами из имеющихся в наличии. Тогда можно написать:
Необходимо сказать несколько слов об автоинкрементируемых столбцах. Если столбец code в таблице Laptop определен как IDENTITY(1,1), то следующий оператор
Разумеется, другой строки со значением code = 5 в таблице быть не должно.
SQL UPDATE
Команда UPDATE
Команда UPDATE — производит изменения в уже существующей записи или во множестве записей в таблице SQL. Изменяет существующие значения в таблице или в основной таблице представления.
Команда UPDATE Синтаксис команды
Синтаксис команды UPDATE
Команда UPDATE. Основные ключевые слова и параметры команды UPDATE
WHERE — определяет диапазон изменяемых строк теми, для которых определенное условие является TRUE; если опускается эта фраза, модифицируются все строки в таблице или представлении.
При выдаче утверждения UPDATE включается любой UPDATE-триггер, определенный на таблице.
Подзапросы. Если предложение SET содержит подзапрос, он возвращает точно одну строку для каждой модифицируемой строки. Каждое значение в результате подзапроса назначается соответствующим столбцам списка в круглых скобках. Если подзапрос не возвращает никакие строки, столбцу назначается NULL. Подзапросы могут выбирать данные из модифицируемой таблицы. Предложение SET может совмещать выражения и подзапросы.
Команда UPDATE Пример 1
Изменение для всех покупателей рейтинга на значение, равное 200:
UPDATE Customers SET rating = 200;
Команда UPDATE Пример 2
Замена значения столбца во всех строках таблицы, как правило, используется редко. Поэтому в команде UPDATE, как и в команде DELETE, можно использовать предикат. Для выполнения указанной замены значений столбца rating, для всех покупателей, которые обслуживаются продавцом Giovanni (snum = 1003), следует ввести:
UPDATE Customers SET rating = 200 WHERE snum = 1001;
Команда SQL UPDATE Пример 3
В предложении SET можно указать любое количество значений для столбцов, разделенных запятыми:
UPDATE emp SET job = ‘MANAGER’, sal = sal + 1000, deptno = 20 WHERE ename = ‘JONES’;
Команда UPDATE Пример 4
В предложении SET можно указать значение NULL без использования какого-либо специального синтаксиса (например, такого как IS NULL). Таким образом, если нужно установить все рейтинги покупателей из Лондона (city = ‘London’) равными NULL-значению, необходимо ввести:
UPDATE Customers SET rating = NULL WHERE city = ‘London’;
Команда UPDATE Пример 5
Поясняет использование следующих синтаксических конструкций команды UPDATE:
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 выполняет следующие операции:
Вы должны войти, чтобы оставить комментарий.
IT Памятка
Чтобы не забыть и впоследствии освежить память
SQL запрос на изменение данных в таблице БД
Изменение значений полей в таблице
Чтобы изменить значение в поле в таблице БД необходимо выполнить запрос UPDATE.
Общий синтаксис запроса UPDATE
UPDATE заменит значения текущих полей таблицы на новые значения.
SET устанавливает какие поля изменять и новые значения, которые нужно присвоить этим полям.
WHERE (если необходимо) — условие на изменение определенных записей. Если WHERE не указан, изменены будут все записи.
При указании параметра LOW_PRIORITY, выполнение UPDATE задержится пока другие клиенты читают таблицу.
Пример запроса на изменение всех записей поля «apple» таблицы «fruit» на определенное значение
Пример запроса с WHERE который изменяет определенную запись:
При изменении значения поля можно использовать его текущее значение.
Пример запроса увеличивающего значение поля price в 2 раза:
SET в UPDATE вычисляет выражения слева направо.
Пример запроса который удваивает цену (поле price), а потом уменьшает его на 10:
Запрос UPDATE возвратит количество полей, которые были изменены в этом запросе.
Использование LIMIT позволит изменять заданное количество записей.
- чем вредны семечки для зубов
- Мой сон спасибо краснознаменная дивизия имени моей бабушки