mysql update statement tutorial update query syntax examples
Ta vadnica pojasnjuje izjavo MySQL UPDATE skupaj s sintakso poizvedbe in primeri. Spoznali boste tudi različne različice ukaza MySQL Update Table:
Kot pri kateri koli drugi bazi podatkov tudi v tabelah vedno obstaja potreba po posodobitvi, spreminjanju ali spreminjanju obstoječih podatkov. V MySQL imamo stavek UPDATE, s katerim lahko posodobimo ali spremenimo podatke v tabeli.
S tem ukazom lahko posodobimo eno ali več polj. Vrednosti posamezne tabele lahko posodobimo hkrati. Z uporabo stavka WHERE lahko določimo pogoje, ki se uporabljajo, zlasti kadar je treba posodobiti določene vrstice iz tabele.
Pred nadaljevanjem upoštevajte, da uporabljamo MySQL različice 8.0. Lahko ga prenesete iz tukaj.
Kaj se boste naučili:
kako odpreti torrent datoteko
- Sintaksa tabele MySQL UPDATE
- Ukaz tabele MySQL UPDATE
- # 1) MySQL Posodabljanje enega stolpca
- # 2) MySQL Posodobi več stolpcev
- # 3) Posodobitev MySQL s funkcijo REPLACE
- # 4) UPORABA MySQL z uporabo izjave SELECT
- # 5) MySQL UPDATE Več vrstic
- # 6) POSODOBITEV MySQL z uporabo ključne besede INNER JOIN
- # 7) POSODOBITEV MySQL z uporabo LEVE PRIDRUŽITVE ključne besede
- Pogosta vprašanja in odgovori
- Zaključek
Sintaksa tabele MySQL UPDATE
UPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition;
Pojasnilo sintakse:
- Sintaksa se začne s ključno besedo »UPDATE«, s čimer strežnik MySQL obvešča o vrsti dejavnosti, ki jo je treba izvesti. To je obvezna ključna beseda in je ni mogoče izpustiti.
- Nato sledi ime tabele, v kateri je treba izvesti dejanje posodobitve. To je obvezno in ga ni mogoče izpustiti.
- Tretjič, spet je ključna beseda - SET. Ta ključna beseda obvešča strežnik MySQL o vrednostih, ki jih je treba posodobiti za imena stolpcev. To je obvezna ključna beseda in je ni mogoče izpustiti.
- Nato bodo imena stolpcev, ki jih je treba posodobiti, skupaj z njihovimi ustreznimi vrednostmi. To je tudi obvezno in ga ni mogoče izpustiti.
- Nato pride pogoj WHERE, ki omeji ali filtrira število ciljnih vrstic, v katerih je treba uporabiti dejanje UPDATE. WHERE je tudi ključna beseda, vendar neobvezna.
Klavzula WHERE pa je pomembna. Če ni omenjeno ali če pogoj ni pravilno nastavljen, se ne bodo posodobile niti tabela niti nezaželene vrstice.
Modifikatorji v izjavi UPDATE tabele
Spodaj so navedeni modifikatorji v stavku UPDATE.
LOW_PRIORITY: Ta modifikator obvesti MySQL Engine, da odloži posodobitev, dokler iz tabele ni branja povezave.
IGNORE: Ta modifikator obvesti MySQL Engine, da nadaljuje z operacijo UPDATE, tudi če pride do napak. V vrsticah, ki so povzročile napake, se ne izvede nobeno dejanje posodobitve.
Primer posodobitve MySQL
Spodaj je vzorčna tabela, ustvarjena v MySQL.
Ime sheme: pacifiški
Ime tabele: zaposlenih
Imena stolpcev:
- empNum - Vsebuje celoštevilčne vrednosti za število zaposlenih.
- lastName - Vsebuje vrednosti varchar za priimek zaposlenega.
- firstName - Vsebuje vrednosti varchar za ime zaposlenega.
- e-pošta - vsebuje vrednosti varchar za e-poštni ID zaposlenega.
- deptNum - Vsebuje varchar za ID oddelka, ki mu pripada zaposleni.
- plača - vsebuje decimalne vrednosti plače za vsakega zaposlenega.
Ime sheme: pacifiški
Ime tabele: oddelki
Imena stolpcev:
- deptNum - Vsebuje varchar za ID oddelka znotraj organizacije.
- mesto - Vsebuje ime mesta, v katerem delujejo oddelki.
- country - Vsebuje ime države, ki ustreza mestu.
- bonus - vsebuje odstotno vrednost bonusa.
Ukaz tabele MySQL UPDATE
# 1) MySQL Posodabljanje enega stolpca
Zdaj pa poiščimo zapis, ki bi ga radi posodobili. Najprej si bomo ogledali scenarij, v katerem moramo posodobiti posamezen stolpec s pomočjo ključne besede UPDATE.
Tu je uslužbenec s številko zaposlenega 1008.
Poizvedba in ustrezni rezultati so naslednji:
Posodobimo e-poštni ID tega zaposlenega z ob@gmail.com na oliver.bailey@gmail.com s ključno besedo UPDATE.
NADGRADNJA: Ključna beseda sporoča motorju MySQL, da stavek o posodobitvi tabele.
SET: Ta klavzula nastavi vrednost imena stolpca, omenjenega za to ključno besedo, na novo vrednost.
KJE: Ta klavzula določa določeno vrstico, ki jo je treba posodobiti.
Po izvedbi stavka UPDATE bo na izhodu prikazana statistika, povezana z izvajanjem stavka.
Spodaj so prikazane podrobnosti:
- Izjava, ki je bila izvršena.
- Sporočila, ki prikazujejo število vrstic, ki so bile posodobljene, in če je bilo opozoril.
Da bi preverili izpis stavka UPDATE, znova zaženimo stavek SELECT, da vidimo spremembo e-poštnega ID-ja.
Posnetek tabele pred:
empNum | ime | priimek | E-naslov | deptNum |
---|---|---|---|---|
7. | Rim | Italija | ||
1008 | Oliver | Bailey | ob@gmail.com | 3. |
Poizvedba:
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ;
Posnetek tabele po:
empNum | ime | priimek | E-naslov | deptNum |
---|---|---|---|---|
1008 | Oliver | Bailey | oliver.bailey@gmail.com | 3. |
# 2) MySQL Posodobi več stolpcev
Sintaksa za posodobitev več kot enega stolpca z uporabo stavka UPDATE je enaka sintaksi posodobitve posameznega stolpca. En sam stavek SET bo imel več imen stolpcev skupaj z novo vrednostjo, ki jo je treba nastaviti, ločeno z vejico.
Oglejmo si vrstico, ki jo moramo posodobiti. Vrstica s številko zaposlenega kot 1003.
Tu bomo poskusili posodobiti lastName z »Mary« na »Margaret« in nato ID e-pošte z ml@gmail.com na margaret.langaley@gmail.com.
Sledi poizvedba UPDATE. Upoštevajte imena stolpcev, ločena z vejico.
Rezultat zgornje izvedbe prikazuje enako statistiko kot v prejšnjem primeru.
Sledi izhod za isti zapis po izvedbi stavka UPDATE.
Posnetek tabele pred:
empNum | ime | priimek | E-naslov | deptNum |
---|---|---|---|---|
1003 | Mary | Langley | ml@gmail.com | dva |
Poizvedba:
UPDATE employees SET firstName = “Margaret”, email = “margaret.lagaley@gmail.com” WHERE empNum = 1003 AND firstName = “Mary” AND email = “ml@gmail.com” ;
Posnetek tabele po:
empNum | ime | priimek | E-naslov | deptNum |
---|---|---|---|---|
1003 | Margaret | Langley | margaret.langley@gmail.com | 3. |
# 3) Posodobitev MySQL s funkcijo REPLACE
Poglejmo več o uporabi funkcije REPLACE za posodabljanje vrstice v tabeli. Tu je naš ciljni zapis, ki ga želimo posodobiti.
Spodnji zapis je za številko zaposlenega 1010. Namenjeni bomo posodobitvi e-poštnega ID-ja z ja@gmail.com na jacob.armstrong@gmail.com.
Uporabimo naslednjo poizvedbo UPDATE s funkcijo REPLACE, ki bo posodobila ID e-pošte.
Sledijo parametri, ki se posredujejo v funkciji REPLACE. Vsi 3 parametri so pozicijske narave, tj. Vrstnega reda parametrov ni mogoče spremeniti.
enostParameter - Vsebuje ime e-poštnega ID-ja.
dvandParameter - Vsebuje e-poštni ID FROM, ki ga je treba spremeniti.
3.rdParameter - Vsebuje e-poštni ID TO, ki je nova vrednost.
Sledi posnetek tabele po izvedbi stavka UPDATE:
Posnetek tabele pred:
empNum | ime | priimek | E-naslov | deptNum |
---|---|---|---|---|
1010 | Jacob | Armstrong | ja@gmail.com | 4. |
Poizvedba:
UPDATE employees SET email = REPLACE(email, “ja@gmail.com”, jacob.armstrong@gmail.com) WHERE empNum = 1010 ;
Posnetek tabele po:
empNum | ime | priimek | E-naslov | deptNum |
---|---|---|---|---|
1010 | Jacob | Armstrong | jacob.armstrong@gmail.com | 4. |
# 4) UPORABA MySQL z uporabo izjave SELECT
Pri tej vrsti UPDATE je nova vrednost za stolpec, ki ga je treba posodobiti, pridobljena s stavkom SELECT v podpoizvedbi. Torej, vzemimo primer tukaj iz naše tabele 'zaposlenih'. Tu je naš ciljni zapis, ki ga želimo posodobiti.
V tem primeru bomo s pomočjo tabel oddelkov posodobili številko oddelka, to je stolpec deptNum. Če pogledamo tabelo oddelkov, deptNum = 5 ustreza Berlinu. Premaknimo tega uslužbenca v Charlotte na deptNum = 2.
Za dosego te naloge se uporablja naslednji stavek UPDATE:
Da bi preverili izhod našega stavka UPDATE, zaženimo IZBERI izjavo.
Kot je prikazano zgoraj, je bila vrednost stolpca deptNum posodobljena na '2'.
Posnetek tabele pred:
empNum | ime | priimek | E-naslov | deptNum |
---|---|---|---|---|
1005 | Peter | preberite | pl@gmail.com | 5. |
deptNum | Mesto | Država |
---|---|---|
eno | New York | Združene države |
dva | Charlotte | Združene države |
3. | Chicago | Združene države |
4. | London | Anglija |
5. | Berlin | Nemčija |
6. | Mumbaj | Indija |
Poizvedba:
Posnetek tabele po:
empNum ime priimek E-naslov deptNum 7. Rim Italija NIČ 1005 Peter preberite pl@gmail.com dva
# 5) MySQL UPDATE Več vrstic
Včasih se lahko srečamo z zahtevo, pri kateri moramo posodobiti enega ali več stolpcev za več vrstic z različnimi vrednostmi.
Na primer, želimo dati določen znesek oddelka za premije, torej vsi zaposleni v oddelku bi morali dobiti določen znesek bonusa.
Splošna sintaksa je naslednja:
UPDATE TAB1 SET COL2 = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 …. ELSE result1 END;
Če to razložimo s primerom, v tabele oddelkov lahko dodamo še en stolpec. V tabelo oddelkov bomo dodali stolpec 'bonus'. Ideja je dodeliti odstotek dodatka vsakemu oddelku in povišati plačo zaposlenih za tisti odstotek, ki ustreza vsakemu oddelku.
Da bi to dosegli, bomo za dodajanje stolpca izvedli naslednje stavke ALTER:
ALTER TABLE departments ADD COLUMN bonus decimal(5,2);
V nadaljevanju bi bila prikazana struktura tabel po zgornjih spremembah. Novi stolpci bodo dodani z NIČ kot vrednost.
orodja za razbijanje gesel za Windows 7

Nato napišimo poizvedbo UPDATE, ki bo posodobila odstotek bonusov za vsak oddelek.

Po izvedbi zgornjega stavka je naslednji posnetek s posodobljenimi vrednostmi za stolpec Bonus.

Posnetek tabele pred:
deptNum Mesto Država Bonus eno New York Združene države NIČ dva Charlotte Združene države NIČ 3. Chicago Združene države NIČ 4. London Anglija NIČ 5. Berlin Nemčija NIČ 6. Mumbaj Indija NIČ
Poizvedba:
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;
Posnetek tabele po:
deptNum Mesto Država Bonus 7. Rim Italija 18. eno New York Združene države 3. dva Charlotte Združene države 5. 3. Chicago Združene države 8. 4. London Anglija 10. 5. Berlin Nemčija 13. 6. Mumbaj Indija petnajst
# 6) POSODOBITEV MySQL z uporabo ključne besede INNER JOIN
PRIDRUŽITE SE je ena najpomembnejših ključnih besed v stavkih SQL. Običajno ste ga morda uporabili v stavku SELECT.
Obstajajo v bistvu štiri vrste stavkov JOIN:
- INNER JOIN: Pridobi zapise, ki so pogosti v obeh tabelah.
- LEVO PRIDRUŽITEV: Pridobi vse zapise iz tabele na levi strani ključne besede in ujemajoče se zapise iz tabele na desni strani ključne besede.
- PRAVO PRIDRUŽITEV: Pridobi vse zapise iz tabele na desni strani ključne besede in ujemajoče se zapise iz tabele na levi strani ključne besede.
- ZUNANJI PRIDRUŽITEV: Pridobi vse zapise iz obeh tabel, z ustreznimi neskladnimi zapisi, predstavljenimi kot NULL.
MySQL daje edinstveno priložnost za uporabo JOIN-a tudi v stavkih UPDATE za izvajanje posodobitev med tabelami. Vendar pa je omejeno samo na NOTRANJE PRIDRUŽITEV in PRENOS LEVE.
Splošna sintaksa stavka UPDATE z uporabo ključne besede JOIN je naslednja:
UPDATE TAB1, TAB2, (INNER JOIN | LEFT JOIN) TAB1 ON TAB1.COL1 = TAB2.COL1 SET TAB1.COL2 = TAB2.COL2, TAB2.COL3 = expr WHERE condition
- Tu stavek UPDATE pričakuje tri podatkovne postavke.
- Imena tabel, TAB1 in TAB2, na katerih se izvaja združevanje.
- Vrsta PRIDRUŽITVE, ki jo nameravamo izvesti, NOTRANJA ali LEVA.
- Nato sledi ukaz SET, s pomočjo katerega lahko posodobimo vrednosti stolpcev v / ali TAB1 in TAB2.
- Nazadnje tudi klavzula WHERE, ki posodablja samo tiste vrstice, ki ustrezajo našim merilom.
Če želite to pojasniti s primerom, v tabelo Zaposleni dodajte še en stolpec. V tabelo Zaposleni bomo dodali stolpec »plača«. Ideja je povišati plačo zaposlenih za odstotek vrednosti dodatka, ki je prisoten v stolpcu z bonusi v tabeli oddelkov.
Da bi to dosegli, bomo za dodajanje stolpca izvedli naslednje stavke ALTER:
ALTER TABLE employees ADD COLUMN salarydecimal(7,2);
Nato bomo izpolnili dve novi polji, ki smo jih dodali. Ob zapolnitvi vrednosti, v nadaljevanju je vsebina tabele.
Tabela zaposlenih:
empNum ime priimek E-naslov deptNum Plača 1007 Schmitt James js@gmail.com 4. 18000 1001 Andrews Jack ja@gmail.com eno 3000 1002 Schwatz Mike ms@gmail.com eno 5000 1003 Langley Margaret margaret.langley@gmail.com dva 8000 1004 Harera Sandra sh@gmail.com eno 10.000 1005 preberite Peter pl@gmail.com dva 13000 1006 Keith Jenny jk@gmail.com dva 15000 1008 Bailey Oliver oliver.bailey@gmail.com 3. 21000 1009 Pokal Harry hb@gmail.com 5. 24000 1010 Armstrong Jacob jacob.armstrong@gmail.com 4. 27000
Zdaj pa uporabimo ključno besedo JOIN in v tabeli oddelkov posodobimo plačo vseh zaposlenih z odstotkom dodatka. Tu je deptNum ključ, na katerem se bosta ujemali obe tabeli.
F naslednji je trenutek trenutnih plač zaposlenih:

Posnetek iz tabele oddelkov je naslednji:

ai software se nauči izdelovati ai software
Sledi poizvedba UPDATE, ki bo posodobila plačo zaposlenih na podlagi odstotka bonusov v tabelah oddelkov na podlagi stolpca s ključem deptNum.

Zdaj pa preverimo plačo vsakega zaposlenega po pohodu.

Če ga primerjate s prejšnjim posnetkom, potem lahko zlahka razumete odstotek dodatka k plači.
Vsi zaposleni morajo navijati!
Posnetek tabele pred:
empNum ime priimek E-naslov deptNum Plača 1007 Schmitt James js@gmail.com 4. 18000 1001 Andrews Jack ja@gmail.com eno 3000 1002 Schwatz Mike ms@gmail.com eno 5000 1003 Langley Margaret margaret.langley@gmail.com dva 8000 1004 Harera Sandra sh@gmail.com eno 10.000 1005 preberite Peter pl@gmail.com dva 13000 1006 Keith Jenny jk@gmail.com dva 15000 1008 Bailey Oliver oliver.bailey@gmail.com 3. 21000 1009 Pokal Harry hb@gmail.com 5. 24000 1010 Armstrong Jacob jacob.armstrong@gmail.com 4. 27000
deptNum Mesto Država Bonus 7. Rim Italija 18. eno New York Združene države 3. dva Charlotte Združene države 5. 3. Chicago Združene države 8. 4. London Anglija 10. 5. Berlin Nemčija 13. 6. Mumbaj Indija petnajst
Poizvedba:
UPDATE employees INNER JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * bonus)/100) ;
Posnetek tabele po:
empNum ime priimek E-naslov deptNum Plača 1007 Schmitt James js@gmail.com 4. 21780 1001 Andrews Jack ja@gmail.com eno 3182,7 1002 Schwatz Mike ms@gmail.com eno 5304,5 1003 Langley Margaret margaret.langley@gmail.com dva 8820 1004 Harera Sandra sh@gmail.com eno 10609 1005 preberite Peter pl@gmail.com dva 14332,5 1006 Keith Jenny jk@gmail.com dva 16537,5 1008 Bailey Oliver oliver.bailey@gmail.com 3. 24494.4 1009 Pokal Harry hb@gmail.com 5. 30645,6 1010 Armstrong Jacob jacob.armstrong@gmail.com 4. 32670
# 7) POSODOBITEV MySQL z uporabo LEVE PRIDRUŽITVE ključne besede
Kot je razloženo v prejšnjem poglavju, sta v programu MySQL UPDATE dovoljeni dve vrsti PRIDRUŽITEV. Z UPORABO INNER JOIN smo že videli UPDATE.
Začnimo z UPDATE z uporabo LEVO PRIDRUŽITEV.
Primer:
Imamo novega najemnika, ki še ni dodeljen nobenemu oddelku. Toda vsem novo zaposlenim moramo dati bonus v višini 1%. Ker novi najem ni dodeljen nobenemu oddelku, iz te tabele ne bomo mogli dobiti nobenih informacij o odstotku bonusa. V takem primeru bomo plačo za novo zaposlene POSODOBILI Z LEVO PRIDRUŽITEV.
Da bi to dosegli, v bazo podatkov o zaposlenih dodajte novega zaposlenega.
INSERT INTO employees(empNum, firstName, lastName, email, deptNum, Salary) VALUES (1011, “Tom”, “Hanks”, th@gmail.com, NULL, 10000.00);
Sledi nov zapis, ki smo ga dodali:

Tabela zaposlenih:
empNum ime priimek E-naslov deptNum Plača 1007 Schmitt James js@gmail.com 4. 21780 1001 Andrews Jack ja@gmail.com eno 3183 1002 Schwatz Mike ms@gmail.com eno 5305 1003 Langley Margaret margaret.langley@gmail.com dva 8820 1004 Harera Sandra sh@gmail.com eno 10609 1005 preberite Peter pl@gmail.com dva 14333 1006 Keith Jenny jk@gmail.com dva 16538 1008 Bailey Oliver oliver.bailey@gmail.com 3. 24494 1009 Pokal Harry hb@gmail.com 5. 30646 1010 Armstrong Jacob jacob.armstrong@gmail.com 4. 32670 1011 Hanks Tom th@gmail.com NIČ 10.000
Nato bomo Tomu dodali 1% dodatka na plačo z uporabo izjave UPDATE s klavzulo LEFT JOIN:

Spodaj je plača TOM po pohodu.

Če ga primerjate s prejšnjim posnetkom, lahko zlahka razumete bonus%, dodan plači.
Posnetek tabele pred:
empNum ime priimek E-naslov deptNum Plača 1011 Tom Hanks th@gmail.com NIČ 10.000
Poizvedba:
UPDATE employees LEFT JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * 1)/100) WHERE employees.deptNum IS NULL ;
Posnetek tabele po:
empNum ime priimek E-naslov deptNum Plača 1011 Tom Hanks th@gmail.com NIČ 10100
Priporočeno branje = >> MySQL se pridruži
Pogosta vprašanja in odgovori
V # 1) Kako posodobim atribute v MySQL?
Odgovor: Atribute lahko posodobimo z uporabo stavka MySQL UPDATE, pri čemer se stavek začne s ključno besedo UPDATE, ki ji sledi ime tabele. Nato je stavek SET, ki mu sledi ime stolpca in stavek WHERE.
V # 2) Kako posodobite več zapisov v MySQL?
Odgovor: Kot je prikazano zgoraj, pod »Posodobi več vrstic« v razdelku lahko z uporabo stavka CASE posodobimo več vrstic za enega ali več stolpcev z enakimi ali različnimi vrednostmi.
V # 3) Ali lahko uporabimo JOIN v poizvedbi za posodobitev v MySQL?
Odgovor: Da, MySQL omogoča uporabo JOIN v stavkih UPDATE. Vendar je omejeno samo na INNER in LEFT JOIN.
V # 4) Od kod prenesti MySQL?
Odgovor: MySQL različice 8.0 lahko prenesete od tukaj: MySQL .
V # 5) Kakšen je pomen klavzule WHERE v stavku Update?
Odgovor: Stavek WHERE omejuje število vrstic, ki bi morale ustrezati merilom stavka UPDATE.
Predlagano branje = >> Kako uporabljati Izjava MySQL If
Zaključek
Tako smo v tej vadnici spoznali 7 različnih načinov izvajanja stavkov MySQL UPDATE.
- Posodobite en stolpec
- Posodobi več stolpcev
- Posodobite z REPLACE
- Posodobite z uporabo SELECT
- Posodobi več vrstic
- Posodobite z INNER JOIN
- Posodobite z LEVO PRIDRUŽITEV
Na podlagi naših zahtev lahko uporabimo katero koli od teh.
Veselo branje !!
Priporočeno branje
- Razlika med SQL Vs MySQL Vs SQL Server (s primeri)
- 40 najboljših vprašanj in odgovorov za intervju z MySQL (2021 vprašanj)
- MongoDB Posodobi in izbriši dokument s primeri
- C # Uporaba izjave in vaje o virtualni metodi C # s primeri
- Vadnica o pogojnih izjavah C #
- Vadnica za odsev Java s primeri
- Vadnica Python DateTime s primeri
- Vadnica za Bugzilla: Praktična vadnica o orodju za upravljanje napak