mysql update statement tutorial update query syntax examples
Цей посібник пояснює заяву MySQL UPDATE разом із синтаксисом запитів та прикладами. Ви також вивчите різні варіанти команди таблиці оновлення MySQL:
Як і у будь-якій іншій базі даних, ми завжди маємо потребу оновити, змінити або змінити наявні дані в таблицях. У MySQL ми маємо оператор UPDATE, який можна використовувати для оновлення або модифікації даних у таблиці.
За допомогою цієї команди ми можемо оновити одне або кілька полів. Ми можемо оновлювати значення певної таблиці за раз. За допомогою речення WHERE ми можемо вказати умови, що використовуються, особливо коли є потреба оновити певні рядки з таблиці.
Перш ніж продовжувати, зауважте, що ми використовуємо MySQL версії 8.0. Ви можете завантажити його з тут.
Що ви дізнаєтесь:
- Синтаксис таблиці оновлення MySQL
- Команда таблиці UPDATE MySQL
- # 1) MySQL Оновлення однієї колонки
- # 2) Оновлення кількох стовпців MySQL
- # 3) Оновлення MySQL з функцією REPLACE
- # 4) ОНОВЛЕННЯ MySQL за допомогою оператора SELECT
- # 5) MySQL UPDATE Кілька рядків
- # 6) ОНОВЛЕННЯ MySQL за допомогою ключового слова INNER JOIN
- # 7) ОНОВЛЕННЯ MySQL за допомогою ЛІВОГО КЛЮЧОВОГО ключового слова
- Часті запитання та відповіді
- Висновок
Синтаксис таблиці оновлення MySQL
UPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition;
Пояснення синтаксису:
- Синтаксис починається з ключового слова “UPDATE”, тим самим повідомляючи MySQL Server про тип діяльності, яку потрібно виконати. Це обов’язкове ключове слово, і його не можна пропустити.
- Далі йде назва таблиці, над якою слід виконати дію оновлення. Це є обов’язковим і не можна пропустити.
- По-третє, це знову ключове слово - SET. Це ключове слово інформує MySQL Server про значення, які слід оновити для імен стовпців. Це обов’язкове ключове слово, і його не можна пропустити.
- Далі будуть назви стовпців, які слід оновити разом із відповідними значеннями. Це також є обов’язковим і не можна пропустити.
- Потім настає умова WHERE, яка обмежує або фільтрує кількість цільових рядків, до яких слід застосувати дію ОБНОВЛЕННЯ. WHERE - це також ключове слово, але необов’язкове.
Однак речення WHERE є важливим. Якщо це не зазначено, або якщо умова встановлена неправильно, ні таблиця, ні необов’язкові рядки не оновлюються.
Модифікатори в операторі таблиці UPDATE
Нижче перераховані модифікатори в операторі UPDATE.
LOW_PRIORITY: Цей модифікатор повідомляє MySQL Engine про затримку оновлення, поки не буде прочитано з'єднання з таблиці.
ІГНОРУВАТИ: Цей модифікатор повідомляє MySQL Engine про продовження операції ОНОВЛЕННЯ, навіть якщо є помилки. Не виконується жодна дія оновлення для рядків, які спричинили помилки.
Приклад оновлення MySQL
Нижче наведено зразок таблиці, створеної в MySQL.
Назва схеми: тихоокеанський
Назва таблиці: службовців
Назви стовпців:
- empNum - містить цілочисельні значення для номера працівника.
- lastName - Утримує значення varchar для прізвища працівника.
- firstName - Утримує значення varchar для імені працівника.
- електронна пошта - містить значення varchar для ідентифікатора електронної пошти працівника.
- deptNum - Утримує varchar для ідентифікатора відділу, до якого належить працівник.
- зарплата - містить десяткові значення заробітної плати для кожного працівника.
Назва схеми: тихоокеанський
Назва таблиці: кафедри
Назви стовпців:
- deptNum - Утримує varchar для ідентифікатора відділу в організації.
- місто - Утримує назву міста, в якому працюють департаменти.
- країна - Утримує назву країни, що відповідає місту.
- бонус - утримує процентне значення бонусу.
Команда таблиці UPDATE MySQL
# 1) MySQL Оновлення однієї колонки
Тепер давайте з’ясуємо запис, який ми хотіли б оновити. Спочатку ми розглянемо сценарій, коли нам доведеться оновити один стовпець за допомогою ключового слова UPDATE.
Ось працівник із номером працівника 1008.
Запит та відповідні результати є такими:
Давайте оновимо ідентифікатор електронної пошти цього працівника з ob@gmail.com на oliver.bailey@gmail.com, використовуючи ключове слово UPDATE.
ОНОВЛЕННЯ: Ключове слово інформує движок MySQL, що твердження стосується оновлення таблиці.
ВСТАНОВИТИ: Цей пункт встановлює значення назви стовпця, згаданого після цього ключового слова, на нове значення.
ДЕ: Цей пункт визначає конкретний рядок, який потрібно оновити.
Після виконання оператора UPDATE на виході відображатиметься статистика, пов'язана з виконанням оператора.
Нижче наведено докладні відомості:
- Заява, яка була виконана.
- Повідомлення, які показують кількість рядків, які були оновлені, і чи були застереження.
Для того, щоб перевірити вихідні дані оператора UPDATE, давайте повторно виконаємо оператор SELECT, щоб побачити зміни в ідентифікаторі електронної пошти.
Знімок таблиці до:
empNum | ім'я | прізвище | електронною поштою | deptNum |
---|---|---|---|---|
7 | Рим | Італія | ||
1008 | Олівер | Бейлі | ob@gmail.com | 3 |
Запит:
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ;
Знімок таблиці після:
empNum | ім'я | прізвище | електронною поштою | deptNum |
---|---|---|---|---|
1008 | Олівер | Бейлі | oliver.bailey@gmail.com | 3 |
# 2) Оновлення кількох стовпців MySQL
Синтаксис оновлення більше одного стовпця за допомогою оператора UPDATE такий самий, як і синтаксис оновлення одного стовпця. Один окремий оператор SET матиме кілька імен стовпців разом із новим значенням, яке потрібно встановити, розділене комою.
Давайте подивимось на рядок, який нам потрібно оновити. Рядок із номером працівника 1003.
Тут ми спробуємо оновити прізвище з “Мері” на “Маргарет”, а потім ідентифікатор електронної пошти з ml@gmail.com на margaret.langaley@gmail.com.
Далі подано запит на ОНОВЛЕННЯ. Дотримуйтесь назв стовпців, розділених комою.
Результат вищевказаного виконання показує ті самі статистичні дані, що і в попередньому випадку.
Далі виводиться той самий запис після виконання оператора UPDATE.
Знімок таблиці до:
empNum | ім'я | прізвище | електронною поштою | deptNum |
---|---|---|---|---|
1003 | Мері | Ленглі | ml@gmail.com | два |
Запит:
UPDATE employees SET firstName = “Margaret”, email = “margaret.lagaley@gmail.com” WHERE empNum = 1003 AND firstName = “Mary” AND email = “ml@gmail.com” ;
Знімок таблиці після:
empNum | ім'я | прізвище | електронною поштою | deptNum |
---|---|---|---|---|
1003 | Маргарет | Ленглі | margaret.langley@gmail.com | 3 |
# 3) Оновлення MySQL з функцією REPLACE
Давайте подивимось більше про використання функції ЗАМІНИ для ОНОВЛЕННЯ рядка в таблиці. Ось наш цільовий запис, який ми хочемо оновити.
Наведений нижче запис стосується номера працівника 1010. Ми плануємо оновити ідентифікатор електронної пошти з адреси ja@gmail.com на jacob.armstrong@gmail.com.
Давайте використаємо наступний запит UPDATE із функцією REPLACE, яка оновить ідентифікатор електронної пошти.
Нижче наведено параметри, які передаються у функції ЗАМІНИ. Усі 3 параметри мають позиційний характер, тобто порядок параметрів не може бути змінений.
1вулПараметр - Містить ім'я ідентифікатора електронної пошти.
двайПараметр - Містить ідентифікатор електронної пошти FROM, який потрібно змінити.
3рдПараметр - Містить ідентифікатор електронної пошти TO, що є новим значенням.
Нижче наведено знімок таблиці після виконання оператора UPDATE:
Знімок таблиці до:
empNum | ім'я | прізвище | електронною поштою | deptNum |
---|---|---|---|---|
1010 | Якова | Армстронг | ja@gmail.com | 4 |
Запит:
UPDATE employees SET email = REPLACE(email, “ja@gmail.com”, jacob.armstrong@gmail.com) WHERE empNum = 1010 ;
Знімок таблиці після:
empNum | ім'я | прізвище | електронною поштою | deptNum |
---|---|---|---|---|
1010 | Якова | Армстронг | jacob.armstrong@gmail.com | 4 |
# 4) ОНОВЛЕННЯ MySQL за допомогою оператора SELECT
У цьому типі UPDATE нове значення для стовпця, яке потрібно оновити, отримується за допомогою оператора SELECT у підзапиті. Отже, візьмемо тут приклад із нашої таблиці “працівників”. Ось наш цільовий запис, який ми хочемо оновити.
У цьому випадку ми оновимо номер відділу, тобто стовпець deptNum, використовуючи таблиці відділів. Якщо ми подивимось на таблицю департаментів, deptNum = 5 відповідає Берліну. Давайте переведемо цього працівника до Шарлотти за адресою deptNum = 2.
Для досягнення цього завдання використовується наступний оператор UPDATE:
Для того, щоб перевірити результати нашого оператора UPDATE, давайте виконаємо ВИБЕРІТЬ заява.
Як показано вище, значення для стовпця deptNum оновлено до “2”.
Знімок таблиці до:
empNum | ім'я | прізвище | електронною поштою | deptNum |
---|---|---|---|---|
1005 | Петро | читати | pl@gmail.com | 5 |
deptNum | Місто | Країна |
---|---|---|
1 | Нью-Йорк | Сполучені Штати |
два | Шарлотта | Сполучені Штати |
3 | Чикаго | Сполучені Штати |
4 | Лондон | Англія |
5 | Берлін | Німеччина |
6 | Мумбаї | Індія |
Запит:
Знімок таблиці після:
empNum ім'я прізвище електронною поштою deptNum 7 Рим Італія НУЛЬ 1005 Петро читати pl@gmail.com два
# 5) MySQL UPDATE Кілька рядків
Іноді ми можемо зіткнутися з вимогою, коли нам доведеться оновити один або кілька стовпців для декількох рядків з різними значеннями.
Наприклад, ми хочемо дати певну суму бонусного відділу з розумом, тобто всі співробітники відділу повинні отримати певну суму бонусу.
яка відповідна маска підмережі для мережі між двома хостами
Загальний синтаксис такий:
UPDATE TAB1 SET COL2 = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 …. ELSE result1 END;
Щоб пояснити це на прикладі, давайте додамо ще один стовпець до таблиць відділів. Ми додамо стовпець “бонус” до таблиці відділів. Ідея полягає в тому, щоб призначити відсоток премій кожному відділу і підвищити заробітну плату працівників на той відсоток, який відповідає кожному відділу.
Для цього ми виконаємо такі оператори ALTER, щоб додати стовпець:
ALTER TABLE departments ADD COLUMN bonus decimal(5,2);
Нижче буде наведено структуру таблиці з огляду на зазначені вище зміни. Нові стовпці будуть додані з НУЛЬ як значення.

Далі напишемо запит UPDATE, який оновить відсоток бонусів для кожного відділу.

Після виконання вищезазначеного твердження, нижче наведено знімок із оновленими значеннями для стовпця 'Бонус'.

Знімок таблиці до:
deptNum Місто Країна Бонус 1 Нью-Йорк Сполучені Штати НУЛЬ два Шарлотта Сполучені Штати НУЛЬ 3 Чикаго Сполучені Штати НУЛЬ 4 Лондон Англія НУЛЬ 5 Берлін Німеччина НУЛЬ 6 Мумбаї Індія НУЛЬ
Запит:
UPDATE departments SET bonus = CASE WHEN deptNum = 1 THEN 3.00 WHEN deptNum= 2 THEN 5.00 WHEN deptNum= 3 THEN 8.00 WHEN deptNum= 4 THEN 10.00 WHEN deptNum= 5 THEN 13.00 WHEN deptNum= 6 THEN 15.00 WHEN deptNum= 7 THEN 18.00 END;
Знімок таблиці після:
deptNum Місто Країна Бонус 7 Рим Італія 18 1 Нью-Йорк Сполучені Штати 3 два Шарлотта Сполучені Штати 5 3 Чикаго Сполучені Штати 8 4 Лондон Англія 10 5 Берлін Німеччина 13 6 Мумбаї Індія п’ятнадцять
# 6) ОНОВЛЕННЯ MySQL за допомогою ключового слова INNER JOIN
ПРИЄДНАЙТЕСЬ - одне з найважливіших ключових слів у операторах SQL. Зазвичай ви могли використовувати його в операторі SELECT.
В основному існує чотири типи операторів JOIN:
- ВНУТРІШНЄ З'ЄДНАННЯ: Отримує записи, загальні в обох таблицях.
- ЛІВА ПРИЄДНАННЯ: Отримує всі записи з таблиці в лівій частині ключового слова та відповідні записи з таблиці в правій частині ключового слова.
- ПРАВИЛЬНЕ ПРИЄДНАННЯ: Отримує всі записи з таблиці в правій частині ключового слова та відповідні записи з таблиці в лівій частині ключового слова.
- ВНЕШНЄ ПРИЄДНАННЯ: Отримує всі записи з обох таблиць, із відповідними невідповідними записами, представленими як NULL.
MySQL дає унікальну можливість використовувати JOIN навіть в операторах UPDATE для виконання оновлення між таблицями. Однак це обмежується лише ВНУТРІШНЄЮ ПРИЄДНАННЯМ та ЛІВОЮ ПРИЄДНАННЯМ.
Узагальнений синтаксис оператора UPDATE з використанням ключового слова JOIN є таким:
UPDATE TAB1, TAB2, (INNER JOIN | LEFT JOIN) TAB1 ON TAB1.COL1 = TAB2.COL1 SET TAB1.COL2 = TAB2.COL2, TAB2.COL3 = expr WHERE condition
- Тут оператор UPDATE передбачає три елементи даних.
- Імена таблиць, TAB1 і TAB2, на яких виконується об'єднання.
- Тип ПРИЄДНАННЯ, яке ми маємо намір виконати, ВНУТРІШНЕ або ЛІВО.
- Далі слідує команда SET, за допомогою якої ми можемо оновити значення стовпців у / або TAB1 і TAB2.
- Нарешті, пропозиція WHERE для оновлення лише тих рядків, які відповідають нашим критеріям.
Щоб пояснити це на прикладі, давайте додамо ще один стовпець до таблиці Employees. Ми додамо стовпець 'заробітна плата' до таблиці Співробітники. Ідея полягає в тому, щоб підвищити заробітну плату працівників на величину процентного бонусу, присутню в стовпці премій таблиці відділу.
Для цього ми виконаємо такі оператори ALTER, щоб додати стовпець:
ALTER TABLE employees ADD COLUMN salarydecimal(7,2);
Далі ми заповнимо два нові поля, які ми додали. Публікація, що заповнює значення, наведена нижче у змісті таблиці.
Таблиця співробітників:
empNum ім'я прізвище електронною поштою deptNum Зарплата 1007 Шмітта Джеймс js@gmail.com 4 18000 1001 Ендрюс Джек ja@gmail.com 1 3000 1002 Шватц Майк ms@gmail.com 1 5000 1003 Ленглі Маргарет margaret.langley@gmail.com два 8000 1004 Харера Сандра sh@gmail.com 1 10 000 1005 читати Петро pl@gmail.com два 13000 1006 Кіт Дженні jk@gmail.com два 15000 1008 Бейлі Олівер oliver.bailey@gmail.com 3 21000 1009 Кубок Гаррі hb@gmail.com 5 24000 1010 Армстронг Якова jacob.armstrong@gmail.com 4 27000
Тепер давайте використаємо ключове слово JOIN і оновимо заробітну плату всіх співробітників із бонусним відсотком у таблиці відділів. Тут deptNum - це ключ, за яким будуть співставлені дві таблиці.
F наступним є знімок заробітної плати працівників на даний момент:

Знімок з таблиці Департаментів такий:

Далі подано запит UPDATE, який оновить заробітну плату працівників на основі відсотка премій у таблицях відділів на основі стовпця ключа deptNum.

Тепер перевіримо зарплату кожного працівника після походу.

Якщо порівняти його з попереднім знімком, то можна легко зрозуміти відсоток премій, доданий до зарплати.
Усі співробітники, мабуть, вітають!
Знімок таблиці до:
empNum ім'я прізвище електронною поштою deptNum Зарплата 1007 Шмітта Джеймс js@gmail.com 4 18000 1001 Ендрюс Джек ja@gmail.com 1 3000 1002 Шватц Майк ms@gmail.com 1 5000 1003 Ленглі Маргарет margaret.langley@gmail.com два 8000 1004 Харера Сандра sh@gmail.com 1 10 000 1005 читати Петро pl@gmail.com два 13000 1006 Кіт Дженні jk@gmail.com два 15000 1008 Бейлі Олівер oliver.bailey@gmail.com 3 21000 1009 Кубок Гаррі hb@gmail.com 5 24000 1010 Армстронг Якова jacob.armstrong@gmail.com 4 27000
deptNum Місто Країна Бонус 7 Рим Італія 18 1 Нью-Йорк Сполучені Штати 3 два Шарлотта Сполучені Штати 5 3 Чикаго Сполучені Штати 8 4 Лондон Англія 10 5 Берлін Німеччина 13 6 Мумбаї Індія п’ятнадцять
Запит:
UPDATE employees INNER JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * bonus)/100) ;
Знімок таблиці після:
empNum ім'я прізвище електронною поштою deptNum Зарплата 1007 Шмітта Джеймс js@gmail.com 4 21780 1001 Ендрюс Джек ja@gmail.com 1 3182,7 1002 Шватц Майк ms@gmail.com 1 5304,5 1003 Ленглі Маргарет margaret.langley@gmail.com два 8820 1004 Харера Сандра sh@gmail.com 1 10609 1005 читати Петро pl@gmail.com два 14332,5 1006 Кіт Дженні jk@gmail.com два 16537,5 1008 Бейлі Олівер oliver.bailey@gmail.com 3 24494,4 1009 Кубок Гаррі hb@gmail.com 5 30645,6 1010 Армстронг Якова jacob.armstrong@gmail.com 4 32670
# 7) ОНОВЛЕННЯ MySQL за допомогою ЛІВОГО КЛЮЧОВОГО ключового слова
Як пояснювалось у попередньому розділі, існує два типи JOIN, які дозволяються в MySQL UPDATE. Ми вже бачили ОНОВЛЕННЯ за допомогою INNER JOIN.
Почнемо з ОНОВЛЕННЯ за допомогою ЛІВОГО ПРИЄДНАННЯ.
Приклад:
У нас новий працівник, якого ще не призначили в якийсь відділ. Але ми повинні давати всім новоприйнятим працівникам бонус у розмірі 1%. Зараз, оскільки новий найм не призначений жодному відділу, ми не зможемо отримати будь-яку інформацію про відсоток бонусів із цієї таблиці. У такому випадку ми ОНОВЛИМО заробітну плату за нових працівників за допомогою ЛІВОГО ПРИЄДНАННЯ.
Для цього додамо нового співробітника до бази даних працівників.
INSERT INTO employees(empNum, firstName, lastName, email, deptNum, Salary) VALUES (1011, “Tom”, “Hanks”, th@gmail.com, NULL, 10000.00);
Ось новий запис, який ми додали:

Таблиця співробітників:
empNum ім'я прізвище електронною поштою deptNum Зарплата 1007 Шмітта Джеймс js@gmail.com 4 21780 1001 Ендрюс Джек ja@gmail.com 1 3183 1002 Шватц Майк ms@gmail.com 1 5305 1003 Ленглі Маргарет margaret.langley@gmail.com два 8820 1004 Харера Сандра sh@gmail.com 1 10609 1005 читати Петро pl@gmail.com два 14333 1006 Кіт Дженні jk@gmail.com два 16538 1008 Бейлі Олівер oliver.bailey@gmail.com 3 24494 1009 Кубок Гаррі hb@gmail.com 5 30646 1010 Армстронг Якова jacob.armstrong@gmail.com 4 32670 1011 Хенкс Том th@gmail.com НУЛЬ 10 000
Далі ми дамо Тому бонус у розмірі 1% поверх його заробітної плати, використовуючи оператор UPDATE з реченням LEFT JOIN:

Нижче наведено зарплату ТОМ після походу.

Якщо порівняти його з попереднім знімком, ви легко зможете зрозуміти бонус%, доданий до зарплати.
Знімок таблиці до:
empNum ім'я прізвище електронною поштою deptNum Зарплата 1011 Том Хенкс th@gmail.com НУЛЬ 10 000
Запит:
UPDATE employees LEFT JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * 1)/100) WHERE employees.deptNum IS NULL ;
Знімок таблиці після:
empNum ім'я прізвище електронною поштою deptNum Зарплата 1011 Том Хенкс th@gmail.com НУЛЬ 10100
Рекомендована література = >> MySQL приєднується
Часті запитання та відповіді
Q # 1) Як мені оновити атрибути в MySQL?
Відповідь: Ми можемо оновити атрибут (и) за допомогою оператора MySQL UPDATE, причому оператор починається з ключового слова UPDATE, за яким слідує ім'я таблиці. Далі йде речення SET, за яким слідує назва стовпця та речення WHERE.
Q # 2) Як ви оновлюєте кілька записів у MySQL?
Відповідь: Як зображено вище, під “Оновити кілька рядків” розділу, ми можемо оновити кілька рядків для одного або декількох стовпців з однаковими або різними значеннями, використовуючи оператор CASE.
Запитання №3) Чи можемо ми використовувати JOIN у запиті на оновлення в MySQL?
Відповідь: Так, MySQL дозволяє використовувати JOIN в операторах UPDATE. Однак це обмежено лише ВНУТРІШНІМ і ЛІВИМ ПРИЄДНАННЯМ.
Q # 4) Звідки завантажувати MySQL?
Відповідь: Ви можете завантажити MySQL версії 8.0 звідси: MySQL .
Q # 5) Яке значення речення WHERE у заяві Update?
Відповідь: Речення WHERE обмежує кількість рядків, які повинні відповідати критеріям пропозиції UPDATE.
Рекомендоване читання = >> Як користуватися Заява MySQL If
Висновок
Таким чином, у цьому підручнику ми дізнались про 7 різних способів виконання операторів MySQL UPDATE.
- Оновіть один стовпець
- Оновити кілька стовпців
- Оновіть за допомогою REPLACE
- Оновіть за допомогою SELECT
- Оновіть кілька рядків
- Оновіть за допомогою INNER JOIN
- Оновіть за допомогою LEFT JOIN
Ми можемо використовувати будь-яку з них, виходячи з наших вимог.
Щасливого читання !!
Рекомендована література
- Різниця між SQL Vs MySQL Vs SQL Server (з прикладами)
- 40 найкращих запитань та відповідей на інтерв’ю MySQL (2021 запитання)
- MongoDB Оновлення та видалення документа з прикладами
- C # Використання твердження та підручник з віртуального методу C # з прикладами
- Підручник з умовних тверджень C #
- Підручник з роздумів про Java з прикладами
- Підручник з Python DateTime із прикладами
- Підручник з Bugzilla: Посібник із інструментів управління дефектами