mysql update statement tutorial update query syntax examples
Ovaj vodič objašnjava MySQL UPDATE izjavu zajedno sa sintaksom upita i primjerima. Također ćete naučiti različite varijante naredbe tablice ažuriranja MySQL:
Kao i kod bilo koje druge baze podataka, uvijek imamo potrebu ažurirati ili izmijeniti ili promijeniti postojeće podatke u tablicama. U MySQL imamo izraz UPDATE koji se može koristiti za ažuriranje ili izmjenu podataka u tablici.
Pomoću ove naredbe možemo ažurirati jedno ili više polja. Odjednom možemo ažurirati vrijednosti određene tablice. Korištenjem klauzule WHERE možemo odrediti upotrijebljene uvjete, posebno kada postoji potreba za ažuriranjem određenih redaka iz tablice.
Prije nastavka, imajte na umu da koristimo MySQL verziju 8.0. Možete ga preuzeti s ovdje.
Što ćete naučiti:
- Sintaksa tablice ažuriranja MySQL-a
- MySQL UPDATE naredba tablice
- # 1) MySQL ažuriranje jednog stupca
- # 2) MySQL Ažuriraj više stupaca
- # 3) Ažuriranje MySQL-a s funkcijom ZAMJENA
- # 4) Ažuriranje MySQL-a pomoću SELECT izjave
- # 5) MySQL AŽURIRANJE više redaka
- # 6) Ažuriranje MySQL-a pomoću ključne riječi INNER JOIN
- # 7) Ažuriranje MySQL-a pomoću LIJEVE PRIDRUŽITE ključnu riječ
- Često postavljana pitanja i odgovori
- Zaključak
Sintaksa tablice ažuriranja MySQL-a
UPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition;
Objašnjenje sintakse:
- Sintaksa započinje s ključnom riječi „UPDATE“, a time informira MySQL poslužitelj o vrsti aktivnosti koju treba izvršiti. Ovo je obavezna ključna riječ i ne može se izostaviti.
- Dalje dolazi ime tablice na kojoj se mora izvršiti akcija ažuriranja. To je obvezno i ne može se izostaviti.
- Treće, opet je ključna riječ - SET. Ova ključna riječ informira MySQL poslužitelj o vrijednostima koje će se ažurirati za nazive stupaca. Ovo je obavezna ključna riječ i ne može se izostaviti.
- Dalje, bit će imena stupaca koja će se ažurirati zajedno s njihovim odgovarajućim vrijednostima. To je također obvezno i ne može se izostaviti.
- Zatim dolazi uvjet WHERE koji ograničava ili filtrira broj ciljnih redaka na koje se mora primijeniti akcija UPDATE. WHERE je također ključna riječ, ali neobvezna.
Klauzula WHERE je, međutim, značajna. Ako nije spomenuto ili ako uvjet nije pravilno postavljen, neće se ažurirati ni tablica ni nepotrebni retci.
Modifikatori u izjavi UPDATE tablice
Dolje su navedeni modifikatori u UPDATE izjavi.
NIZAK PRIORITET: Ovaj modifikator obavještava MySQL Engine da odgodi ažuriranje sve dok iz tablice nema očitanja veze.
ZANEMARITI: Ovaj modifikator obavještava MySQL Engine da nastavi s operacijom UPDATE čak i ako postoje greške. Nije izvršena nijedna akcija ažuriranja na redovima koji su uzrokovali pogreške.
Primjer ažuriranja MySQL-a
Slijedi uzorak tablice stvorene u MySQL-u.
Naziv sheme: pacifički
Naziv tablice: zaposlenici
Imena stupaca:
- empNum - Sadrži cjelobrojne vrijednosti za broj zaposlenika.
- lastName - Sadrži varchar vrijednosti za prezime zaposlenika.
- firstName - Sadrži vrijednosti varchara za ime zaposlenika.
- e-pošta - sadrži vrijednosti varchar za e-mail ID zaposlenika.
- deptNum - Sadrži varchar za ID odjela kojem zaposlenik pripada.
- plaća - Sadrži decimalne vrijednosti plaće za svakog zaposlenika.
Naziv sheme: pacifički
Naziv tablice: odjelima
Imena stupaca:
- deptNum - Sadrži varchar za ID odjela unutar organizacije.
- grad - Sadrži ime grada u kojem rade odjeli.
- država - Sadrži naziv države koja odgovara gradu.
- bonus - sadrži postotak vrijednosti bonusa.
MySQL UPDATE naredba tablice
# 1) MySQL ažuriranje jednog stupca
Doznajmo sada zapis koji bismo željeli ažurirati. Prvo ćemo pogledati scenarij u kojem moramo ažurirati jedan stupac pomoću ključne riječi UPDATE.
Evo zaposlenika s brojem zaposlenika 1008.
Upit i odgovarajući rezultati su sljedeći:
Ažurirajmo ID e-pošte ovog zaposlenika s ob@gmail.com na oliver.bailey@gmail.com, pomoću ključne riječi UPDATE.
AŽURIRAJ: Ključna riječ obavještava MySQL mehanizam da se izjava odnosi na Ažuriranje tablice.
SET: Ova klauzula postavlja vrijednost imena stupca spomenutog nakon ove ključne riječi na novu vrijednost.
GDJE: Ova klauzula navodi određeni redak koji se mora ažurirati.
Nakon izvršavanja UPDATE izraza, izlaz će prikazati statistiku povezanu s izvršavanjem izvoda.
Slijede detalji koji su prikazani:
- Izjava koja je izvršena.
- Poruke koje prikazuju broj redaka koji su ažurirani i je li bilo upozorenja.
Da bismo provjerili izlaz UPDATE izraza, izvršimo ponovno naredbu SELECT kako bismo vidjeli promjenu u ID-u e-pošte.
Snimka tablice prije:
empNum | ime | prezime | deptNum | |
---|---|---|---|---|
7 | Rim | Italija | ||
1008 | Oliver | Bailey | ob@gmail.com | 3 |
Upit:
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ;
Snimka tablice nakon:
empNum | ime | prezime | deptNum | |
---|---|---|---|---|
1008 | Oliver | Bailey | oliver.bailey@gmail.com | 3 |
# 2) MySQL Ažuriraj više stupaca
Sintaksa za ažuriranje više stupaca korištenjem UPDATE izraza jednaka je sintaksi ažuriranja pojedinog stupca. Jedna pojedinačna naredba SET imat će više naziva stupaca zajedno s novom vrijednošću koju treba postaviti, odvojenom zarezom.
Pogledajmo red koji moramo ažurirati. Red s brojem zaposlenika kao 1003.
Ovdje ćemo pokušati ažurirati prezime s 'Mary' na 'Margaret', a zatim ID e-pošte s ml@gmail.com na margaret.langaley@gmail.com.
Slijedi UPDATE upit. Promatrajte li nazive stupaca odvojene zarezom.
Izlaz gornjeg izvršenja prikazuje istu statistiku kao u prethodnom slučaju.
Slijedi izlaz za isti zapis nakon izvršenja UPDATE izraza.
Snimka tablice prije:
empNum | ime | prezime | deptNum | |
---|---|---|---|---|
1003 | Marijo | Langley | ml@gmail.com | dva |
Upit:
UPDATE employees SET firstName = “Margaret”, email = “margaret.lagaley@gmail.com” WHERE empNum = 1003 AND firstName = “Mary” AND email = “ml@gmail.com” ;
Snimka tablice nakon:
empNum | ime | prezime | deptNum | |
---|---|---|---|---|
1003 | Margaret | Langley | margaret.langley@gmail.com | 3 |
# 3) Ažuriranje MySQL-a s funkcijom ZAMJENA
Pogledajmo više o korištenju funkcije ZAMJENA ZA AŽURIRANJE retka u tablici. Evo našeg ciljnog zapisa koji želimo ažurirati.
Sljedeći zapis odnosi se na zaposlenika s brojem 1010. Cilj ćemo ažurirati ID e-pošte s adrese ja@gmail.com na jacob.armstrong@gmail.com.
Upotrijebimo sljedeći UPDATE upit s funkcijom REPLACE koja će ažurirati ID e-pošte.
Slijede parametri koji se prosljeđuju u funkciji REPLACE. Sva 3 parametra su pozicijske prirode, tj. Redoslijed parametara ne može se mijenjati.
jedansvParametar - Sadrži ime ID-a e-pošte.
dvandParametar - Sadrži FROM ID e-pošte koji treba promijeniti.
3rdParametar - Sadrži ID e-pošte TO koji je nova vrijednost.
Slijedi snimak tablice nakon izvršenja UPDATE izraza:
Snimka tablice prije:
empNum | ime | prezime | deptNum | |
---|---|---|---|---|
1010 | Jakova | Armstrong | ja@gmail.com | 4 |
Upit:
UPDATE employees SET email = REPLACE(email, “ja@gmail.com”, jacob.armstrong@gmail.com) WHERE empNum = 1010 ;
Snimka tablice nakon:
empNum | ime | prezime | deptNum | |
---|---|---|---|---|
1010 | Jakova | Armstrong | jacob.armstrong@gmail.com | 4 |
# 4) Ažuriranje MySQL-a pomoću SELECT izjave
U ovom tipu UPDATE, nova vrijednost za stupac koji se ažurira dohvaća se naredbom SELECT u podupitu. Uzmimo ovdje primjer iz tablice naših 'zaposlenika'. Evo našeg ciljnog zapisa koji želimo ažurirati.
U ovom ćemo slučaju ažurirati broj odjela, tj. Stupac deptNum, pomoću tablica odjela. Ako pogledamo tablicu odjela, deptNum = 5 odgovara Berlinu. Premjestimo ovog zaposlenika u Charlotte na deptNum = 2.
Da bi se postigao ovaj zadatak, koristi se sljedeći izraz UPDATE:
Da bismo provjerili izlaz našeg UPDATE izraza, izvršimo IZABERI izjava.
Kao što je gore prikazano, vrijednost za stupac deptNum ažurirana je na '2'.
Snimka tablice prije:
empNum | ime | prezime | deptNum | |
---|---|---|---|---|
1005 | Peter | čitati | pl@gmail.com | 5 |
deptNum | Grad | Zemlja |
---|---|---|
jedan | New York | Ujedinjene države |
dva | Charlotte | Ujedinjene države |
3 | Chicago | Ujedinjene države |
4 | London | Engleska |
5 | Berlin | Njemačka |
6 | Mumbaiju | Indija |
Upit:
Snimka tablice nakon:
empNum ime prezime e-mail deptNum 7 Rim Italija NULL 1005 Peter čitati pl@gmail.com dva
# 5) MySQL AŽURIRANJE više redaka
Ponekad se možemo suočiti sa zahtjevom kada moramo ažurirati jedan ili više stupaca za više redaka s različitim vrijednostima.
Na primjer, želimo dati određeni iznos bonusa u odjelu, tj. svi zaposlenici u odjelu trebali bi dobiti određeni iznos bonusa.
vr slušalice kompatibilne s xbox one
Opća je sintaksa sljedeća:
UPDATE TAB1 SET COL2 = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 …. ELSE result1 END;
Da bismo to objasnili na primjeru, dopustimo dodavanje još jednog stupca tablicama odjela. U tablicu odjela dodat ćemo stupac 'bonus'. Ideja je dodijeliti postotak bonusa svakom odjelu i povećati plaću zaposlenika za onaj postotak koji odgovara svakom odjelu.
Da bismo to postigli, izvršit ćemo sljedeće izraze ALTER da bismo dodali stupac:
ALTER TABLE departments ADD COLUMN bonus decimal(5,2);
Sljedeća bi bila struktura tablice nakon navedenih promjena. Novi stupci bit će dodani s NULL kao vrijednost.

Dalje, napišimo UPDATE upit koji će ažurirati postotak bonusa za svaki odjel.

Nakon izvršenja gornje izjave, slijedi snimka s ažuriranim vrijednostima za stupac Bonus.

Snimka tablice prije:
deptNum Grad Zemlja Bonus jedan New York Ujedinjene države NULL dva Charlotte Ujedinjene države NULL 3 Chicago Ujedinjene države NULL 4 London Engleska NULL 5 Berlin Njemačka NULL 6 Mumbaiju Indija NULL
Upit:
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;
Snimka tablice nakon:
deptNum Grad Zemlja Bonus 7 Rim Italija 18 jedan New York Ujedinjene države 3 dva Charlotte Ujedinjene države 5 3 Chicago Ujedinjene države 8 4 London Engleska 10 5 Berlin Njemačka 13 6 Mumbaiju Indija petnaest
# 6) Ažuriranje MySQL-a pomoću ključne riječi INNER JOIN
PRIDRUŽITI je jedna od najvažnijih ključnih riječi u SQL izrazima. Obično ste ga možda koristili u naredbi SELECT.
U osnovi postoje četiri vrste izraza JOIN:
- UNUTARNJE PRIDRUŽIVANJE: Dohvaća zapise koji su uobičajeni u obje tablice.
- LIJEVA PRIDRUŽITE: Dohvaća sve zapise iz tablice s lijeve strane ključne riječi i odgovarajuće zapise iz tablice s desne strane ključne riječi.
- PRAVO PRIDRUŽIVANJE: Dohvaća sve zapise iz tablice s desne strane ključne riječi i odgovarajuće zapise iz tablice s lijeve strane ključne riječi.
- VANJSKO PRIDRUŽIVANJE: Dohvaća sve zapise iz obje tablice, s odgovarajućim neusklađenim zapisima predstavljenim kao NULL.
MySQL daje jedinstvenu priliku za korištenje JOIN-a čak i u UPDATE izrazima za obavljanje ažuriranja više tablica. Međutim, ograničeno je samo na UNUTARNJE PRIDRUŽIVANJE i LIJEVO PRIDRUŽIVANJE.
Generička sintaksa izraza UPDATE pomoću ključne riječi JOIN je sljedeća:
UPDATE TAB1, TAB2, (INNER JOIN | LEFT JOIN) TAB1 ON TAB1.COL1 = TAB2.COL1 SET TAB1.COL2 = TAB2.COL2, TAB2.COL3 = expr WHERE condition
- Ovdje izjava UPDATE očekuje tri stavke podataka.
- Imena tablica, TAB1 i TAB2, na kojima se izvodi spajanje.
- Vrsta PRIDRUŽIVANJA koju namjeravamo izvesti, UNUTARNJA ili LIJEVA.
- Zatim slijedi naredba SET pomoću koje možemo ažurirati vrijednosti stupaca u / ili TAB1 i TAB2.
- Na kraju, klauzula WHERE za ažuriranje samo onih redaka koji odgovaraju našim kriterijima.
Da bismo to objasnili na primjeru, dopustimo dodavanje još jednog stupca u tablicu zaposlenika. U tablicu Zaposlenici dodat ćemo stupac 'plaća'. Ideja je povećati plaću zaposlenika za vrijednost postotka bonusa koja je prisutna u stupcu bonusa tablice odjela.
Da bismo to postigli, izvršit ćemo sljedeće izraze ALTER da bismo dodali stupac:
ALTER TABLE employees ADD COLUMN salarydecimal(7,2);
Dalje ćemo popuniti dva nova polja koja smo dodali. Nakon popunjavanja vrijednosti, slijedi sadržaj tablice.
Tablica zaposlenih:
empNum ime prezime e-mail deptNum Plaća 1007 Schmitt James js@gmail.com 4 18000 1001 Andrews Utičnica ja@gmail.com jedan 3000 1002 Schwatz Mikrofon ms@gmail.com jedan 5000 1003 Langley Margaret margaret.langley@gmail.com dva 8000 1004 Harera Sandra sh@gmail.com jedan 10.000 1005 čitati Peter pl@gmail.com dva 13000 1006 Keith Jenny jk@gmail.com dva 15000 1008 Bailey Oliver oliver.bailey@gmail.com 3 21000 1009 Kupa Harry hb@gmail.com 5 24000 1010 Armstrong Jakova jacob.armstrong@gmail.com 4 27000
Koristimo sada ključnu riječ JOIN i ažuriraj plaću svih zaposlenika s postotkom bonusa u tablici odjeljenja. Ovdje je deptNum ključ na kojem će se dvije tablice podudarati.
F sljedeći je prikaz plaća zaposlenih sada:

Snimka iz tablice odjeljenja je kako slijedi:

Slijedi UPDATE upit koji će ažurirati plaću zaposlenika na temelju postotka bonusa u tablicama odjela na temelju stupca ključa deptNum.

Sada provjerimo plaću svakog zaposlenika nakon pješačenja.

Ako ga usporedite s prethodnom snimkom, tada možete lako razumjeti postotak bonusa dodan plaći.
Svi zaposlenici sigurno navijaju!
Snimka tablice prije:
empNum ime prezime e-mail deptNum Plaća 1007 Schmitt James js@gmail.com 4 18000 1001 Andrews Utičnica ja@gmail.com jedan 3000 1002 Schwatz Mikrofon ms@gmail.com jedan 5000 1003 Langley Margaret margaret.langley@gmail.com dva 8000 1004 Harera Sandra sh@gmail.com jedan 10.000 1005 čitati Peter pl@gmail.com dva 13000 1006 Keith Jenny jk@gmail.com dva 15000 1008 Bailey Oliver oliver.bailey@gmail.com 3 21000 1009 Kupa Harry hb@gmail.com 5 24000 1010 Armstrong Jakova jacob.armstrong@gmail.com 4 27000
deptNum Grad Zemlja Bonus 7 Rim Italija 18 jedan New York Ujedinjene države 3 dva Charlotte Ujedinjene države 5 3 Chicago Ujedinjene države 8 4 London Engleska 10 5 Berlin Njemačka 13 6 Mumbaiju Indija petnaest
Upit:
UPDATE employees INNER JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * bonus)/100) ;
Snimka tablice nakon:
empNum ime prezime e-mail deptNum Plaća 1007 Schmitt James js@gmail.com 4 21780 1001 Andrews Utičnica ja@gmail.com jedan 3182,7 1002 Schwatz Mikrofon ms@gmail.com jedan 5304,5 1003 Langley Margaret margaret.langley@gmail.com dva 8820 1004 Harera Sandra sh@gmail.com jedan 10609 1005 čitati 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 Kupa Harry hb@gmail.com 5 30645,6 1010 Armstrong Jakova jacob.armstrong@gmail.com 4 32670
# 7) Ažuriranje MySQL-a pomoću LIJEVE PRIDRUŽITE ključnu riječ
Kao što je objašnjeno u prethodnom odjeljku, postoje dvije vrste PRIDRUŽIVANJA koje su dopuštene u MySQL UPDATE. Već smo vidjeli UPDATE pomoću INNER JOIN.
Počnimo s UPDATE koristeći LEFT JOIN.
Primjer:
Imamo novog zaposlenika koji tek treba biti dodijeljen bilo kojem odjelu. Ali svim novim zaposlenima moramo dati bonus od 1%. Sada, budući da novo zapošljavanje nije dodijeljeno nijednom odjelu, iz te tablice nećemo moći dobiti informacije o postotku bonusa. U tom ćemo slučaju AŽURIRATI plaću za nove zaposlenike pomoću LIJEVOG PRIDRUŽIVANJA.
Da bismo to postigli, dodajte novog zaposlenika u bazu podataka zaposlenika.
INSERT INTO employees(empNum, firstName, lastName, email, deptNum, Salary) VALUES (1011, “Tom”, “Hanks”, th@gmail.com, NULL, 10000.00);
Slijedi novi zapis koji smo dodali:

Tablica zaposlenih:
empNum ime prezime e-mail deptNum Plaća 1007 Schmitt James js@gmail.com 4 21780 1001 Andrews Utičnica ja@gmail.com jedan 3183 1002 Schwatz Mikrofon ms@gmail.com jedan 5305 1003 Langley Margaret margaret.langley@gmail.com dva 8820 1004 Harera Sandra sh@gmail.com jedan 10609 1005 čitati Peter pl@gmail.com dva 14333 1006 Keith Jenny jk@gmail.com dva 16538 1008 Bailey Oliver oliver.bailey@gmail.com 3 24494 1009 Kupa Harry hb@gmail.com 5 30646 1010 Armstrong Jakova jacob.armstrong@gmail.com 4 32670 1011 Hanks Tom th@gmail.com NULL 10.000
Zatim ćemo Tomu dati bonus od 1% povrh njegove plaće pomoću izjave UPDATE s klauzulom LEFT JOIN:

Dolje je navedena plaća TOM-a nakon planinarenja.

Ako ga usporedite s prethodnom snimkom, lako možete razumjeti bonus% dodan na plaću.
Snimka tablice prije:
empNum ime prezime e-mail deptNum Plaća 1011 Tom Hanks th@gmail.com NULL 10.000
Upit:
UPDATE employees LEFT JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * 1)/100) WHERE employees.deptNum IS NULL ;
Snimka tablice nakon:
empNum ime prezime e-mail deptNum Plaća 1011 Tom Hanks th@gmail.com NULL 10100
Preporučena literatura = >> MySQL pridružuje se
Često postavljana pitanja i odgovori
P # 1) Kako mogu ažurirati atribute u MySQL-u?
Odgovor: Atribute možemo ažurirati pomoću izraza MySQL UPDATE, s tim da izraz započinje ključnom riječi UPDATE iza koje slijedi naziv tablice. Sljedeća je klauzula SET nakon koje slijedi naziv stupca i klauzula WHERE.
P # 2) Kako ažurirate više zapisa u MySQL-u?
Odgovor: Kao što je prikazano gore, ispod 'Ažuriranje više redaka' odjeljku, možemo ažurirati više redaka za jedan ili više stupaca s istim ili različitim vrijednostima pomoću izraza CASE.
P # 3) Možemo li koristiti JOIN u upitu za ažuriranje u MySQL-u?
Odgovor: Da, MySQL dopušta upotrebu JOIN u UPDATE izrazima. Međutim, ograničeno je samo na UNUTARNJE I LIJEVO PRIDRUŽIVANJE.
P # 4) Odakle preuzeti MySQL?
Odgovor: MySQL verziju 8.0 možete preuzeti ovdje: MySQL .
P # 5) Koji je značaj klauzule WHERE u izjavi Ažuriranje?
Odgovor: Klauzula WHERE ograničava broj redaka koji bi trebali stati u kriterije klauzule UPDATE.
Predloženo čitanje = >> Kako koristiti Izjava MySQL
Zaključak
Stoga smo u ovom vodiču naučili o 7 različitih načina izvršavanja MySQL UPDATE izraza.
- Ažurirajte jedan stupac
- Ažuriranje više stupaca
- Ažurirajte pomoću REPLACE
- Ažurirajte pomoću SELECT
- Ažurirajte više redaka
- Ažurirajte pomoću INNER JOIN
- Ažurirajte pomoću LEFT JOIN
Možemo koristiti bilo što od toga, na temelju naših zahtjeva.
Sretno čitanje !!
Preporučena literatura
- Razlika između SQL Vs MySQL Vs SQL Server (s primjerima)
- 40 najboljih pitanja i odgovora za intervju za MySQL (2021 pitanje)
- MongoDB Ažuriranje i brisanje dokumenata s primjerima
- C # Korištenje izjave i C # Vodič za virtualne metode s primjerima
- Vodič o uvjetnim izjavama za C #
- Java Vodič za refleksiju s primjerima
- Python DateTime Vodič s primjerima
- Vodič za Bugzilla: Praktični vodič za alat za upravljanje nedostacima