mysql insert into table insert statement syntax examples
In deze zelfstudie wordt de MYSQL INSERT INTO Table-instructie uitgelegd, samen met de syntaxis en voorbeelden van zoekopdrachten. Leer ook verschillende varianten van de MYSQL-opdracht invoegen:
In MySQL wordt het INSERT-commando gebruikt om gegevens aan de tabel toe te voegen. Met deze opdracht kunnen we gegevens invoegen in een of meer dan een rij in een enkele transactie. Ook kunnen gegevens in een enkele transactie aan een of meer dan een tabel worden toegevoegd.
We zullen deze allemaal bespreken in de komende secties. 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 INSERT-opdrachtsyntaxis
- Variaties in MySQL INSERT-instructie
- Veelgestelde vragen en antwoorden
- Gevolgtrekking
MySQL INSERT-opdrachtsyntaxis
Syntaxis Uitleg:
- De syntaxis begint met het sleutelwoord “INSERT INTO”, 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 invoegactie moet worden uitgevoerd. Dit is verplicht en kan ook niet worden weggelaten.
- Vervolgens zullen de kolomnamen worden ingevoegd, samen met de bijbehorende waarden. Nogmaals, dit is ook verplicht en kan niet worden weggelaten.
- Vervolgens zal de waardenclausule zijn. In deze clausule moet men de waarde opgeven voor elke kolom die we in de tabel invoegen. De reeks waarden en de reeks kolomnamen moeten gesynchroniseerd zijn.
- Het aantal en de gegevenstypen van kolommen moeten hetzelfde zijn als die van de waarden.
Modificatoren in INSERT-instructie
- LAGE PRIORITEIT: Deze modifier informeert de MySQL Engine om de uitvoering van de INSERT-instructie uit te stellen tot het moment dat er geen verband is met het lezen van de tabel die we proberen INSERT. Dit helpt bij het bereiken van consistentie tussen alle andere bewerkingen die op die tafel worden uitgevoerd.
- HOGE PRIORITEIT: Deze modifier informeert de MySQL Engine om hoge prioriteit te geven aan de INSERT-instructie boven elke andere instructie / transactie dat wordt op tafel uitgevoerd.
- NEGEREN: Deze modifier informeert MySQL Engine om eventuele fouten te negeren die kunnen optreden als gevolg van de uitvoering van de INSERT-instructie. Eventuele fouten die optreden, worden alleen als waarschuwingen behandeld en het invoegen van records in de tabel gaat ongehinderd door.
- VERTRAAGD: Dit is de MySQL-extensie voor standaard SQL. Wanneer INSERT DELAYED wordt uitgegeven door de gebruiker, zet de server alle rijen in de wachtrij en worden de gegevens op een later tijdstip in de tabel ingevoegd, wanneer de tabel niet wordt gebruikt door andere transacties.
MySQL INSERT-voorbeeld
Het volgende is 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.
- start_date - Bevat datumwaarden voor de toetredingsdatum van de werknemer.
Schema naam: grote Oceaan
Tafel naam: werknemers_geschiedenis
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.
- start_date - Bevat datumwaarden voor de toetredingsdatum van de werknemer.
Variaties in MySQL INSERT-instructie
# 1) MySQL Voeg een enkele rij in
Eerst zullen we een scenario bekijken waarin we zowel de kolomnamen als de in te voegen waarden hebben gespecificeerd met het INSERT INTO-trefwoord.
Bijvoorbeeld, Hier proberen we een nieuwe medewerker in te voegen. We zullen het personeelsnummer, de voor- en achternaam toevoegen, en we zullen ook het e-mailadres, het salaris en de afdelings-ID bijwerken waartoe de nieuwe werknemer behoort.
De zoekopdracht en de bijbehorende resultaten zijn als volgt:
Zoals weergegeven in de bovenstaande afbeelding, is de instructie INSERT met succes uitgevoerd en is er één rij in de tabel van de medewerker ingevoegd.
De output-instructie hieronder toont het tijdstip waarop de instructie werd uitgevoerd, de MySQL-instructie die werd uitgevoerd en het aantal rijen dat werd beïnvloed.
Let hier op, dat de waarde voor elke kolom in dezelfde volgorde wordt vermeld als die van de kolomnamen. Merk ook op dat de kolom met het gegevenstype integer / decimaal niet tussen aanhalingstekens is omsloten, maar de kolomtypen met het gegevenstype varchar / char zijn tussen aanhalingstekens geplaatst.
Laten we, om de uitvoer van deze INSERT-instructie te verifiëren, de SELECT-instructie op deze tabel uitvoeren met empNum als 1012.
Vraag:
Tabel-momentopname na:
empNum | achternaam | Voornaam | afdelingNum | Salaris | ||
---|---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3 | 13000 |
# 2) MySQL Gegevens invoegen alleen in gespecificeerde kolom
Vervolgens is er een andere manier om gegevens in een tabel in te voegen, maar door alleen records in de vereiste kolommen in te voegen en niet in alle kolommen. Houd er echter rekening mee dat we de sleutelkolommen in dit scenario niet kunnen weglaten. In het geval van de tabel van onze medewerker is de sleutelkolom de empNum-kolom. Laten we dit eens proberen.
Bijvoorbeeld, We zullen een nieuw record in de werknemerstabel invoegen met gegevens over alleen empNum, lastName, firstName. We zullen geen e-mail-ID, afdeling of salaris toewijzen aan deze werknemer.
Hieronder volgt de vraag en het resultaat:
Zoals weergegeven in de afbeelding hierboven, is de invoeginstructie met succes uitgevoerd en is er één rij in de tabel van de werknemer ingevoegd.
webservices interviewvragen .net
Houd er rekening mee dat, dat om alleen de geselecteerde kolommen in te voegen, de kolommen die we hebben overgeslagen ofwel NULL moeten worden verklaard of een standaardwaarde moeten hebben die zou worden ingevuld in het geval die kolom wordt overgeslagen. Als niet aan deze voorwaarde is voldaan, mislukt de invoeginstructie.
Laten we de uitvoering van de bovenstaande INSERT-instructie verifiëren door een SELECT-instructie uit te voeren voor empNum = 1013.
Vraag:
Tabel-momentopname na:
empNum | achternaam | Voornaam | afdelingNum | Salaris | |
---|---|---|---|---|---|
1013 | Nolan | Chris | NUL | NUL | NUL |
# 3) MySQL Meerdere rijen invoegen
Vervolgens zullen we het scenario doorlopen waarin we meerdere rijen in de tabel moeten invoegen met dezelfde INSERT-instructie.
Bijvoorbeeld, in dit geval hoeven we de kolomnamen slechts één keer te vermelden, maar we kunnen de waarden voor die kolommen zo vaak als nodig blijven herhalen.
Hieronder volgt de vraag samen met de bijbehorende resultaten:
Zoals weergegeven in de afbeelding hierboven, is de uitvoering van de verklaring geslaagd.
Let wel op het berichtgedeelte, waarin staat dat er 3 rijen zijn getroffen, dit houdt in dat deze enkele INSERT-instructie 3 records heeft ingevoegd bij de uitvoering van deze INSERT-instructie.
Verder lezen = >> MySQL If Statement-zelfstudie
Laten we de uitvoer van onze INSERT-instructie verifiëren door de SELECT-instructie uit te voeren voor nieuwe werknemer-ID's 1014, 1015 en 1016.
De details zijn als volgt:
Vraag:
Tabel-momentopname na:
empNum | achternaam | Voornaam | afdelingNum | Salaris | |
---|---|---|---|---|---|
1014 | Murray | Keith | km@gmail.com | een | 25000 |
1015 | Branson | John | jb@gmail.com | twee | 15000 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 |
# 4) MySQL-datum invoegen
Vervolgens zullen we het scenario doorlopen waarin we waarden moeten invoegen in de datumkolom.
Bijvoorbeeld, Waarden invoegen in de datumkolom kan lastig zijn. De datum in MySQL kan worden toegevoegd aan het ‘YYYY-MM-DD’ -formaat. Om dit te bereiken, voegen we een kolom start_date toe met de standaardwaarde ‘0001-01-01’.
Dit houdt in dat alle bestaande records in de tabel van de werknemer met de startdatum worden bijgewerkt als ‘0001-01-01’. De alter-verklaring is als volgt.
Vraag:
Laten we de uitvoer van de bovenstaande query verifiëren door een eenvoudige SELECT-instructie op de tabel uit te voeren:
Daarom hebben we een nieuwe datumkolom toegevoegd met het gegevenstype als 'DATE' met de standaardwaarde '0001-01-01'. Laten we nu twee nieuwe werknemersrecords invoegen, een met de huidige datum en een andere met een bepaalde datum.
youtube naar mp3 converter met tag-editor
Hieronder volgen de vragen samen met de details:
Zoals te zien is in de bovenstaande afbeelding, hebben we de functie gebruikt om meerdere rijen in de tabel in te voegen, zoals uitgelegd in het vorige gedeelte.
Het eerste record is ingevoegd met de functie CURRENT_DATE (). Deze functie retourneert de huidige systeemdatum. Het tweede record is ingevoegd met een bepaalde datum in de indeling ‘JJJJ-MM-DD’.
Vervolgens zullen we de uitvoer van onze INSERT-instructie verifiëren met een SELECT-instructie voor empNum 1017 en 1018.
Het eerste record, met empNum = 1017, heeft dezelfde startdatum als de huidige datum, namelijk 25thNov 2019 (in dit geval de datum waarop deze tutorial is geschreven) in ‘YYYY-MM-DD’ -formaat.
Vraag:
Tabel-momentopname na:
empNum | achternaam | Voornaam | afdelingNum | Salaris | Begin datum | |
---|---|---|---|---|---|---|
1017 | Johnson | Vooravond | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Bond | Nolan | nb@gmail.com | twee | 15000 | 2019-09-13 00:00:00 |
# 5) MySQL invoegen in een tabel vanuit een andere tafel
Vervolgens zullen we het scenario doorlopen waarin we gegevens in een nieuwe tabel moeten invoegen vanuit een bestaande tabel.
Bijvoorbeeld, Overweeg een scenario waarin we periodiek gegevens van onze bestaande tabel naar een historische of archieftabel moeten verplaatsen. Om dit te bereiken, maken we een nieuwe tabel employee_history.
Het is onze taak om gegevens van de werknemerstabel naar de tabel met werknemersgeschiedenis te verplaatsen.
De instructie CREATE is als volgt:
Vraag:
Laten we de uitvoer van de bovenstaande query verifiëren door een eenvoudige DESC-instructie op de nieuwe tabel uit te voeren, die ons de tabelstructuur van de nieuwe tabel geeft:
We hebben dus een nieuwe tafel gemaakt. Laten we nu gegevens in deze nieuwe tabel laden vanuit de tafel van de medewerker.
=> Meer informatie over MySQL MAAK EEN TAFELCOMMANDO
De volgende zijn de vraag en de details ervan:
Zoals te zien is in de bovenstaande afbeelding, is het invoegen van gegevens in de nieuwe tabel uit de bestaande tabel geslaagd.
Let op de berichtkolom op het tabblad Uitvoer. Het zegt 18 getroffen rijen. Dit houdt in dat alle 18 rijen in de bestaande tabel zijn gekopieerd naar de nieuw gemaakte tabel workers_history.
Vervolgens zullen we de uitvoer van onze INSERT-instructie verifiëren met een SELECT-instructie in de tabel workers_history.
De bovenstaande afbeelding toont alle rijen die zijn gekopieerd uit de tabel van de werknemer in de tabel werknemers_geschiedenis.
De bovenstaande afbeelding toont alle rijen die zijn gekopieerd uit de tabel medewerkers in de tabel medewerkers_geschiedenis.
Vraag:
Tabel-momentopname na:
empNum | achternaam | Voornaam | afdelingNum | Salaris | Begin datum | |
---|---|---|---|---|---|---|
1001 | Andrews | Jack | ja@gmail.com | een | 3182,7 | 0001-01-01 |
1002 | Schwatz | Mike | ms@gmail.com | een | 5304.5 | 0001-01-01 |
1003 | Langley | Margaret | margaret.langley@gmail.com | twee | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | een | 10609 | 0001-01-01 |
1005 | lezen | Peter | pl@gmail.com | twee | 14333 | 0001-01-01 |
1006 | Keith | Jenny | jk@gmail.com | twee | 16538 | 0001-01-01 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24494 | 0001-01-01 |
1009 | Beker | Harry | hb@gmail.com | 5 | 30646 | 0001-01-01 |
1010 | Armstrong | Jakob | jacob.armstrong@gmail.com | 4 | 32670 | 0001-01-01 |
1011 | Hanks | Tom | th@gmail.com | NUL | 10100 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1013 | Nolan | Chris | NUL | NUL | NUL | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | een | 25000 | 0001-01-01 |
1015 | Branson | John | jb@gmail.com | twee | 15000 | 0001-01-01 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Johnson | Vooravond | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Bond | Nolan | nb@gmail.com | twee | 15000 | 2019-09-13 00:00:00 |
Veelgestelde vragen en antwoorden
V # 1) Hoe voeg je gegevens in de tabel in MySQL in?
Antwoord: Om gegevens in een MySQL-tabel in te voegen, biedt MySQL ons een belangrijk sleutelwoord 'INSERT INTO'. Dit wordt gevolgd door de tabelnaam, de lijst met kolommen en de lijst met bijbehorende waarden die moeten worden ingevoegd. We kunnen dit trefwoord gebruiken om een of meer kolommen in dezelfde transactie in te voegen.
V # 2) Leg de clausule 'INSERT IGNORE INTO' uit.
Antwoord: Als we proberen meer dan één rij in een enkele INSERT-instructie in te voegen, is het mogelijk dat de uitvoering mislukt vanwege slechte gegevens voor een bepaalde rij. Dit zorgt ervoor dat de transactie stopt en wordt teruggedraaid naar de vorige vastlegging.
Om dergelijke scenario's te vermijden, 'VOEG NEGEREN IN' is gebruikt. Deze clausule negeert de fout die ongeldige records veroorzaakt en voegt alleen geldige records in zodat de transactie niet stopt. Dit is handig als u bulkinvoegingen moet doen en u het zich niet kunt veroorloven om het een rij opnieuw uit te voeren voor slechte gegevens.
V # 3) 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.
V # 4) Kan ik meerdere records invoegen in een enkele MySQL Insert-transactie?
Antwoord: Zoals hierboven afgebeeld, onder de 'Gegevens in meerdere rijen invoegen' sectie kunnen we meerdere rijen invoegen in een enkele invoegtransactie. We kunnen de INSERT INTO-clausule gebruiken, gevolgd door de tabelnaam en de lijst met kolommen, maar in plaats van één lijst met waarden moeten we meerdere lijsten met waarden vermelden voor elk van de kolommen.
V # 5) Waar download je MySQL van?
Antwoord: U kunt MySQL versie 8.0 vanaf hier downloaden: MySQL
Lees ook => Hoe MySQL te downloaden
V # 6) Kan de SELECT-clausule worden gebruikt in de MySQL INSERT-instructie?
Antwoord: Ja, SELECT kan samen met de MySQL INSERT-instructie worden gebruikt. Dit is uitgelegd in de sectie 'MySQL Een tabel uit een andere tabel invoegen'. Dit wordt gebruikt wanneer we rijen in de ene tabel moeten invoegen, met behulp van de gegevens die al in een andere tabel aanwezig zijn.
Bijvoorbeeld, gegevens verplaatsen van de huidige tabel naar de historische tabel in het datawarehouse.
V # 7) Hoe slaat MySQL de datum op in tabellen?
Antwoord: MySQL gebruikt het 'JJJJ-MM-DD' formaat voor het opslaan van data in tabellen. Het gegevenstype hier is DATUM. Het datumbereik dat wordt ondersteund door MySQL is van ‘1000-01-01’ tot ‘9999-12-31’.
MySQL heeft ook een DATETIME-datatype om zowel datum als tijd op te slaan. Het formaat is 'JJJJ-MM-DD uu: mm: ss'. Het acceptabele bereik is van ‘1000-01-01 00:00:00’ tot ‘9999-12-31 23:59:59’.
mit VPN streamen
Aanbevolen literatuur = >> Zelfstudie over MySQL-gegevenstypen
Gevolgtrekking
In deze tutorial hebben we dus geleerd over de vijf verschillende manieren om INSERT-instructies in MySQL uit te voeren.
- MySQL invoegen enkele rij
- MySQL Gegevens invoegen alleen in gespecificeerde kolom
- MySQL Gegevens invoegen in meerdere rijen
- MySQL-datum invoegen
- MySQL Een tabel uit een andere tafel invoegen
We kunnen elk van deze gebruiken, op basis van onze projectvereisten.
Veel leesplezier !!
Aanbevolen literatuur
- Verschil tussen SQL versus MySQL versus SQL Server (met voorbeelden)
- Top 40 beste MySQL interviewvragen en antwoorden (2021 vragen)
- MySQL Update Statement Tutorial - Update Query Syntax & Voorbeelden
- Unix Cat Command Syntax, opties met voorbeelden
- Unix-sorteeropdracht met syntaxis, opties en voorbeelden
- Voeg meerdere documenten in MongoDB in met behulp van arrays
- C # Statement en C # Virtual Method Tutorial met voorbeelden gebruiken
- C # Programmastructuur en basissyntaxis met voorbeelden