Запросы SQL для обновления данных (UPDATE)
Под обновлением данных в БД подразумевается изменение значений в существующих записях таблицы. При этом возможно как изменение значений полей в группе строк (даже всех строк таблицы), так и правка значения поля отдельной строки.
В SQL, изменить запись в таблице БД можно с помощью команды UPDATE. В самом минимальном виде команда обновления данных выглядит следующим образом:
UPDATE таблица SET поле = значение
Здесь, UPDATE – команда указывающая, что запрос на обновление данных;
таблица – название таблицы, в которой будет проводиться изменения;
SET – команда, после которой через запятую указываются поля с назначаемыми им значениями;
поле – поле таблицы, в которое будет внесено изменение;
значение – новое значение, которое будет внесено в поле.
Например, если необходимо задать полю во всех строках таблицы значение равное нулю, можно выполнить такой запрос:
UPDATE goods SET price = 0
В этом случае, поле price абсолютно во всех имеющиеся строках таблицы примет значение 0.
Изменение одного значения
Изменение значения всех полей в таблице необходимо крайне редко. Чаще всего необходимо поменять значение какой-то конкретной записи. Для этого в завершении строки с командой UPDATE будет добавлена директива WHERE, в которой указывается условие, определяющее с какой именно строкой нужно выполнить операцию обновления.
Имеется таблица:
num (номер товара) |
title (название) |
price (цена) |
1 | Чайник | 300 |
2 | Чашка | 100 |
3 | Ложка | 25 |
4 | Тарелка | 100 |
Для примера, нужно обновить стоимость товара с известным нам его значением num. Для этого, выполним следующий запрос:
UPDATE goods SET price = 150 WHERE num = 2
Теперь, перед операцией изменения полей, будет выбрана строка, удовлетворяющая условию num = 2. Такая строка в таблице одна. В этой стоке цена и будет изменена на значение 150. В результате получим таблицу с измененной ценой товара.
Внесение изменений в несколько строк с условием отбора
Если вспомнить все многообразие условий в запросе, можно представить себе насколько разнообразными могут быть выборки. Поэтому и запросы на обновления могут выполняться либо с одной строкой, либо с группой строк, либо со всеми строками таблицы. Все зависит от стоящей перед вами задачи, а так же с какими строками таблицы нужно выполнять операции обновления.
Например, мы хотим уменьшить в два раза цену всех товаров, которые сейчас стоят от 100 и более. Запрос:
UPDATE goods SET price = price / 2 WHERE price >= 100
Условие WHERE
здесь содержит правило, по которому будут выбраны только товары с ценой равной или более 100, а те товары, цена у которых ниже 100, затронуты запросом не будут.price = price / 2 – формула, по которой будет вычисляться новая цена товаров. Новая цена будет записана равной старой цене поделенной на два.
В результате выполнения такого запроса получим таблицу с измененными записями:
num (номер товара) |
title (название) |
price (цена) |
1 | Чайник | 150 |
2 | Чашка | 50 |
3 | Ложка | 25 |
4 | Тарелка |
Обновление значений в нескольких полях строки
При необходимости обновлять сразу несколько полей, все поля с их значениями указываются после директивы SET через запятую. Например, нужно изменить название и цену товара с кодом 2 на «утюг», стоимостью 300:
UPDATE goods SET title = "утюг", price = 300 WHERE num = 2
Такой запрос каждому соответствующему полю в строке назначит его значение. А условие укажет, в какой именно строке будут выполнены изменения.
Выше приведены основные виды операций обновления. На их основе формируется запросы для решения большинства задач изменения данных в разработке с применением SQL.
Оператор 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 и покажем вам, как это сделать.
ОБНОВЛЕНИЕ Sales SET sales.City = employee.City FROM Sales JOIN Employee ON employee.ID = sales.PersonID |
Я показываю только первые 5 строк, чтобы результат был коротким, но приведенный ниже запрос обновил этот столбец для всех записей, хранящихся в этом столбце.
Вы можете сравнить их города с первого снимка экрана, чтобы проверить, верны ли измененные данные или нет.
Заключение
Оператор SQL UPDATE используется для изменения полей данных в SQL Server. В этой статье объясняются основы SQL. Синтаксис UPDATE и варианты его использования, с помощью которых вы можете понять, как использовать оператор SQL UPDATE для изменения одного или много файлов данных в SQL Server. Вы также узнаете, как использовать его с выражениями, подзапросами, различными SQL Server. функции и операторы JOIN.
- Автор
- Последние сообщения
Манвендра Сингх
Манвендра — энтузиаст баз данных, в настоящее время работает старшим архитектором в одной из ведущих MNC.Он любит говорить и писать о технологиях баз данных. Он руководил и реализовывал множество проектов от проектирования до развертывания миграции в облако, гетерогенной миграции, консолидации баз данных, обновлений, гетерогенной репликации, решений HA / DR, автоматизации и крупных проектов по настройке производительности.
Вы также можете найти его на LinkedIn
Просмотреть все сообщения Манвендры Сингха
Последние сообщения Манвендры Сингха (посмотреть все)
Как обновлять таблицы базы данных
Мир постоянно меняется, меняются и данные. Для языков баз данных (таких как SQL) крайне важно предоставлять обновленную информацию, сохраненную в системах баз данных. Это достигается с помощью команды SQL UPDATE, которая является неотъемлемой частью этого распространенного языка запросов.
Что такое ОБНОВЛЕНИЕ SQL?
SQL дает пользователям возможность обновлять существующие записи в таблицах с помощью команды UPDATE. С помощью этой команды вы можете изменять и изменять некоторые (или все) записи из одного или нескольких столбцов таблицы.
Это очень важная команда, так как данные в любом наборе данных постоянно изменяются, поэтому она помогает пользователю поддерживать наборы данных в актуальном состоянии.
Давайте рассмотрим синтаксис команды UPDATE.
Синтаксис команды SQL UPDATE
ОБНОВЛЕНИЕ имя_таблицы SET столбец_1=значение_1, столбец_2=значение_2,… ГДЕ [условие]; |
- Оператор UPDATE сообщает системе базы данных, что вы хотите обновить записи для таблицы, указанной в параметре table_name
- Столбцы, которые вы хотите изменить, перечислены после оператора SET и приравнены к их новым обновленным значениям. Запятые разделяют эти столбцы
- Условие в предложении WHERE определяет, какие строки из указанных столбцов будут обновлены
ПРИМЕЧАНИЕ. Важно помнить, что без предложения WHERE будут обновлены все записи из указанных столбцов.
Попробуем обновить строки из одного столбца в таблице.
В нашем примере у нас есть таблица, которую мы назовем «Сотрудник», как показано ниже:
- Перед обновлением любой из записей важно проверить типы данных всех столбцов. Кроме того, если какой-либо из столбцов имеет ограничения (например, «Первичный ключ» и «НЕ NULL»), значения необходимо обновить соответствующим образом.
Вы можете проверить это с помощью команды DESC.
Как видите, в нашей таблице есть ограничение «Первичный ключ» для столбца «EmployeeID», поэтому важно помнить, что нельзя обновлять какие-либо записи, потому что это создаст повторяющееся значение в этом столбце.
Столбец «Имя» имеет ограничение «НЕ NULL», поэтому мы не можем обновить ни одну из строк до значения NULL ни в одном из этих двух столбцов.
- Например, если Сотрудник «Гарри» изменит свой адрес, нам придется обновить атрибут «Город» в нашей таблице «Сотрудник».
Для этой цели мы будем использовать следующий запрос:
Мы заключили новое значение «Город» в кавычки, так как это тип данных строки символов — если его не заключить, запрос приведет к ошибке.
При выполнении приведенный выше запрос создаст следующую таблицу:
На фото выше видно, что запись была обновлена с «Дели» на «Ченнаи».
- Мы также можем обновить несколько записей в одном столбце
Например, если все сотрудники, зарабатывающие менее 30 000 в год, получают повышение, а их новая зарплата сейчас составляет 30 000, мы будем использовать следующий запрос для обновления этих записей в нашей таблице:
В результате получится следующая таблица:
Эти записи обновлены.
Теперь мы будем обновлять записи из нескольких столбцов таблицы с помощью одного запроса.
Обновление выбранных записей из нескольких столбцов
Иногда нам нужно изменить значения записей из разных столбцов в таблице, и мы также можем использовать команду UPDATE для этой цели.
- Например, если нам нужно обновить сведения о городе и зарплате для сотрудника с идентификатором, равным четырем, мы будем использовать следующий запрос в нашей таблице:
В результате получится следующая таблица:
Это показывает, что столбцы были обновлены.
- Крайне важно помнить об ограничениях и типах данных каждого обновляемого столбца таблицы и вставлять новые значения в соответствии с этими переменными
Например, давайте посмотрим, что происходит, когда мы пытаемся обновить имя сотрудника как значение NULL.
Это приводит к ошибке, поскольку в столбце «Имя» указано ограничение NOT NULL.
Предложение WHERE является важной частью команды UPDATE. Давайте посмотрим, что произойдет, если этого предложения нет в запросе.
Обновление всех записей из столбцов таблицы
Мы всегда должны быть осторожны при использовании UPDATE в SQL, так как без предложения WHERE все строки столбцов, указанные в запросе, обновляются до нового значения. Это может вызвать серьезные проблемы, если это сделано непреднамеренно. Давайте рассмотрим пример такого типа обновления записи.
Если мы хотим обновить все строки столбцов «Город» и «Зарплата» в нашей таблице «Сотрудник» до значений «Бангалор» и «50000» соответственно, мы будем использовать следующий запрос:
В результате получится следующая таблица:
Все записи в этих столбцах обновлены до указанных значений.
- Давайте посмотрим, что произойдет, если мы попытаемся изменить все записи столбца «EmployeeID» на одно и то же значение .
Для этой цели мы будем использовать следующий запрос:
Возникает ошибка, так как столбец «EmployeeID» является первичным ключом и не может содержать повторяющиеся значения или значения NULL.