mysql update statement tutorial update query syntax examples
In deze tutorial wordt de MySQL UPDATE-instructie uitgelegd, samen met de syntaxis en voorbeelden van zoekopdrachten. Je leert ook verschillende varianten van de MySQL Update Table Command:
Net als bij elke andere database, is het altijd nodig om bestaande gegevens in de tabellen bij te werken of te wijzigen of te wijzigen. In MySQL hebben we de UPDATE-instructie die kan worden gebruikt om de gegevens in de tabel bij te werken of te wijzigen.
Met deze opdracht kunnen we een of meer velden bijwerken. We kunnen de waarden van een bepaalde tabel tegelijk bijwerken. Door de WHERE-clausule te gebruiken, kunnen we de voorwaarden specificeren die worden gebruikt, vooral wanneer het nodig is om specifieke rijen uit een tabel bij te werken.
Houd er rekening mee dat we MySQL versie 8.0 gebruiken voordat u verder gaat. U kunt het downloaden van hier.
Wat je leert:
- MySQL UPDATE tabelsyntaxis
- MySQL UPDATE-tabelopdracht
- Veelgestelde vragen en antwoorden
- Gevolgtrekking
MySQL UPDATE tabelsyntaxis
Syntaxis Uitleg:
- De syntaxis begint met het sleutelwoord “UPDATE”, waardoor de MySQL Server wordt geïnformeerd over het type activiteit dat moet worden uitgevoerd. Dit is een verplicht trefwoord en kan niet worden weggelaten.
- Vervolgens komt de naam van de tafel waarop de update-actie moet worden uitgevoerd. Dit is verplicht en kan niet worden weggelaten.
- Ten derde, is weer een sleutelwoord - SET. Dit trefwoord informeert MySQL Server over de waarden die moeten worden bijgewerkt voor de kolomnamen. Dit is een verplicht trefwoord en kan niet worden weggelaten.
- Vervolgens zullen de kolomnamen worden bijgewerkt, samen met de bijbehorende waarden. Dit is ook verplicht en kan niet worden weggelaten.
- Dan komt de WHERE-voorwaarde, die het aantal doelrijen waarop de UPDATE-actie moet worden toegepast, beperkt of filtert. WAAR is ook een trefwoord, maar een optioneel trefwoord.
De WHERE-clausule is echter significant. Als dit niet wordt vermeld, of als de voorwaarde niet correct is ingesteld, worden noch de tabel, noch de niet-vereiste rijen bijgewerkt.
Modificatoren in een UPDATE Table-instructie
Hieronder staan de modificatoren in een UPDATE-instructie.
LAGE PRIORITEIT: Deze modifier informeert de MySQL Engine om de update uit te stellen totdat er geen verbinding wordt gelezen uit de tabel.
NEGEREN: Deze modifier informeert MySQL Engine om door te gaan met de UPDATE-bewerking, zelfs als er fouten zijn. Er is geen updateactie uitgevoerd op de rijen die fouten hebben veroorzaakt.
MySQL UPDATE Voorbeeld
Hieronder ziet u een voorbeeldtabel gemaakt in MySQL.
Schema naam: grote Oceaan
Tafel naam: medewerkers
Kolomnamen:
- empNum - Bevat gehele getallen voor het werknemersnummer.
- lastName - Bevat varchar-waarden voor de achternaam van de werknemer.
- firstName - Bevat varchar-waarden voor de voornaam van de werknemer.
- email - Bevat varchar-waarden voor de e-mail-ID van de werknemer.
- deptNum - Bevat varchar voor de afdelings-ID waartoe een werknemer behoort.
- salaris - Bevat decimale waarden van het salaris voor elke werknemer.
Schema naam: grote Oceaan
Tafel naam: afdelingen
Kolomnamen:
- deptNum - Bevat varchar voor afdelings-ID binnen een organisatie.
- stad - Bevat de naam van de stad waarin de afdelingen werken.
- country - Bevat de naam van het land dat overeenkomt met de stad.
- bonus - Bevat de procentuele waarde van de bonus.
MySQL UPDATE-tabelopdracht
# 1) MySQL-update van één kolom
Laten we nu eens kijken naar een record dat we zouden willen bijwerken. Eerst zullen we een scenario bekijken waarin we een enkele kolom moeten bijwerken met het UPDATE-trefwoord.
Hier is een werknemer met het personeelsnummer 1008.
De zoekopdracht en de bijbehorende resultaten zijn als volgt:
Laten we de e-mail-ID van deze medewerker updaten van ob@gmail.com naar oliver.bailey@gmail.com met behulp van het UPDATE-trefwoord.
BIJWERKEN: Het sleutelwoord informeert de MySQL-engine dat de verklaring gaat over het bijwerken van een tabel.
SET: Deze clausule stelt de waarde van de kolomnaam die na dit trefwoord wordt vermeld, in op een nieuwe waarde.
WAAR: Deze clausule specificeert de specifieke rij die moet worden bijgewerkt.
Na het uitvoeren van de UPDATE-instructie, toont de uitvoer de statistieken met betrekking tot de uitvoering van de instructie.
Hieronder volgen de details die worden weergegeven:
- Een instructie die is uitgevoerd.
- Berichten met het aantal rijen dat is bijgewerkt en of er waarschuwingen zijn.
Om de uitvoer van de UPDATE-instructie te verifiëren, moeten we de SELECT-instructie opnieuw uitvoeren om de wijziging in de e-mail-ID te zien.
Tabel Snapshot Vóór:
empNum | Voornaam | achternaam | afdelingNum | |
---|---|---|---|---|
7 | Rome | Italië | ||
1008 | Oliver | Bailey | ob@gmail.com | 3 |
Vraag:
Tabel-momentopname na:
empNum | Voornaam | achternaam | afdelingNum | |
---|---|---|---|---|
1008 | Oliver | Bailey | oliver.bailey@gmail.com | 3 |
# 2) MySQL-update meerdere kolommen
De syntaxis om meer dan één kolom bij te werken met behulp van de UPDATE-instructie is dezelfde als die voor het bijwerken van één kolom. Een enkele SET-instructie heeft meerdere kolomnamen, samen met de nieuwe waarde die moet worden ingesteld, gescheiden door een komma.
Laten we eens kijken naar de rij die we moeten bijwerken. Rij met het personeelsnummer als 1003.
Hier zullen we proberen de achternaam bij te werken van 'Mary' naar 'Margaret' en vervolgens de e-mail-ID van ml@gmail.com naar margaret.langaley@gmail.com.
Het volgende is de UPDATE-query. Let op de kolomnamen gescheiden door een komma.
De uitvoer van de bovenstaande uitvoering toont dezelfde statistieken als in het vorige geval.
Hieronder volgt de uitvoer voor hetzelfde record na de uitvoering van de UPDATE-instructie.
Tabel Snapshot Vóór:
empNum | Voornaam | achternaam | afdelingNum | |
---|---|---|---|---|
1003 | Maria | Langley | ml@gmail.com | twee |
Vraag:
Tabel-momentopname na:
empNum | Voornaam | achternaam | afdelingNum | |
---|---|---|---|---|
1003 | Margaret | Langley | margaret.langley@gmail.com | 3 |
# 3) MySQL-update met REPLACE-functie
Laten we eens kijken naar het gebruik van de functie REPLACE om een rij in de tabel te UPDATEN. Dit is ons doelrecord dat we willen bijwerken.
Het onderstaande record is voor medewerker nummer 1010. We streven ernaar om het e-mailadres van ja@gmail.com bij te werken naar jacob.armstrong@gmail.com.
Laten we de volgende UPDATE-query gebruiken met de REPLACE-functie die de e-mail-ID zal updaten.
Hieronder volgen de parameters die worden doorgegeven in de functie REPLACE. Alle 3 de parameters zijn positioneel van aard, d.w.z. de volgorde van de parameters kan niet worden gewijzigd.
eenstParameter - Bevat de naam van de e-mail-ID.
tweendParameter - Bevat de FROM-e-mail-ID die moet worden gewijzigd.
3rdParameter - Bevat de TO-e-mail-ID die de nieuwe waarde is.
Hieronder volgt de momentopname van de tabel na uitvoering van de UPDATE-instructie:
Tabel Snapshot Vóór:
empNum | Voornaam | achternaam | afdelingNum | |
---|---|---|---|---|
1010 | Jakob | Armstrong | ja@gmail.com | 4 |
Vraag:
Tabel-momentopname na:
empNum | Voornaam | achternaam | afdelingNum | |
---|---|---|---|---|
1010 | Jakob | Armstrong | jacob.armstrong@gmail.com | 4 |
# 4) MySQL-UPDATE met behulp van SELECT-instructie
Bij dit type UPDATE wordt de nieuwe waarde voor de kolom die moet worden bijgewerkt, opgehaald door een SELECT-instructie in een subquery. Laten we hier dus een voorbeeld nemen uit onze tabel 'medewerkers'. Dit is ons doelrecord dat we willen bijwerken.
In dit geval zullen we het afdelingsnummer bijwerken, d.w.z. de kolom afdNum, met behulp van de afdelings-tabellen. Als we naar de afdelingentabel kijken, komt de afdelingNum = 5 overeen met Berlijn. Laten we deze werknemer verplaatsen naar Charlotte op deptNum = 2.
Om deze taak te volbrengen, wordt de volgende UPDATE-instructie gebruikt:
Om de uitvoer van onze UPDATE-instructie te verifiëren, voeren we de SELECTEER uitspraak.
Zoals hierboven getoond, is de waarde voor de kolom deptNum bijgewerkt naar '2'.
Tabel Snapshot Vóór:
empNum | Voornaam | achternaam | afdelingNum | |
---|---|---|---|---|
1005 | Peter | lezen | pl@gmail.com | 5 |
afdelingNum | stad | Land |
---|---|---|
een | New York | Verenigde Staten |
twee | Charlotte | Verenigde Staten |
3 | Chicago | Verenigde Staten |
4 | Londen | Engeland |
5 | Berlijn | Duitsland |
6 | Mumbai | India |
Vraag:
Tabel-momentopname na:
empNum | Voornaam | achternaam | afdelingNum | |
---|---|---|---|---|
7 | Rome | Italië | NUL | |
1005 | Peter | lezen | pl@gmail.com | twee |
# 5) MySQL UPDATE Meerdere rijen
Soms kunnen we te maken krijgen met een vereiste waarbij we een of meer kolommen moeten bijwerken voor meerdere rijen met verschillende waarden.
Bijvoorbeeld, we willen een bepaald bedrag aan bonus afdelingsgewijs geven, d.w.z. alle werknemers op een afdeling moeten een bepaald bedrag aan bonus krijgen.
beste tekst-naar-spraaksoftwarereview
De algemene syntaxis is als volgt:
Om dit met een voorbeeld uit te leggen, kunnen we nog een kolom aan de afdelingstabellen toevoegen. We zullen de kolom 'bonus' toevoegen aan de afdelingstabel. Het idee is om aan elke afdeling een bonuspercentage toe te kennen en het salaris van de werknemers te verhogen met dat percentage dat overeenkomt met elke afdeling.
Om dit te bereiken, zullen we de volgende ALTER-instructies uitvoeren om een kolom toe te voegen:
Het volgende zou de tabelstructuur zijn na de bovenstaande wijzigingen. De nieuwe kolommen worden toegevoegd met NUL als waarde.
Laten we vervolgens de UPDATE-query schrijven waarmee het bonuspercentage voor elke afdeling wordt bijgewerkt.
Na uitvoering van de bovenstaande verklaring, is het volgende de momentopname met de bijgewerkte waarden voor de Bonus-kolom.
Tabel Snapshot Vóór:
afdelingNum | stad | Land | Bonus |
---|---|---|---|
een | New York | Verenigde Staten | NUL |
twee | Charlotte | Verenigde Staten | NUL |
3 | Chicago | Verenigde Staten | NUL |
4 | Londen | Engeland | NUL |
5 | Berlijn | Duitsland | NUL |
6 | Mumbai | India | NUL |
Vraag:
Tabel-momentopname na:
afdelingNum | stad | Land | Bonus |
---|---|---|---|
7 | Rome | Italië | 18 |
een | New York | Verenigde Staten | 3 |
twee | Charlotte | Verenigde Staten | 5 |
3 | Chicago | Verenigde Staten | 8 |
4 | Londen | Engeland | 10 |
5 | Berlijn | Duitsland | 13 |
6 | Mumbai | India | vijftien |
# 6) MySQL-UPDATE met INNER JOIN-sleutelwoord
WORD LID is een van de belangrijkste trefwoorden in de SQL-statements. Meestal hebt u het misschien gebruikt in de SELECT-instructie.
Er zijn in principe vier soorten JOIN-instructies:
- BINNENKOMEN: Haalt de records op die in beide tabellen voorkomen.
- LINKER LID WORDEN: Haalt alle records uit de tabel aan de linkerkant van het trefwoord en de overeenkomende records uit de tabel aan de rechterkant van het trefwoord.
- RECHTS KOMEN: Haalt alle records uit de tabel aan de rechterkant van het trefwoord en de overeenkomende records uit de tabel aan de linkerkant van het trefwoord.
- BUITENKOMEN: Haalt alle records van beide tabellen op, waarbij de corresponderende niet-overeenkomende records worden weergegeven als NULL.
MySQL biedt een unieke mogelijkheid om JOIN te gebruiken, zelfs in UPDATE-statements, om cross-table updates uit te voeren. Het is echter beperkt tot INNER JOIN en LEFT JOIN.
De algemene syntaxis van de UPDATE-instructie met het trefwoord JOIN is als volgt:
- Hier verwacht de UPDATE-instructie drie gegevensitems.
- Tabelnamen, TAB1 en TAB2, waarop de join wordt uitgevoerd.
- Type JOIN dat we van plan zijn uit te voeren, INNER of LEFT.
- Daarna volgt het SET-commando waarmee we de kolomwaarden in / of TAB1 en TAB2 kunnen bijwerken.
- Ten slotte een WHERE-clausule om alleen die rijen bij te werken die aan onze criteria voldoen.
Om dit met een voorbeeld uit te leggen, kunnen we nog een kolom toevoegen aan de tabel Werknemers. We zullen de kolom “salaris” toevoegen aan de tabel Werknemers. Het idee is om het salaris van werknemers te verhogen met een bonuspercentage dat in de bonuskolom van de afdelingstabel staat.
Om dit te bereiken, zullen we de volgende ALTER-instructies uitvoeren om een kolom toe te voegen:
Vervolgens vullen we de twee nieuwe velden in die we hebben toegevoegd. Na het invullen van de waarden, is het volgende de inhoud van de tabel.
Werknemerslijst:
empNum | Voornaam | achternaam | afdelingNum | Salaris | |
---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 18000 |
1001 | Andrews | Jack | ja@gmail.com | een | 3000 |
1002 | Schwatz | Mike | ms@gmail.com | een | 5000 |
1003 | Langley | Margaret | margaret.langley@gmail.com | twee | 8000 |
1004 | Harera | Sandra | sh@gmail.com | een | 10.000 |
1005 | lezen | Peter | pl@gmail.com | twee | 13000 |
1006 | Keith | Jenny | jk@gmail.com | twee | 15000 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 21000 |
1009 | Beker | Harry | hb@gmail.com | 5 | 24000 |
1010 | Armstrong | Jakob | jacob.armstrong@gmail.com | 4 | 27000 |
Laten we nu het trefwoord JOIN gebruiken en het salaris van alle werknemers bijwerken met een bonuspercentage in de tabel van de afdeling. Hier is deptNum de sleutel waarop de twee tabellen zullen worden afgestemd.
F. Hieronder volgt een momentopname van de salarissen van werknemers vanaf nu:
Momentopname van de afdelingstabel is als volgt:
Hieronder volgt de UPDATE-query die het salaris van de werknemers zal bijwerken op basis van het bonuspercentage in de tabellen van de afdelingen op basis van de afdelingsNum-sleutelkolom.
Laten we nu het salaris van elke werknemer na de wandeling controleren.
Als je het vergelijkt met de vorige momentopname, kun je gemakkelijk het bonuspercentage begrijpen dat aan het salaris wordt toegevoegd.
Alle medewerkers moeten juichen!
Tabel Snapshot Vóór:
empNum | Voornaam | achternaam | afdelingNum | Salaris | |
---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 18000 |
1001 | Andrews | Jack | ja@gmail.com | een | 3000 |
1002 | Schwatz | Mike | ms@gmail.com | een | 5000 |
1003 | Langley | Margaret | margaret.langley@gmail.com | twee | 8000 |
1004 | Harera | Sandra | sh@gmail.com | een | 10.000 |
1005 | lezen | Peter | pl@gmail.com | twee | 13000 |
1006 | Keith | Jenny | jk@gmail.com | twee | 15000 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 21000 |
1009 | Beker | Harry | hb@gmail.com | 5 | 24000 |
1010 | Armstrong | Jakob | jacob.armstrong@gmail.com | 4 | 27000 |
afdelingNum | stad | Land | Bonus |
---|---|---|---|
7 | Rome | Italië | 18 |
een | New York | Verenigde Staten | 3 |
twee | Charlotte | Verenigde Staten | 5 |
3 | Chicago | Verenigde Staten | 8 |
4 | Londen | Engeland | 10 |
5 | Berlijn | Duitsland | 13 |
6 | Mumbai | India | vijftien |
Vraag:
Tabel-momentopname na:
empNum | Voornaam | achternaam | afdelingNum | Salaris | |
---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 |
1001 | Andrews | Jack | ja@gmail.com | een | 3182,7 |
1002 | Schwatz | Mike | ms@gmail.com | een | 5304.5 |
1003 | Langley | Margaret | margaret.langley@gmail.com | twee | 8820 |
1004 | Harera | Sandra | sh@gmail.com | een | 10609 |
1005 | lezen | Peter | pl@gmail.com | twee | 14332.5 |
1006 | Keith | Jenny | jk@gmail.com | twee | 16537,5 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24494.4 |
1009 | Beker | Harry | hb@gmail.com | 5 | 30645.6 |
1010 | Armstrong | Jakob | jacob.armstrong@gmail.com | 4 | 32670 |
# 7) MySQL-UPDATE met LEFT JOIN-trefwoord
Zoals uitgelegd in de vorige sectie, zijn er twee soorten JOIN die zijn toegestaan in MySQL UPDATE. We hebben UPDATE al gezien met INNER JOIN.
Laten we beginnen met UPDATE met LEFT JOIN.
Voorbeeld:
We hebben een nieuwe medewerker die nog moet worden toegewezen aan een afdeling. Maar we moeten alle nieuwe medewerkers een bonus van 1% geven. Nu de nieuwe medewerker aan geen enkele afdeling is toegewezen, kunnen we geen informatie over het bonuspercentage uit die tabel halen. In dat geval zullen we het salaris voor de nieuwe medewerkers UPDATEN met LEFT JOIN.
Om dit te bereiken, voegen we een nieuwe medewerker toe aan de medewerkersdatabase.
Hieronder volgt het nieuwe record dat we hebben toegevoegd:
Werknemerslijst:
empNum | Voornaam | achternaam | afdelingNum | Salaris | |
---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 |
1001 | Andrews | Jack | ja@gmail.com | een | 3183 |
1002 | Schwatz | Mike | ms@gmail.com | een | 5305 |
1003 | Langley | Margaret | margaret.langley@gmail.com | twee | 8820 |
1004 | Harera | Sandra | sh@gmail.com | een | 10609 |
1005 | lezen | Peter | pl@gmail.com | twee | 14333 |
1006 | Keith | Jenny | jk@gmail.com | twee | 16538 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24494 |
1009 | Beker | Harry | hb@gmail.com | 5 | 30646 |
1010 | Armstrong | Jakob | jacob.armstrong@gmail.com | 4 | 32670 |
1011 | Hanks | Tom | th@gmail.com | NUL | 10.000 |
Vervolgens geven we Tom een bonus van 1% bovenop zijn salaris met behulp van de UPDATE-verklaring met LEFT JOIN-clausule:
Hieronder staat het salaris van TOM na de wandeling.
Als je het vergelijkt met de vorige momentopname, kun je gemakkelijk het bonus% zien dat aan het salaris wordt toegevoegd.
Tabel Snapshot Vóór:
empNum | Voornaam | achternaam | afdelingNum | Salaris | |
---|---|---|---|---|---|
1011 | Tom | Hanks | th@gmail.com | NUL | 10.000 |
Vraag:
Tabel-momentopname na:
empNum | Voornaam | achternaam | afdelingNum | Salaris | |
---|---|---|---|---|---|
1011 | Tom | Hanks | th@gmail.com | NUL | 10100 |
Aanbevolen literatuur = >> MySQL sluit zich aan
Veelgestelde vragen en antwoorden
V # 1) Hoe werk ik attributen bij in MySQL?
Antwoord: We kunnen attribuut (en) bijwerken met behulp van de MySQL UPDATE-instructie, waarbij de instructie begint met het UPDATE-trefwoord gevolgd door de tabelnaam. De volgende is de SET-component, gevolgd door een kolomnaam en een WHERE-component.
Q # 2) Hoe werk je meerdere records bij in MySQL?
Antwoord: Zoals hierboven afgebeeld, onder de 'Meerdere rijen bijwerken' sectie, kunnen we meerdere rijen bijwerken voor een of meer kolommen met dezelfde of verschillende waarden met behulp van de CASE-instructie.
V # 3) Kunnen we JOIN gebruiken in de update-query in MySQL?
Antwoord: Ja, MySQL staat het gebruik van JOIN toe in UPDATE-instructies. Het is echter beperkt tot INNER en LEFT JOIN.
V # 4) Waar kan ik MySQL downloaden?
Antwoord: U kunt MySQL versie 8.0 vanaf hier downloaden: MySQL
V # 5) Wat is de betekenis van de WHERE-clausule in de Update-instructie?
Antwoord: WHERE-clausule beperkt het aantal rijen dat in de criteria van de UPDATE-clausule moet passen.
Voorgestelde lezing = >> Hoe de MySQL If-verklaring
Gevolgtrekking
In deze tutorial hebben we dus 7 verschillende manieren geleerd om MySQL UPDATE-statements uit te voeren.
- Werk een enkele kolom bij
- Werk meerdere kolommen bij
- Update met REPLACE
- Update met SELECT
- Werk meerdere rijen bij
- Update met INNER JOIN
- Update met LEFT JOIN
We kunnen elk van deze gebruiken, op basis van onze vereisten.
Veel leesplezier !!
Aanbevolen literatuur
- Verschil tussen SQL versus MySQL versus SQL Server (met voorbeelden)
- Top 40 beste MySQL interviewvragen en antwoorden (2021 vragen)
- MongoDB Update en verwijder document met voorbeelden
- C # Statement en C # Virtual Method Tutorial met voorbeelden gebruiken
- Zelfstudie over voorwaardelijke verklaringen van C #
- Zelfstudie over reflectie in Java met voorbeelden
- Python DateTime-zelfstudie met voorbeelden
- Bugzilla-zelfstudie: Praktische zelfstudie voor hulpprogramma voor defectbeheer