Оператор UPDATE в SQL: разбираем на примерах
Перевод статьи «SQL Update Statement – Update Query in SQL».
Созданная вами таблица в базе данных редко должна оставаться неизменной. Скорее всего записи в ней будут изменяться.
Для осуществления изменений в SQL есть полезный оператор — UPDATE.
Примечание. Если синтаксис, представленный в этой статье, не будет работать, загляните в документацию той реализации SQL, которой вы пользуетесь. В основном все это должно работать в разных реализациях, но могут быть какие-то отличия.
Синтаксис SQL UPDATE
Чтобы использовать метод UPDATE, сперва нужно определить, какую таблицу вы хотите обновить. Для этого мы пишем UPDATE имя_таблицы
. После этого мы указываем, какие изменения мы собственно хотим внести — с помощью оператора SET. Наконец, при помощи оборота WHERE мы выбираем, какие именно записи нужно изменить.
Примечание редакции Techrocks: также рекомендуем почитать статьи «Порядок выполнения SQL-операций» и «SQL-операторы: руководство с примерами запросов».
На использовании WHERE стоит сделать ударение. Без этого оборота вы внесете одинаковые изменения во всю таблицу.
UPDATE имя_таблицы SET изменения, которые нужно внести WHERE оборот для выбора, какие записи нужно изменить;
Пример SQL UPDATE
У нас есть таблица users
ID(PK) | NAME | AGE | STATE | |
1 | Paul | 24 | Michigan | [email protected] |
2 | Molly | NULL | New Jersey | NULL |
3 | Robert | 19 | New York | NULL |
В этой таблице есть несколько неполных записей. Когда пользователи предоставляют нам недостающие сведения, мы добавляем их в таблицу при помощи оператора UPDATE.
Например, у Роберта отсутствует адрес электронной почты. Обновление затронет все строки, выбранные при помощи WHERE, так что следует проявлять осторожность. Скажем, мы могли бы выбрать нужную запись для обновления, основываясь на столбце name
, но имена людей не уникальны, и в нашей таблице может оказаться несколько Робертов.
Наилучший способ выбрать строку для обновления в таблице — использовать столбец с первичными ключами, значения в котором всегда уникальны. В нашем случае это столбец id
.
Итак, давайте обновим email-адрес при помощи следующего запроса:
UPDATE users SET email="[email protected]" WHERE id=3;
Теперь таблица будет выглядеть так:
ID(PK) | NAME | AGE | STATE | |
1 | Paul | 24 | Michigan | paul@example. com |
2 | Molly | NULL | New Jersey | NULL |
3 | Robert | 19 | New York | [email protected] |
Одновременное обновление нескольких столбцов
В нашей таблице в информации о Молли отсутствуют значения в двух разных столбцах. Для добавления нужных сведений мы можем воспользоваться одним оператором UPDATE, перечислив нужные дополнения через запятую:
UPDATE users SET age=22, email="[email protected]" WHERE id=2;
Теперь таблица будет выглядеть так:
ID(PK) | NAME | AGE | STATE | |
1 | Paul | 24 | Michigan | [email protected] |
2 | Molly | 22 | New Jersey | molly@example. com |
3 | Robert | 19 | New York | [email protected] |
Будьте внимательны при выборе записей для изменений
Это вопрос безопасности. В нашей таблице-примере всего три строки, но в реальной жизни у вас может быть база данных сайта или приложения с сотнями, тысячами и даже миллионами пользователей. И, поверьте, меньше всего вам надо послужить причиной проблем для стольких людей.Поэтому, прежде чем запускать запрос UPDATE, отошлите запрос SELECT с тем же оборотом WHERE. Вы должны получить в выдаче те записи, которые хотите обновить. Если вдруг получите не то, что ожидалось, — отредактируйте WHERE.
Например, прежде чем отсылать запрос на обновление записи по пользователю Молли, мы можем послать запрос SELECT для проверки нашего оборота WHERE id=2
:
SELECT * FROM users WHERE id=2;
Результат:
ID(PK) | NAME | AGE | STATE | |
2 | Molly | NULL | New Jersey | NULL |
Этот запрос возвращает нужную запись, так что можно смело посылать запрос UPDATE для добавления данных в таблицу.
Заключение
Если у вас есть таблица с записями, рано или поздно вам, скорее всего, придется какую-нибудь запись обновить. В этой статье мы разобрали, как это делается при помощи SQL-оператора UPDATE.
Оператор SQL: UPDATE. — it-black.ru
Оператор SQL: UPDATE. — it-black.ru Перейти к содержимомуОператор UPDATE изменяет имеющиеся данные в таблице. Команда имеет следующий синтаксис:
UPDATE SET { = { | NULL | DEFAULT},...} [ {WHERE }];
С помощью одного оператора могут быть заданы значения для любого количества столбцов. Однако в одном и том же операторе UPDATE можно вносить изменения в каждый столбец указанной таблицы только один раз. При отсутствии предложения WHERE будут обновлены все строки таблицы.
Если столбец допускает NULL-значение, то его можно указать в явном виде. Кроме того, можно заменить имеющееся значение на значение по умолчанию (DEFAULT) для данного столбца.
Примеры оператора SQL UPDATE
Имеется следующая таблица Planets:
Пример 1. С помощью оператора SQL UPDATE изменим название планеты Neptune на Pluton:
UPDATE Planets SET PlanetName = 'Pluton' WHERE ID = 3;
В этом примере условие оператора SQL WHERE является обязательным, так как без него все поля столбца PlanetName во всей таблице изменились бы на Pluton. В данном случае, нам приходит на помощь столбец ID, т.к. он является Первичным ключом, позволяющим однозначно идентифицировать запись.
Пример 2. Увеличим зарплату всех учителей в 2 раза, а премию — в 10 раз.
UPDATE teachers SET zarplata = zarplata * 2, premia = premia * 10;
В данном примере оператор WHERE не используется и именно поэтому в таблице teachers обновятся столбцы «zarplata» и «premia» полностью для всех сотрудников.
Подробное видео:
- Виктор Черемных
- 26 апреля, 2018
- No Comments
Группа в VK
Обнаружили опечатку?
Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!
Свежие статьи
Облако меток
Instagram Vk Youtube Telegram OdnoklassnikiПолезно знать
Рубрики
Авторы
Начало работы с синтаксисом SQL UPDATE
Эта статья поможет вам понять синтаксис SQL UPDATE, используемый в SQL Server. Microsoft SQL Server — это система баз данных, которая используется для хранения различных типов данных, которые логически организованы в виде таблиц, столбцов и строк. Поскольку бизнесу нужны изменения или появляются новые требования, нам нужно изменить эти данные, хранящиеся в таблице. Мы используем синтаксис SQL UPDATE для изменения или обновления существующих данных в таблице или представлении в SQL Server. Мы можем использовать этот оператор для изменения одной единицы поля данных, а также нескольких наборов полей данных в соответствии с нашими требованиями.
Синтаксис инструкции SQL UPDATE показан ниже.
UPDATE TableName SET ColumnName1 = значение, ColumnName2 = значение [FROM = выражения] [WHERE Condition] |
Мы всегда должны быть осторожны при выполнении операторов SQL UPDATE. Если вам нужно обновить конкретное поле данных с помощью условных выражений, убедитесь, что вы не пропустили предложение WHERE из оператора UPDATE, иначе, если вы запустите оператор UPDATE без предложения WHERE, все поля данных из указанных столбцов будут обновлены.
Оператор UPDATE удерживает монопольную блокировку изменяемых строк, и эта блокировка снимается после завершения транзакции. Поведение на уровне блокировки может меняться в зависимости от уровней изоляции. Чтобы избежать блокировок более высокого уровня, лучше всего выполнять операторы UPDATE пакетами и обеспечивать поддержку любого оператора JOIN или фильтрации на основе условий соответствующими индексами.
Это также может отрицательно сказаться на производительности, если вы не будете тщательно планировать более крупные обновления. Эта операция регистрируется, поэтому выполняйте ее в нерабочее время партиями, чтобы предотвратить негативные последствия.
Одна вещь, которую вы должны учитывать при использовании псевдонимов в операторе UPDATE, заключается в том, что если вы используете псевдоним для табличных выражений, обязательно используйте его везде в операторе SQL UPDATE, потому что все ссылки на табличное выражение должны совпадать в операторе UPDATE.
Синтаксис SQL UPDATE использует
В этом разделе объясняются различные варианты использования операторов SQL UPDATE. Вы узнаете, как использовать SQL UPDATE заявления:
- Чтобы изменить одно поле
- Чтобы изменить несколько полей
- Чтобы изменить все значения столбца
- Чтобы изменить текущее значение даты и времени с помощью функции даты и времени GETDATE
- Чтобы изменить поле данных, отфильтрованное по определенному условию
- Чтобы изменить данные из другой таблицы
Давайте начнем с первого варианта использования, в котором мы изменим все данные, хранящиеся в столбце, одном поле данных и нескольких полях данных.
Используйте инструкцию SQL UPDATE для изменения одного или нескольких полей данных
Во-первых, позвольте мне показать вам нашу исходную таблицу, в которой я буду выполнять все модификации. Если у вас нет стола, вы Вы можете создать его и вставить некоторые значения, чтобы изучить и попрактиковаться в различных вариантах использования синтаксиса SQL UPDATE.
Таблица Employee создается в базе данных TESTDB вместе с ее данными, которые показаны на изображении ниже.
Если вы хотите изменить любой столбец, вам просто нужно использовать синтаксис SQL UPDATE со всеми необходимыми параметрами, чтобы получить это сделано. Предположим, вы хотите обновить характер занятости всех сотрудников до 1, вам просто нужно выполните простую инструкцию UPDATE для этого столбца, чтобы изменить его. Используйте приведенный ниже оператор T-SQL, как показано ниже. запрос, если у вас есть подобное требование.
ОБНОВЛЕНИЕ Сотрудник SET [характер занятости] = 1 |
Приведенный ниже вывод показывает, что все 17 строк были обновлены путем выполнения приведенного выше оператора.
Теперь давайте проверим характер занятости каждого сотрудника. Мы видим разницу; работа природа была обновлена для всех сотрудников на изображении ниже.
Теперь предположим, что вам нужно изменить одно поле данных любого из этих сотрудников, как вам нужно изменить город. или обозначение любого сотрудника, мы можем сделать это, используя синтаксис SQL UPDATE.
Предположим, Мэри была повышена до старшего аналитика. Нижеследующий запрос поможет вам обновить последнее назначение Мэри. У меня есть выполнил приведенные ниже операторы, чтобы обновить обозначение Мэри.
ОБНОВЛЕНИЕ Сотрудник SET [обозначение] = «Старший аналитик» ГДЕ ID = 3 |
Всегда используйте уникальные идентификаторы, чтобы применять условия для фильтрации наших желаемых целей, для которых нам нужно выполнять обновления. Если вы будет использовать ее имя в предложении WHERE, тогда этот запрос обновит обозначение всех сотрудников, чье имя Мэри, поэтому я использовал идентификатор Мэри или идентификатор сотрудника, чтобы обновить ее конкретные данные.
Мы можем видеть, что оператор UPDATE был успешно выполнен на изображении ниже вместе со вторым набором заявления, которые нужны для того, чтобы вытащить информацию о Мэри после изменения ее назначения. Теперь ее обозначение отображается как наше желаемое значение.
Мы также можем изменить несколько данных любого конкретного сотрудника за один раз. Предположим, Суреш был повышен с Старший аналитик стал специалистом, и его место работы также изменилось с Мумбаи на Нью-Дели. Вы можете запустить ниже Оператор для внесения обоих изменений с помощью одного оператора SQL UPDATE.
ОБНОВЛЕНИЕ Сотрудник
SET [обозначение] = «Специалист», [город] = «Нью-Дели» ГДЕ ID = 8 |
См. вывод ниже, столбцы города и обозначения были изменены на желаемые значения. Вы можете внести изменения в несколько столбцов, указав столбцы и их соответствующие значения в приведенном выше выражении.
Оператор SQL UPDATE с использованием функций даты и времени
Мы также можем использовать операторы SQL UPDATE с функциями даты и времени. Предположим, вы хотите ввести текущую дату и время значение в столбце, вы можете использовать функцию GETDATE, чтобы получить текущее системное время и обновить его в своем нужный столбец.
Я обновил столбец Дата в приведенном ниже примере, где в этом столбце не было никаких данных до его обновления с помощью Синтаксис SQL UPDATE, тогда как второй набор выходных данных показывает текущую дату и время в этом столбце Date.
Вы также можете использовать оператор TOP с синтаксисом UPDATE так же, как я использовал его в операторе SELECT, чтобы вернуть только 10 верхних рядов. Здесь я использовал другую таблицу Sales и обновил всю таблицу, поэтому я не использовал TOP оператор в синтаксисе SQL UPDATE.
ОБНОВЛЕНИЕ Продажи SET Date = GETDATE() |
Ниже приведен вывод до обновления текущей даты и времени и после обновления в столбце 9.0057 Дата . Ты можно увидеть, что данные были изменены с текущей отметкой времени. Вы можете снова применить фильтры, используя предложение WHERE, если вы необходимо изменить определенные поля данных.
Мы также можем использовать функции CAST и CONVERT вместе с функцией GETDATE() в приведенном выше операторе SQL UPDATE в случае нам нужно сохранить текущую дату и время в другом формате.
Синтаксис SQL UPDATE с подзапросами и оператором JOIN
Предположим, вы добавили столбец с именем POC (Point of Contact) в таблицу Sales. Цель состоит в том, чтобы добавить имя POC для каждая торговая компания делает для лучшего обслуживания и обслуживания клиентов. У нас уже есть столбец PersonID в Таблица продаж, в этом столбце хранятся идентификаторы сотрудников, которые продали этот продукт. Теперь нам нужно добавить имя этого идентификатор человека в качестве POC в этом недавно добавленном столбце. Здесь нам нужно получить данные из другой таблицы Employee и INSERT данные в таблице «Продажи».
Запустите приведенный ниже оператор, чтобы изменить данные из другой таблицы.
ОБНОВЛЕНИЕ Продажи SET POC = (ВЫБЕРИТЕ имя от сотрудника, ГДЕ сотрудник.ID = sales.PersonID) |
Ниже приведен вывод, который я показал до и после модификации. Вы можете сравнить имена POC с их идентификатор сотрудника, отображаемый в таблице сотрудников.
Мы также можем написать приведенный выше запрос с оператором JOIN. Позвольте мне показать вам приведенный ниже пример использования синтаксиса SQL UPDATE с операторами JOIN.
Теперь мы назначили POC для каждого из проданных продуктов. Допустим, возникла потребность добавить столбец города в таблицу продаж и обновить этот столбец для каждой продажи в зависимости от местоположения POC или сотрудника, продавшего продукт. Мы будем использовать оператор JOIN с синтаксисом SQL UPDATE и позволим вам продемонстрировать, как это сделать.
ОБНОВЛЕНИЕ Продажи УСТАНОВИТЬ продажи.Город = сотрудник.Город ОТ Продажи ПРИСОЕДИНИТЬСЯ Сотрудник ВКЛ сотрудника.ID = продажи.PersonID |
Я показываю только первые 5 строк, чтобы результат был коротким, но приведенный ниже запрос обновил этот столбец для всех записей, хранящихся в этом столбце.
Вы можете сравнить их города с первого снимка экрана, чтобы проверить, верны ли измененные данные или нет.
Заключение
Оператор SQL UPDATE используется для изменения полей данных в SQL Server. В этой статье объясняются основы SQL. Синтаксис UPDATE и варианты его использования, с помощью которых вы можете понять, как использовать оператор SQL UPDATE для изменения одного или много файлов данных в SQL Server. Вы также узнаете, как использовать его с выражениями, подзапросами, различными SQL Server. функции и операторы JOIN.
- Автор
- Последние сообщения
Манвендра Сингх
Манвендра — энтузиаст баз данных, в настоящее время работает старшим архитектором в одной из ведущих MNC.
Он любит говорить и писать о технологиях баз данных. Он руководил и реализовывал множество проектов от проектирования до развертывания миграции в облако, гетерогенной миграции, консолидации баз данных, обновлений, гетерогенной репликации, решений HA / DR, автоматизации и крупных проектов по настройке производительности.
Вы также можете найти его на LinkedIn
Просмотреть все сообщения от Manvendra Singh
Последние сообщения от Manvendra Singh (посмотреть все)
Оператор SQL UPDATE — обновление данных в таблице оператор для изменения существующих данных в таблице.
Синтаксис SQL UPDATE
Оператор UPDATE
изменяет существующие данные в одной или нескольких строках таблицы. Ниже показан синтаксис UPDATE 9.Оператор 0248:
ОБНОВЛЕНИЕ таблицы НАБОР столбец1 = новое_значение1, столбец2 = новое_значение2, ... ГДЕ состояние;
Чтобы обновить данные в таблице, необходимо:
- Сначала указать имя таблицы, данные которой вы хотите изменить, в предложении
UPDATE
. - Во-вторых, назначьте новое значение для столбца, который вы хотите обновить. Если вы хотите обновить данные в нескольких столбцах, каждая пара столбец = значение отделяется запятой (,).
- В-третьих, укажите, какие строки вы хотите обновить в предложении WHERE. Предложение
WHERE
является необязательным. Если вы опустите предложениеWHERE
, все строки в таблице будут обновлены.
Механизм базы данных выдает сообщение с указанием количества затронутых строк после выполнения оператора.
Примеры операторов SQL UPDATE
Давайте рассмотрим несколько примеров использования оператора UPDATE
с таблицей сотрудников
:
SQL UPDATE пример одного столбца
Предположим, Джанет, у которой есть идентификатор сотрудника 3, выходит замуж, поэтому вам нужно изменить ее фамилию в таблице сотрудников
.
Запись Джанет в сотрудниках до обновления выглядит следующим образом:
ВЫБЕРИТЕ ID сотрудника, фамилия, имя ОТ Northwind_bk.employees ГДЕ идентификатор сотрудника = 3;
Следующее заявление меняет фамилию Джанет с Леверинг на Хилл:
Язык кода: JavaScript (javascript)
ОБНОВЛЕНИЕ сотрудников НАБОР фамилия = 'Хилл' ГДЕ идентификатор сотрудника = 3;
Повторите приведенный выше оператор SELECT, чтобы проверить изменение:
SQL UPDATE несколько столбцов
Например, Джанет переехала в новый дом, поэтому ее адрес изменился. Теперь вам нужно изменить его в таблице сотрудников
, используя следующую инструкцию:
Язык кода: JavaScript (javascript)
ОБНОВЛЕНИЕ сотрудников. НАБОР адрес = '1300 Картер-стрит', город = «Сан-Хосе», почтовый индекс = 95125, регион = 'Калифорния' ГДЕ идентификатор сотрудника = 3;
SQL UPDATE несколько строк
Следующая инструкция UPDATE
увеличивает зарплату на 2% для сотрудников, чья зарплата меньше $2000:
UPDATE сотрудников НАБОР оклад = оклад * 1,02 ГДЕ зарплата < 2000;
Три сотрудника, чья зарплата меньше 2K, получили повышение.
ОБНОВЛЕНИЕ SQL из SELECT
Следующий запрос выбирает продавца, ответственного за более чем 100 заказов:
Язык кода: PHP (php)
ВЫБЕРИТЕ ID сотрудника, COUNT(ID заказа) ОТ заказы ГДЕ дата отправки НЕ НУЛЕВАЯ СГРУППИРОВАТЬ ПО идентификатору сотрудника СЧЕТЧИК(orderid) > 100;
Следующий запрос увеличивает зарплату лучших продавцов на 5%.