mysql update statement tutorial update query syntax examples
Овај водич објашњава МиСКЛ УПДАТЕ изјаву заједно са синтаксом упита и примерима. Такође ћете научити различите варијанте наредбе МиСКЛ Упдате Табле:
Као и код било које друге базе података, увек имамо потребу да ажурирамо или изменимо или променимо постојеће податке у табелама. У МиСКЛ имамо израз УПДАТЕ који се може користити за ажурирање или модификовање података у табели.
Помоћу ове наредбе можемо ажурирати једно или више поља. Одједном можемо ажурирати вредности одређене табеле. Коришћењем клаузуле ВХЕРЕ можемо да одредимо услове који се користе посебно када постоји потреба за ажурирањем одређених редова из табеле.
Пре него што наставите, имајте на уму да користимо МиСКЛ верзију 8.0. Можете га преузети са овде.
Шта ћете научити:
- Синтакса табеле МиСКЛ УПДАТЕ
- Наредба табеле МиСКЛ УПДАТЕ
- Често постављана питања и одговори
- Закључак
Синтакса табеле МиСКЛ УПДАТЕ
UPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition;
Објашњење синтаксе:
- Синтакса започиње са кључном речи „УПДАТЕ“, а тиме обавештава МиСКЛ сервер о врсти активности коју треба извршити. Ово је обавезна кључна реч и не може се изоставити.
- Следи име табеле на којој треба извршити акцију ажурирања. Ово је обавезно и не може се изоставити.
- Треће, опет је кључна реч - СЕТ. Ова кључна реч обавештава МиСКЛ сервер о вредностима које треба ажурирати за имена колона. Ово је обавезна кључна реч и не може се изоставити.
- Даље, биће имена ступаца која ће се ажурирати заједно са њиховим одговарајућим вредностима. Ово је такође обавезно и не може се изоставити.
- Затим долази услов ВХЕРЕ, који ограничава или филтрира број циљних редова на које треба применити акцију УПДАТЕ. ВХЕРЕ је такође кључна реч, али необвезна.
Клаузула ВХЕРЕ је, међутим, значајна. Ако није поменуто или ако услов није правилно постављен, тада се неће ажурирати ни табела ни непотребни редови.
Модификатори у изјави табеле УПДАТЕ
Испод су наведени модификатори у УПДАТЕ изјави.
НИЗАК ПРИОРИТЕТ: Овај модификатор обавештава МиСКЛ Енгине да одложи ажурирање све док из табеле не буде очитано повезивање.
ИГНОРЕ: Овај модификатор обавештава МиСКЛ Енгине да настави са операцијом УПДАТЕ чак и ако постоје грешке. Није извршена ниједна акција ажурирања на редовима који су проузроковали грешке.
Пример ажурирања МиСКЛ-а
Доље је дата табела узорка креирана у МиСКЛ-у.
Назив шеме: пацифички
Назив табеле: запослени
Имена колона:
- емпНум - Садржи целобројне вредности броја запослених.
- ластНаме - Садржи варцхар вредности за презиме запосленог.
- фирстНаме - Садржи варцхар вредности за име запосленог.
- е-пошта - садржи вредности варцхар за имејл ИД запосленог.
- дептНум - Садржи варцхар за ИД одељења коме запослени припада.
- плата - Садржи децималне вредности зараде за сваког запосленог.
Назив шеме: пацифички
Назив табеле: одељења
Имена колона:
- дептНум - Садржи варцхар за ИД одељења у оквиру организације.
- град - Садржи име града у којем раде одељења.
- држава - Садржи име државе која одговара граду.
- бонус - садржи процентуалну вредност бонуса.
Наредба табеле МиСКЛ УПДАТЕ
# 1) МиСКЛ ажурирање појединачне колоне
Хајде сада да пронађемо запис који бисмо желели да ажурирамо. Прво ћемо погледати сценарио где морамо ажурирати једну колону помоћу кључне речи УПДАТЕ.
Ево запосленог са бројем запосленог као 1008.
Упит и одговарајући резултати су следећи:
Ажурирајмо ИД е-поште овог запосленог са об@гмаил.цом на оливер.баилеи@гмаил.цом, помоћу кључне речи УПДАТЕ.
АЖУРИРАЊЕ: Кључна реч обавештава МиСКЛ машину да се изјава односи на Ажурирање табеле.
КОМПЛЕТ: Ова клаузула поставља вредност имена ступца поменутог након ове кључне речи на нову вредност.
ГДЕ: Ова клаузула наводи одређени ред који се мора ажурирати.
Након извршавања УПДАТЕ израза, излаз ће приказати статистику у вези са извршењем изјаве.
Следе детаљи који су приказани:
- Изјава која је извршена.
- Поруке које показују број редова који су ажурирани и да ли је било упозорења.
Да бисмо верификовали излаз УПДАТЕ израза, поново извршимо СЕЛЕЦТ израз да бисмо видели промену у ИД-у е-поште.
Снимак табеле пре:
емпНум | име | презиме | е-маил | дептНум |
---|---|---|---|---|
7 | Рим | Италија | ||
1008 | Оливер | Баилеи | об@гмаил.цом | 3 |
Упит:
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ;
Снимак табеле после:
емпНум | име | презиме | е-маил | дептНум |
---|---|---|---|---|
1008 | Оливер | Баилеи | оливер.баилеи@гмаил.цом | 3 |
# 2) МиСКЛ ажурирање више колона
Синтакса за ажурирање више колона помоћу израза УПДАТЕ је иста као и за ажурирање једне колоне. Једна појединачна наредба СЕТ имаће више назива колона заједно са новом вредношћу која се мора поставити, одвојена зарезом.
Погледајмо ред који треба да ажурирамо. Ред са бројем запосленика као 1003.
Овде ћемо покушати да ажурирамо презиме са „Мари“ на „Маргарет“, а затим ИД е-поште са мл@гмаил.цом на маргарет.лангалеи@гмаил.цом.
Следи УПДАТЕ упит. Посматрајте имена колона одвојена зарезом.
Излаз горе наведеног извршења приказује исту статистику као у претходном случају.
Следи излаз за исти запис након извршења УПДАТЕ израза.
Снимак табеле пре:
емпНум | име | презиме | е-маил | дептНум |
---|---|---|---|---|
1003 | Мари | Ланглеи | мл@гмаил.цом | два |
Упит:
UPDATE employees SET firstName = “Margaret”, email = “margaret.lagaley@gmail.com” WHERE empNum = 1003 AND firstName = “Mary” AND email = “ml@gmail.com” ;
Снимак табеле после:
емпНум | име | презиме | е-маил | дептНум |
---|---|---|---|---|
1003 | Маргарет | Ланглеи | маргарет.ланглеи@гмаил.цом | 3 |
# 3) Ажурирање МиСКЛ-а са функцијом РЕПЛАЦЕ
Погледајмо више о коришћењу функције ЗАМЕНИ ЗА АЖУРИРАЊЕ реда у табели. Ево нашег циљног записа који желимо да ажурирамо.
Доле наведени запис односи се на запосленог број 1010. Циљаћемо да ажурирамо ИД е-поште са адресе ја@гмаил.цом на јацоб.армстронг@гмаил.цом.
Користимо следећи УПДАТЕ упит са функцијом РЕПЛАЦЕ која ће ажурирати ИД е-поште.
Следе параметри који се прослеђују у функцији РЕПЛАЦЕ. Сва 3 параметра су положајне природе, тј. Редослед параметара не може се променити.
једанстПараметар - Садржи име ИД-а е-поште.
двандПараметар - Садржи ФРОМ ИД е-поште који треба променити.
3рдПараметар - Садржи ИД е-поште ТО који је нова вредност.
Следи снимак табеле након извршења УПДАТЕ израза:
Снимак табеле пре:
емпНум | име | презиме | е-маил | дептНум |
---|---|---|---|---|
1010 | Јацоб | Армстронг | ја@гмаил.цом | 4 |
Упит:
UPDATE employees SET email = REPLACE(email, “ja@gmail.com”, jacob.armstrong@gmail.com) WHERE empNum = 1010 ;
Снимак табеле после:
емпНум | име | презиме | е-маил | дептНум |
---|---|---|---|---|
1010 | Јацоб | Армстронг | јацоб.армстронг@гмаил.цом | 4 |
# 4) МиСКЛ УПДАТЕ помоћу СЕЛЕЦТ изјаве
У овом типу УПДАТЕ, нова вредност за ступац који се ажурира дохваћа се наредбом СЕЛЕЦТ у подупиту. Дакле, узмимо пример овде из наше табеле „запослени“. Ево нашег циљног записа који желимо да ажурирамо.
У овом случају ћемо ажурирати број одељења, тј. Ступац дептНум, користећи табеле одељења. Ако погледамо табелу одељења, дептНум = 5 одговара Берлину. Пребацимо овог запосленог у Шарлот на дептНум = 2.
Да би се постигао овај задатак, користи се следећа УПДАТЕ изјава:
Да бисмо проверили излаз нашег УПДАТЕ израза, извршимо СЕЛЕЦТ изјава.
Као што је горе приказано, вредност за ступац дептНум је ажурирана на „2“.
Снимак табеле пре:
емпНум | име | презиме | е-маил | дептНум |
---|---|---|---|---|
1005 | Петер | читати | пл@гмаил.цом | 5 |
дептНум | Град | Цоунтри |
---|---|---|
један | Њу Јорк | Америка |
два | Цхарлотте | Америка |
3 | Цхицаго | Америка |
4 | Лондон | Енглеска |
5 | Берлин | Немачка |
6 | Мумбаи | Индија |
Упит:
Снимак табеле после:
емпНум име презиме е-маил дептНум 7 Рим Италија НУЛА 1005 Петер читати пл@гмаил.цом два
# 5) МиСКЛ УПДАТЕ Више редова
Понекад се можемо суочити са захтевом да морамо ажурирати један или више ступаца за више редова са различитим вредностима.
На пример, желимо да дамо одређени износ одељења за бонусе, тј. сви запослени у одељењу треба да добију одређени износ бонуса.
како писати аутоматизоване тест случајеве
Општа синтакса је следећа:
UPDATE TAB1 SET COL2 = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 …. ELSE result1 END;
Да бисмо ово објаснили примером, дозволите да додамо још једну колону у табеле одељења. У табелу одељења додаћемо колону „бонус“. Идеја је доделити проценат бонуса сваком одељењу и повећати плату запослених за онај проценат који одговара сваком одељењу.
Да бисмо то постигли, извршићемо следеће изразе АЛТЕР да бисмо додали колону:
ALTER TABLE departments ADD COLUMN bonus decimal(5,2);
Следећа би била структура табеле након наведених промена. Нове колоне ће бити додате са НУЛА као вредност.

Затим напишимо УПДАТЕ упит који ће ажурирати проценат бонуса за свако одељење.

Након извршења горње изјаве, следи снимак са ажурираним вредностима за Бонус колону.

Снимак табеле пре:
дептНум Град Цоунтри Бонус један Њу Јорк Америка НУЛА два Цхарлотте Америка НУЛА 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;
Снимак табеле после:
дептНум Град Цоунтри Бонус 7 Рим Италија 18 један Њу Јорк Америка 3 два Цхарлотте Америка 5 3 Цхицаго Америка 8 4 Лондон Енглеска 10 5 Берлин Немачка 13 6 Мумбаи Индија петнаест
# 6) Ажурирање МиСКЛ-а помоћу кључне речи ИННЕР ЈОИН
ПРИДРУЖИТИ је једна од најважнијих кључних речи у СКЛ изразима. Обично сте га можда користили у наредби СЕЛЕЦТ.
У основи постоје четири врсте израза ЈОИН:
- ИННЕР ЈОИН: Дохваћа записе који су уобичајени у обе табеле.
- ЛЕФТ ЈОИН: Дохваћа све записе из табеле на левој страни кључне речи и одговарајуће записе из табеле на десној страни кључне речи.
- ПРАВО ПРИДРУЖИВАЊЕ: Дохваћа све записе из табеле на десној страни кључне речи и одговарајуће записе из табеле на левој страни кључне речи.
- ОУТЕР ЈОИН: Дохваћа све записе из обе табеле, са одговарајућим неусклађеним записима представљеним као НУЛЛ.
МиСКЛ даје јединствену прилику да ЈОИН користи чак и у УПДАТЕ изразима за извршавање ажурирања у више табела. Међутим, ограничено је само на УНУТРАШЊЕ ПРИДРУЖИВАЊЕ и ПРИДРУЖИВАЊЕ ЛЕВО.
Генеричка синтакса израза УПДАТЕ помоћу кључне речи ЈОИН је следећа:
UPDATE TAB1, TAB2, (INNER JOIN | LEFT JOIN) TAB1 ON TAB1.COL1 = TAB2.COL1 SET TAB1.COL2 = TAB2.COL2, TAB2.COL3 = expr WHERE condition
- Овде изјава УПДАТЕ очекује три ставке података.
- Имена табела, ТАБ1 и ТАБ2, на којима се изводи спајање.
- Тип ПРИДРУЖЕЊА који намеравамо да изведемо, УНУТАРЊИ или ЛЕВИ.
- Затим следи наредба СЕТ помоћу које можемо ажурирати вредности колона у / или ТАБ1 и ТАБ2.
- На крају, клаузула ВХЕРЕ за ажурирање само оних редова који одговарају нашим критеријумима.
Да бисмо ово објаснили примером, дозволите да додамо још једну колону у табелу запослених. У табелу Запослени додаћемо колону „плата“. Идеја је повећати плату запослених за бонус процентуалну вредност која је присутна у бонус колони табеле одељења.
Да бисмо то постигли, извршићемо следеће изразе АЛТЕР да бисмо додали колону:
ALTER TABLE employees ADD COLUMN salarydecimal(7,2);
Затим ћемо попунити два нова поља која смо додали. Пост попуњава вредности, следећи је садржај табеле.
Табела запослених:
емпНум име презиме е-маил дептНум Плата 1007 Сцхмитт Џејмс јс@гмаил.цом 4 18000 1001 Андревс Јацк ја@гмаил.цом један 3000 1002 Сцхватз Мике мс@гмаил.цом један 5000 1003 Ланглеи Маргарет маргарет.ланглеи@гмаил.цом два 8000 1004 Харера Сандра сх@гмаил.цом један 10.000 1005 читати Петер пл@гмаил.цом два 13000 1006 Кеитх Јенни јк@гмаил.цом два 15000 1008 Баилеи Оливер оливер.баилеи@гмаил.цом 3 21000 1009 Куп Харри хб@гмаил.цом 5 24000 1010 Армстронг Јацоб јацоб.армстронг@гмаил.цом 4 27000
Сада, употребимо кључну реч ЈОИН и ажурирамо зараду свих запослених са процентом бонуса у табели одељења. Овде је дептНум кључ на којем ће се две табеле подударати.
Ф следећи је приказ зарада запослених до сада:

Снимак из табеле одељења је следећи:

Следи УПДАТЕ упит који ће ажурирати зараду запослених на основу процента бонуса у табелама одељења на основу колоне кључа дептНум.

Сада, проверимо плату сваког запосленог после пешачења.

Ако га упоредите са претходним снимком, онда ћете лако разумети проценат бонуса који се додаје на плату.
Сви запослени морају навијати!
Снимак табеле пре:
емпНум име презиме е-маил дептНум Плата 1007 Сцхмитт Џејмс јс@гмаил.цом 4 18000 1001 Андревс Јацк ја@гмаил.цом један 3000 1002 Сцхватз Мике мс@гмаил.цом један 5000 1003 Ланглеи Маргарет маргарет.ланглеи@гмаил.цом два 8000 1004 Харера Сандра сх@гмаил.цом један 10.000 1005 читати Петер пл@гмаил.цом два 13000 1006 Кеитх Јенни јк@гмаил.цом два 15000 1008 Баилеи Оливер оливер.баилеи@гмаил.цом 3 21000 1009 Куп Харри хб@гмаил.цом 5 24000 1010 Армстронг Јацоб јацоб.армстронг@гмаил.цом 4 27000
дептНум Град Цоунтри Бонус 7 Рим Италија 18 један Њу Јорк Америка 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) ;
Снимак табеле после:
емпНум име презиме е-маил дептНум Плата 1007 Сцхмитт Џејмс јс@гмаил.цом 4 21780 1001 Андревс Јацк ја@гмаил.цом један 3182.7 1002 Сцхватз Мике мс@гмаил.цом један 5304.5 1003 Ланглеи Маргарет маргарет.ланглеи@гмаил.цом два 8820 1004 Харера Сандра сх@гмаил.цом један 10609 1005 читати Петер пл@гмаил.цом два 14332.5 1006 Кеитх Јенни јк@гмаил.цом два 16537.5 1008 Баилеи Оливер оливер.баилеи@гмаил.цом 3 24494.4 1009 Куп Харри хб@гмаил.цом 5 30645.6 1010 Армстронг Јацоб јацоб.армстронг@гмаил.цом 4 32670
# 7) МиСКЛ УПДАТЕ помоћу ЛЕФТ ЈОИН кључне речи
Као што је објашњено у претходном одељку, постоје два типа ПРИДРУЖИВАЊА која су дозвољена у МиСКЛ УПДАТЕ. Већ смо видели УПДАТЕ помоћу ИННЕР ЈОИН.
Почнимо са УПДАТЕ користећи ЛЕФТ ЈОИН.
Пример:
Имамо новог запосленика који тек треба да буде додељен неком одељењу. Али свим новим запосленима морамо дати бонус од 1%. Сада, пошто ново запошљавање није додељено ниједном одељењу, из те табеле нећемо моћи да добијемо информације о проценту бонуса. У таквом случају ћемо АЖУРИРАТИ плату за новозапослене особе коришћењем ЛЕВО ЈОИН.
Да бисмо то постигли, додајте новог запосленог у базу података запослених.
INSERT INTO employees(empNum, firstName, lastName, email, deptNum, Salary) VALUES (1011, “Tom”, “Hanks”, th@gmail.com, NULL, 10000.00);
Следи нови запис који смо додали:

Табела запослених:
емпНум име презиме е-маил дептНум Плата 1007 Сцхмитт Џејмс јс@гмаил.цом 4 21780 1001 Андревс Јацк ја@гмаил.цом један 3183 1002 Сцхватз Мике мс@гмаил.цом један 5305 1003 Ланглеи Маргарет маргарет.ланглеи@гмаил.цом два 8820 1004 Харера Сандра сх@гмаил.цом један 10609 1005 читати Петер пл@гмаил.цом два 14333 1006 Кеитх Јенни јк@гмаил.цом два 16538 1008 Баилеи Оливер оливер.баилеи@гмаил.цом 3 24494 1009 Куп Харри хб@гмаил.цом 5 30646 1010 Армстронг Јацоб јацоб.армстронг@гмаил.цом 4 32670 1011 Ханкс Том тх@гмаил.цом НУЛА 10.000
Даље, Тому ћемо дати бонус од 1% поврх његове зараде помоћу изјаве УПДАТЕ са клаузулом ЛЕФТ ЈОИН:

Доље је дата плата ТОМ-а након пешачења.

Ако га упоредите са претходним снимком, лако ћете разумети бонус% додат на плату.
Снимак табеле пре:
емпНум име презиме е-маил дептНум Плата 1011 Том Ханкс тх@гмаил.цом НУЛА 10.000
Упит:
UPDATE employees LEFT JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * 1)/100) WHERE employees.deptNum IS NULL ;
Снимак табеле после:
емпНум име презиме е-маил дептНум Плата 1011 Том Ханкс тх@гмаил.цом НУЛА 10100
Препоручено читање = >> МиСКЛ Јоинс
Често постављана питања и одговори
П # 1) Како да ажурирам атрибуте у МиСКЛ?
Одговор: Атрибуте можемо ажурирати помоћу МиСКЛ УПДАТЕ израза, при чему израз почиње с кључном речи УПДАТЕ иза које следи име табеле. Следећа је клаузула СЕТ праћена називом колоне и клаузулом ВХЕРЕ.
П # 2) Како ажурирате више записа у МиСКЛ-у?
Одговор: Као што је приказано горе, испод „Ажурирање више редова“ одељку, можемо да ажурирамо више редова за једну или више колона са истим или различитим вредностима помоћу ЦАСЕ израза.
П # 3) Можемо ли користити ЈОИН у упиту за ажурирање у МиСКЛ-у?
Одговор: Да, МиСКЛ дозвољава употребу ЈОИН у УПДАТЕ изразима. Међутим, ограничено је само на ИННЕР и ЛЕФТ ЈОИН.
П # 4) Одакле преузети МиСКЛ?
Одговор: МиСКЛ верзију 8.0 можете преузети овде: МиСКЛ .
П # 5) Који је значај клаузуле ВХЕРЕ у изјави Ажурирање?
Одговор: Клаузула ВХЕРЕ ограничава број редова који би требало да се уклапају у критеријуме клаузуле УПДАТЕ.
Предложено читање = >> Како се користи МиСКЛ Иф Статемент
Закључак
Тако смо у овом упутству научили о 7 различитих начина извршавања МиСКЛ УПДАТЕ израза.
- Ажурирајте једну колону
- Ажурирајте више колона
- Ажурирајте помоћу РЕПЛАЦЕ
- Ажурирајте помоћу СЕЛЕЦТ
- Ажурирајте више редова
- Ажурирајте помоћу ИННЕР ЈОИН
- Ажурирајте помоћу ЛЕФТ ЈОИН
Можемо да користимо било које од ових, на основу наших захтева.
Срећно читање !!
Препоручено читање
- Разлика између СКЛ Вс МиСКЛ Вс СКЛ Сервер (са примерима)
- 40 најбољих питања и одговора за интервју за МиСКЛ (2021 питање)
- МонгоДБ Ажурирање и брисање докумената са примерима
- Ц # Коришћење изјаве и Водич за виртуелне методе са примерима
- Водич о условним изјавама за Ц #
- Водич за Јава рефлексију са примерима
- Водич за Питхон ДатеТиме са примерима
- Водич за Бугзилла: Практични приручник за алат за управљање недостацима