mysql insert into table insert statement syntax examples
Denna handledning förklarar MYSQL INSERT INTO Table Statement tillsammans med Query Syntax & Exempel. Lär dig också olika variationer av MYSQL Insert Command:
I MySQL används INSERT-kommandot för att lägga till data i tabellen. Med detta kommando kan vi infoga data i en eller flera rader i en enda transaktion. Data kan också läggas till i en eller flera tabeller i en enda transaktion.
Vi kommer att gå igenom alla dessa i de kommande avsnitten. Innan du går vidare, observera att vi använder MySQL version 8.0. Du kan ladda ner den från här .
Vad du kommer att lära dig:
MySQL INSERT Command Syntax
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Syntaxförklaring:
- Syntaxen börjar med nyckelordet ”INSERT INTO” och informerar därmed MySQL-servern om vilken typ av aktivitet som ska utföras. Detta är ett obligatoriskt nyckelord och kan inte utelämnas.
- Därefter kommer namnet på tabellen som insatsåtgärden måste utföras på. Detta är obligatoriskt och kan inte heller utelämnas.
- Därefter kommer kolumnnamnen att infogas tillsammans med motsvarande värden. Återigen är detta också obligatoriskt och kan inte utelämnas.
- Därefter kommer värdegraden. I denna paragraf måste man ange värdet för varje kolumn som vi infogar i tabellen. Värdesekvensen och kolumnnamnssekvensen bör vara synkroniserade.
- Antalet och datatyperna för kolumner ska vara desamma som för värdena.
Modifierare i INSERT Statement
- LÅG PRIORITET: Denna modifierare informerar MySQL-motorn om att fördröja genomförandet av INSERT-uttalandet till en sådan tidpunkt att det inte finns några kopplingar till att läsa från tabellen som vi försöker INSÄTTA. Detta hjälper till att uppnå konsekvens mellan alla andra operationer som kommer att utföras på det bordet.
- HÖG PRIORITET: Denna modifierare informerar MySQL-motorn att ge hög prioritet åt INSERT-uttalandet framför alla andra uttalanden / transaktion som utförs på bordet.
- IGNORERA: Denna modifierare informerar MySQL Engine om att ignorera alla fel som kan uppstå på grund av genomförandet av INSERT-uttalandet. Eventuella fel som uppstår skulle behandlas som enbart varningar och införande av poster i tabellen skulle fortsätta obehindrat.
- FÖRSENAD: Detta är MySQL-tillägget till standard SQL. När INSERT DELAYED utfärdas av användaren köar servern alla rader och data infogas i tabellen vid ett senare tillfälle när tabellen inte används av andra transaktioner.
MySQL INSERT Exempel
Följande är en provtabell skapad i MySQL.
Schemans namn: stilla
Tabellnamn: anställda
Kolumnnamn:
- empNum - Innehåller heltal för anställds nummer.
- efternamn - Innehåller varcharvärden för anställdas efternamn.
- firstName - Innehåller varcharvärden för anställdas förnamn.
- e-post - Innehåller varchar-värden för den anställdes e-post-ID.
- deptNum - Håller varchar för avdelnings-ID som en anställd tillhör.
- lön - Innehåller decimalvärden för lönen för varje anställd.
- start_date - Innehåller datumvärden för anställdas anslutningsdatum.
Schemans namn: stilla
Tabellnamn: anställda_historia
Kolumnnamn:
- empNum - Innehåller heltal för anställds nummer.
- efternamn - Innehåller varcharvärden för anställdas efternamn.
- firstName - Innehåller varcharvärden för anställdas förnamn.
- e-post - Innehåller varchar-värden för den anställdes e-post-ID.
- deptNum - Håller varchar för avdelnings-ID som en anställd tillhör.
- lön - Har decimalvärden för lönen för varje anställd.
- start_date - Innehåller datumvärden för anställdas anslutningsdatum.
MySQL INSERT Statement Variations
# 1) MySQL Infoga en enda rad
Först ska vi titta på ett scenario där vi har specificerat både kolumnnamnen och värdena som ska infogas med nyckelordet INSERT INTO.
Till exempel, Här kommer vi att försöka sätta in en ny anställd. Vi kommer att lägga till anställdsnummer, för- och efternamn, tillsammans med det kommer vi också att uppdatera e-post-ID, lön och avdelnings-ID som den nya medarbetaren ska tillhöra.
Frågan och motsvarande resultat är som följer:
Som avbildat i bilden ovan har INSERT-uttalandet genomförts framgångsrikt och infogat en rad i medarbetarens tabell.
Utdatauttrycket nedan visar den tidpunkt då uttalandet kördes, MySQL-uttalandet som kördes och antalet rader som påverkades.
Observera här, att värdet för varje kolumn nämns i samma ordning som kolumnnamnen. Observera också att kolumnen med datatypen heltal / decimal inte är innesluten i inverterade komma, men kolumntyperna med varchar / char-datatyp har omges med inverterade komma.
För att verifiera utdata från detta INSERT-uttalande, låt oss köra SELECT-satsen på den här tabellen med empNum som 1012.
Fråga:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Tabell ögonblicksbild efter:
empNum | efternamn | förnamn | e-post | avd | Lön | |
---|---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3 | 13000 |
# 2) MySQL infogar endast data i angiven kolumn
Därefter är ett annat sätt att infoga data i en tabell, men genom att bara infoga poster i de önskade kolumnerna och inte i alla kolumner. Observera dock att vi inte kan utelämna nyckelkolumnerna i detta scenario. När det gäller vår anställds tabell är nyckelkolumnen empNum-kolumnen. Låt oss prova detta.
Till exempel, Vi kommer att infoga en ny post i medarbetartabellen med data om bara empNum, efternamn, förnamn. Vi kommer inte att tilldela något e-post-ID, avdelning eller lön för denna anställd.
Följande är frågan och dess resultat:
Som avbildat i bilden ovan har infogningsuttalandet utförts framgångsrikt och infogat en rad i medarbetarens tabell.
hur öppnar jag swf-filer
Vänligen notera, att för att bara infoga de valda kolumnerna, ska de kolumner som vi hoppade över antingen förklaras NULL eller bör ha något standardvärde som fylls i om den kolumnen hoppas över. Om detta villkor inte är uppfyllt skulle insättningsuttalandet misslyckas.
Låt oss verifiera exekveringen av INSERT-uttalandet ovan genom att köra ett SELECT-uttalande för empNum = 1013.
Fråga:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Tabell ögonblicksbild efter:
empNum | efternamn | förnamn | e-post | avd | Lön |
---|---|---|---|---|---|
1013 | Nolan | Chris | NULL | NULL | NULL |
# 3) MySQL Infoga flera rader
Därefter går vi igenom scenariot där vi måste infoga flera rader i tabellen med samma INSERT-uttalande.
Till exempel, i det här fallet behöver vi bara nämna kolumnnamnen en gång, men vi kan fortsätta att upprepa värdena för dessa kolumner så många gånger som krävs.
Följande är frågan tillsammans med resultaten associerade med den:
Som avbildas i bilden ovan var genomförandet av uttalandet framgångsrikt.
Observera meddelandedelen, som säger att tre rader påverkades, detta innebär att detta enda INSERT-uttalande infogade 3 poster med exekveringen av detta INSERT-uttalande.
Ytterligare läsning = >> MySQL If Statement Tutorial
Låt oss verifiera resultatet av vårt INSERT-uttalande genom att utföra SELECT-uttalandet för nyanställdes ID 1014, 1015 och 1016.
Detaljerna är som följer:
Fråga:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES (1014, 'Murray', 'Keith', 'km@gmail.com', 1, 25000), (1015, 'Branson', 'John', 'jb@gmail.com', 2, 15000), (1016, 'Martin', 'Richard', 'rm@gmail.com', 4, 5000) ;
Tabell ögonblicksbild efter:
empNum | efternamn | förnamn | e-post | avd | Lön |
---|---|---|---|---|---|
1014 | Murray | Keith | km@gmail.com | 1 | 25000 |
1015 | Branson | John | jb@gmail.com | två | 15000 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 |
# 4) MySQL infogar datum
Därefter går vi igenom scenariot där vi måste infoga värden i datumkolumnen.
Till exempel, Att infoga värden i datumkolumnen kan vara svårt. Datumet i MySQL kan läggas till i formatet ”ÅÅÅÅ-MM-DD”. För att uppnå detta, låt oss lägga till en kolumn startdatum med standardvärdet som '0001-01-01'.
Detta innebär att alla befintliga poster i medarbetarens tabell med startdatum kommer att uppdateras som '0001-01-01'. Ändringsförklaringen kommer att vara som följer.
Fråga:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
Låt oss verifiera utdata från ovanstående fråga genom att utföra ett enkelt SELECT-uttalande på bordet:
Så vi har lagt till en ny datumkolumn med datatyp som 'DATE' med standardvärdet '0001-01-01'. Låt oss nu infoga två nya medarbetarregister, en med nuvarande datum och en annan med ett visst datum.
android intervju frågor och svar pdf
Följande är frågorna tillsammans med detaljerna:
Som visas i bilden ovan har vi använt funktionen att infoga flera rader i tabellen som förklaras i föregående avsnitt.
Den första posten infogades med funktionen CURRENT_DATE (). Den här funktionen returnerar det aktuella systemdatumet. Den andra skivan infogades med ett visst datum i formatet ”ÅÅÅÅ-MM-DD”.
Därefter kommer vi att verifiera utdata från vårt INSERT-uttalande med ett SELECT-uttalande för empNum 1017 och 1018.
Den första posten, med empNum = 1017, har startdatum samma som det aktuella datumet som är 25thNov 2019 (i det här fallet datumet då denna handledning skrevs) i formatet ”ÅÅÅÅ-MM-DD”.
Fråga:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary, start_date ) VALUES (1017, 'Johnson', 'Eve', 'ej@gmail.com', 3, 5500, CURRENT_DATE()), (1018, 'Bond', 'Nolan', 'nb@gmail.com', 2, 15000, '2019-09-13') ;
Tabell ögonblicksbild efter:
empNum | efternamn | förnamn | e-post | avd | Lön | Start datum |
---|---|---|---|---|---|---|
1017 | Johnson | Eve | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Obligation | Nolan | nb@gmail.com | två | 15000 | 2019-09-13 00:00:00 |
# 5) MySQL infoga i en tabell från en annan tabell
Därefter går vi igenom scenariot där vi måste infoga data i en ny tabell från en befintlig tabell.
Till exempel, Tänk på ett scenario där vi regelbundet måste flytta data från vår befintliga tabell till en historisk eller arkivtabell. För att uppnå detta ska vi skapa en ny tabell medarbetarhistoria.
Vår uppgift är att flytta data från medarbetartabellen till tabellen medarbetarhistorik.
CREATE-uttalandet är som följer:
Fråga:
CREATE TABLE employees_history LIKE employees ;
Låt oss verifiera utdata från ovanstående fråga genom att utföra ett enkelt DESC-uttalande på den nya tabellen som ger oss tabellstrukturen för den nya tabellen:
Så vi har skapat en ny tabell. Låt oss nu ladda in data i den här nya tabellen från medarbetarens tabell.
=> Läs mer om MySQL SKAPA TABELLKommandO .
Följande är frågan och dess detaljer:
hur man kör jar-fil på Windows 10
Som visas i bilden ovan lyckades infogningen av data i den nya tabellen från den befintliga tabellen.
Observera, meddelandekolumnen i utdatafliken. Det står att 18 rader påverkas. Detta innebär att alla de 18 raderna i den befintliga tabellen kopierades till den nyskapade medarbetarhistorik-tabellen.
Därefter kommer vi att verifiera utdata från vårt INSERT-uttalande med ett SELECT-uttalande på tabellen med anställda.
Ovanstående bild visar alla rader som kopierats från anställdens tabell i tabellen med anställda_historik.
Ovanstående bild visar alla rader som kopierats från tabellen anställda i tabellen med anställda.
Fråga:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Tabell ögonblicksbild efter:
empNum | efternamn | förnamn | e-post | avd | Lön | Start datum |
---|---|---|---|---|---|---|
1001 | Andrews | Jack | ja@gmail.com | 1 | 3182,7 | 0001-01-01 |
1002 | Schwatz | Mikrofon | ms@gmail.com | 1 | 5304,5 | 0001-01-01 |
1003 | Langley | Margaret | margaret.langley@gmail.com | två | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 | 0001-01-01 |
1005 | läsa | Peter | pl@gmail.com | två | 14333 | 0001-01-01 |
1006 | Keith | Jenny | jk@gmail.com | två | 16538 | 0001-01-01 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24494 | 0001-01-01 |
1009 | Kopp | Harry | hb@gmail.com | 5 | 30646 | 0001-01-01 |
1010 | Armstrong | Jacob | jacob.armstrong@gmail.com | 4 | 32670 | 0001-01-01 |
1011 | Hanks | Tom | th@gmail.com | NULL | 10100 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1013 | Nolan | Chris | NULL | NULL | NULL | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | 1 | 25000 | 0001-01-01 |
1015 | Branson | John | jb@gmail.com | två | 15000 | 0001-01-01 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Johnson | Eve | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Obligation | Nolan | nb@gmail.com | två | 15000 | 2019-09-13 00:00:00 |
Vanliga frågor och svar
F # 1) Hur infogar du data i tabellen i MySQL?
Svar: För att infoga data i en MySQL-tabell, ger MySQL oss ett viktigt nyckelord 'INSERT INTO'. Detta följs av tabellnamnet, kolumnlistan och listan över motsvarande värden som måste infogas. Vi kan använda detta nyckelord för att infoga en eller flera kolumner i samma transaktion.
F # 2) Förklara avsnittet 'INSERT IGNORE INTO'.
Svar: När vi försöker infoga mer än en rad i ett enda INSERT-uttalande kan det vara möjligt att körningen misslyckas på grund av dålig data för en viss rad. Detta kommer att leda till att transaktionen stoppas och rullas tillbaka till föregående åtagande.
För att undvika sådana scenarier, “INSERT IGNORE INTO” är använd. Denna klausul ignorerar felet som orsakar ogiltiga poster och infogar endast giltiga poster så att transaktionen inte stoppas. Det här är användbart när du måste göra bulkinsatser och du har inte råd att göra om det för dåliga data för en rad.
F # 3) Hur uppdaterar jag attribut i MySQL?
Svar: Vi kan uppdatera attribut med hjälp av MySQL Update-uttalandet, med uttalandet som börjar med UPDATE-nyckelordet följt av tabellnamnet. Nästa är SET-satsen följt av ett kolumnnamn och en WHERE-sats.
F # 4) Kan jag infoga flera poster i en enda MySQL Insert-transaktion?
Svar: Som avbildas ovan, under “Infoga data i flera rader” avsnitt kan vi infoga flera rader i en enda infogstransaktion. Vi kan använda INSERT INTO-satsen följt av tabellnamnet och listan med kolumner, men i stället för en lista med värden måste vi nämna flera listor med värden för var och en av kolumnerna.
F # 5) Var laddar du ner MySQL från?
Svar: Du kan ladda ner MySQL version 8.0 härifrån: MySQL .
Läs också => Hur man laddar ner MySQL
F # 6) Kan SELECT-satsen användas i MySQL INSERT-uttalande?
Svar: Ja, SELECT kan användas tillsammans med MySQL INSERT-uttalandet. Detta har förklarats i avsnittet ”MySQL Infoga en tabell från en annan tabell”. Detta används när vi måste infoga rader i en tabell med de data som redan finns i någon annan tabell.
Till exempel, flytta data från den aktuella tabellen till den historiska tabellen i datalagret.
F # 7) Hur lagrar MySQL datum i tabeller?
Svar: MySQL använder formatet 'ÅÅÅÅ-MM-DD' för att lagra datum i tabeller. Datatypen här är DATE. Datumintervallet som stöds av MySQL är från '1000-01-01' till '9999-12-31'.
MySQL har också en DATETIME-datatyp för att lagra både datum och tid. Formatet är “ÅÅÅÅ-MM-DD hh: mm: ss”. Det acceptabla intervallet är från '1000-01-01 00:00:00' till '9999-12-31 23:59:59'.
Rekommenderad läsning = >> MySQL datatyper handledning
Slutsats
Således lärde vi oss i denna handledning om de fem olika sätten att köra INSERT-uttalanden i MySQL.
- MySQL infogar en rad
- MySQL Infoga endast data i angiven kolumn
- MySQL Infoga data i flera rader
- MySQL infogar datum
- MySQL Infoga en tabell från en annan tabell
Vi kan använda någon av dessa, baserat på vårt projektkrav.
Glad läsning!!
Rekommenderad läsning
- Skillnad mellan SQL Vs MySQL Vs SQL Server (med exempel)
- Topp 40 bästa MySQL-intervjufrågor och svar (2021 frågor)
- MySQL Update Statement Tutorial - Update Query Syntax & Exempel
- Unix Cat Command Syntax, alternativ med exempel
- Unix Sorteringskommando med syntax, alternativ och exempel
- Infoga flera dokument i MongoDB med hjälp av matriser
- C # Använda uttalande och C # Virtuell metodhandledning med exempel
- C # Programstruktur och grundläggande syntax med exempel