mysql insert into table insert statement syntax examples
Denne opplæringen forklarer MYSQL INSERT INTO Table Statement sammen med spørresyntaks og eksempler. Lær også forskjellige variasjoner av MYSQL Insert Command:
I MySQL brukes INSERT-kommandoen for å legge til data i tabellen. Ved å bruke denne kommandoen kan vi sette inn data i en eller flere enn en rad i en enkelt transaksjon. Data kan også legges til en eller flere enn en tabell i en enkelt transaksjon.
Vi vil gå gjennom alle disse i de kommende seksjonene. Før du går videre, vær oppmerksom på at vi bruker MySQL versjon 8.0. Du kan laste den ned fra her .
Hva du vil lære:
- MySQL INSERT Kommandosyntaks
- MySQL INSERT Statement Variations
- Ofte stilte spørsmål og svar
- Konklusjon
MySQL INSERT Kommandosyntaks
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Syntaks Forklaring:
- Syntaksen starter med nøkkelordet “INSERT INTO”, og informerer derved MySQL-serveren om typen aktivitet som skal utføres. Dette er et obligatorisk nøkkelord og kan ikke utelates.
- Deretter kommer navnet på tabellen som innsettingshandlingen må utføres på. Dette er obligatorisk og kan ikke utelates også.
- Deretter blir kolonnenavnene som skal settes inn sammen med tilhørende verdier. Igjen, dette er også obligatorisk og kan ikke utelates.
- Deretter blir verdiparagrafen. I denne paragrafen må man oppgi verdien for hver kolonne som vi setter inn i tabellen. Verdisekvensen og sekvensen av kolonnenavn skal være synkronisert.
- Antallet og datatypene på kolonnene skal være det samme som verdiene.
Modifikatorer i INSERT Statement
- LAV PRIORITET: Denne modifisereren informerer MySQL-motoren om å utsette kjøringen av INSERT-setningen til en slik tid at det ikke er noen forbindelse med å lese fra tabellen som vi prøver å INSERT. Dette hjelper til med å oppnå konsistens på tvers av alle andre operasjoner som skal utføres på bordet.
- HØY PRIORITET: Denne modifisereren informerer MySQL-motoren om å gi INSERT-setningen høy prioritet fremfor andre uttalelser / transaksjon som blir utført på bordet.
- OVERSE: Denne modifisereren informerer MySQL Engine om å ignorere eventuelle feil som kan oppstå på grunn av utførelsen av INSERT-setningen. Eventuelle feil som oppstår vil bli behandlet som bare advarsler og innsetting av poster i tabellen vil fortsette uhindret.
- FORSINKET: Dette er MySQL-utvidelsen til standard SQL. Når INSERT DELAYED er utstedt av brukeren, køer serveren alle radene, og dataene settes inn i tabellen på et senere tidspunkt, når tabellen ikke er i bruk av andre transaksjoner.
MySQL INSERT Eksempel
Følgende er en eksempeltabell opprettet i MySQL.
Skjema navn: Stillehavet
Tabellnavn: ansatte
Kolonnenavn:
- empNum - Har heltallverdier for ansattnummeret.
- etternavn - Har varchar-verdier for etternavn til den ansatte.
- fornavn - Har varchar-verdier for fornavn til den ansatte.
- e-post - Har varchar-verdier for den ansattes e-post-ID.
- deptNum - Har varchar for avdelings-ID som en ansatt tilhører.
- lønn - Har desimalverdier av lønnen for hver ansatt.
- start_date - Har datoverdier for den ansattes tilknytningsdato.
Skjema navn: Stillehavet
Tabellnavn: ansatte_historie
Kolonnenavn:
- empNum - Har heltallverdier for ansattnummeret.
- etternavn - Har varchar-verdier for etternavn til den ansatte.
- fornavn - Har varchar-verdier for fornavn til den ansatte.
- e-post - Har varchar-verdier for den ansattes e-post-ID.
- deptNum - Har varchar for avdelings-ID som en ansatt tilhører.
- lønn - Har desimalverdier av lønn for hver ansatt.
- start_date - Har datoverdier for den ansattes tilknytningsdato.
MySQL INSERT Statement Variations
# 1) MySQL Sett inn en enkelt rad
Først vil vi se på et scenario der vi har spesifisert både kolonnenavnene og verdiene som skal settes inn ved hjelp av INSERT INTO-nøkkelordet.
For eksempel, Her vil vi prøve å sette inn en ny ansatt. Vi vil legge til ansattnummer, for- og etternavn, sammen med at vi også oppdaterer e-post-ID, lønn og avdelings-ID som den nye medarbeideren skal tilhøre.
Spørringen og de tilsvarende resultatene er som følger:
Som avbildet i bildet ovenfor har INSERT-setningen blitt utført vellykket og satt inn en rad i arbeidstakerens bord.
Utdatauttalelsen nedenfor viser tidspunktet da utsagnet ble utført, MySQL-setningen som ble utført, og antall rader som ble berørt.
Vær oppmerksom her, at verdien for hver kolonne er nevnt i samme rekkefølge som kolonnenavnene. Vær også oppmerksom på at kolonnen med datatypen heltall / desimal ikke er omsluttet av inverterte kommaer, men kolonnetypene med varchar / char-datatype har blitt lukket med inverterte kommaer.
For å bekrefte utdataene fra denne INSERT-setningen, la oss utføre SELECT-setningen på denne tabellen med empNum som 1012.
Spørsmål:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Tabell øyeblikksbilde etter:
empNum | etternavn | fornavn | e-post | avd | Lønn | |
---|---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3 | 13000 |
# 2) MySQL setter bare inn data i spesifisert kolonne
Deretter er det en annen måte å sette inn data i en tabell, men ved å sette inn poster bare i de nødvendige kolonnene og ikke i alle kolonnene. Vær imidlertid oppmerksom på at vi ikke kan utelate nøkkelkolonnene i dette scenariet. Når det gjelder tabellen til den ansatte, er nøkkelkolonnen empNum-kolonnen. La oss prøve dette.
For eksempel, Vi vil sette inn en ny post i arbeidstabellen med data om bare empNum, etternavn, fornavn. Vi tildeler ingen e-post-ID, avdeling eller lønn for denne ansatte.
Følgende er spørringen og resultatet:
Som avbildet i bildet ovenfor har innsettingsuttalelsen blitt utført med suksess og satt inn en rad i arbeidstakerens bord.
beste gratis registerrensere for Windows 10
Vær oppmerksom på at for å bare kunne sette inn de valgte kolonnene, skal kolonnene vi hoppet over enten erklæres NULL eller de skal ha noen standardverdi som vil bli fylt ut i tilfelle den kolonnen hoppes over. Hvis denne betingelsen ikke er oppfylt, vil innleggssetningen mislykkes.
La oss verifisere utførelsen av INSERT-setningen ovenfor ved å utføre en SELECT-setning for empNum = 1013.
Spørsmål:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Tabell øyeblikksbilde etter:
empNum | etternavn | fornavn | e-post | avd | Lønn |
---|---|---|---|---|---|
1013 | Nolan | Chris | NULL | NULL | NULL |
# 3) MySQL Sett inn flere rader
Deretter vil vi gå gjennom scenariet der vi må sette inn flere rader i tabellen med samme INSERT-setning.
For eksempel, i dette tilfellet trenger vi bare å nevne kolonnenavnene en gang, men vi kan fortsette å gjenta verdiene for disse kolonnene så mange ganger som nødvendig.
Følgende er spørringen sammen med resultatene knyttet til den:
Som avbildet i bildet ovenfor, var gjennomføringen av uttalelsen vellykket.
Følg meldingsdelen, som sier at tre rader ble berørt, dette innebærer at denne enkle INSERT-setningen satte inn 3 poster med utførelsen av denne INSERT-setningen.
Videre lesing = >> MySQL If Statement Tutorial
La oss verifisere utdataene fra INSERT-setningen vår ved å utføre SELECT-setningen for nyansatte-ID 1014, 1015 og 1016.
Detaljene er som følger:
Spørsmål:
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 øyeblikksbilde etter:
empNum | etternavn | fornavn | e-post | avd | Lønn |
---|---|---|---|---|---|
1014 | Murray | Keith | km@gmail.com | 1 | 25000 |
1015 | Branson | John | jb@gmail.com | to | 15000 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 |
# 4) MySQL setter inn dato
Deretter vil vi gå gjennom scenariet der vi må sette inn verdier i datakolonnen.
For eksempel, Det kan være vanskelig å sette inn verdier i datakolonnen. Datoen i MySQL kan legges til formatet ‘ÅÅÅÅ-MM-DD’. For å oppnå dette, la oss legge til en kolonne startdato med standardverdien som ‘0001-01-01’.
Dette innebærer at alle eksisterende poster i den ansattes tabell med startdatoen blir oppdatert som ‘0001-01-01’. Endringserklæringen vil være som følger.
Spørsmål:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
La oss verifisere utdataene fra spørringen ovenfor ved å utføre en enkel SELECT-setning på bordet:
Så vi har lagt til en ny datakolonne med datatypen som 'DATE' med standardverdien som '0001-01-01'. La oss nå sette inn to nye medarbeiderposter, en med gjeldende dato og en annen med en bestemt dato.
hva er en god e-postleverandør
Følgende er spørsmålene sammen med detaljene:
Som vist på bildet ovenfor, har vi brukt funksjonen til å sette inn flere rader i tabellen som forklart i forrige avsnitt.
Den første posten ble satt inn med CURRENT_DATE () -funksjonen. Denne funksjonen returnerer gjeldende systemdato. Den andre platen ble satt inn med en bestemt dato i formatet ‘ÅÅÅÅ-MM-DD’.
Deretter vil vi verifisere utgangen av INSERT-setningen med en SELECT-setning for empNum 1017 og 1018.
Den første posten, med empNum = 1017, har startdatoen den samme som den gjeldende datoen som er 25thNov 2019 (i dette tilfellet datoen da opplæringen ble skrevet) i formatet ‘ÅÅÅÅ-MM-DD’.
Spørsmål:
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 øyeblikksbilde etter:
empNum | etternavn | fornavn | e-post | avd | Lønn | Startdato |
---|---|---|---|---|---|---|
1017 | Johnson | Eva | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Knytte bånd | Nolan | nb@gmail.com | to | 15000 | 2019-09-13 00:00:00 |
# 5) MySQL Sett inn i en tabell fra en annen tabell
Deretter vil vi gå gjennom scenariet der vi må sette inn data i en ny tabell fra en eksisterende tabell.
For eksempel, Tenk på et scenario der vi med jevne mellomrom må flytte data fra vår eksisterende tabell til en historisk eller arkivtabell. For å oppnå dette, la oss lage en ny tabell medarbeiderhistorie.
Vår oppgave er å flytte data fra arbeidstabellen til tabellen medarbeiderhistorie.
CREATE-utsagnet er som følger:
Spørsmål:
CREATE TABLE employees_history LIKE employees ;
La oss verifisere utgangen av spørringen ovenfor ved å utføre en enkel DESC-setning på den nye tabellen som vil gi oss tabellstrukturen til den nye tabellen:
Så vi har laget en ny tabell. La oss nå laste inn data i denne nye tabellen fra den ansattes tabell.
internett av ting selskaper å se på
=> Lær mer om MySQL OPPRETT BORDKOMMANDO .
Følgende er spørringen og dens detaljer:
Som vist på bildet ovenfor, var innsetting av data i den nye tabellen fra den eksisterende tabellen vellykket.
Vær oppmerksom på meldingskolonnen i utdatafanen. Det står 18 rader berørt. Dette innebærer at alle de 18 radene i den eksisterende tabellen ble kopiert til den nyopprettede medarbeiderhistorikktabellen.
Deretter vil vi verifisere utdataene fra INSERT-setningen vår med en SELECT-setning på tabellen medarbeidere.
Ovenstående bilde viser alle radene som er kopiert fra arbeidstakerens tabell i tabellen med ansatte_historie.
Ovenstående bilde viser alle radene som er kopiert fra tabellen medarbeidere i tabellen ansatte_historie.
Spørsmål:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Tabell øyeblikksbilde etter:
empNum | etternavn | fornavn | e-post | avd | Lønn | Startdato |
---|---|---|---|---|---|---|
1001 | Andrews | Jack | ja@gmail.com | 1 | 3182,7 | 0001-01-01 |
1002 | Schwatz | Mike | ms@gmail.com | 1 | 5304.5 | 0001-01-01 |
1003 | Langley | Margaret | margaret.langley@gmail.com | to | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 | 0001-01-01 |
1005 | lese | Peter | pl@gmail.com | to | 14333 | 0001-01-01 |
1006 | Keith | Jenny | jk@gmail.com | to | 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 | to | 15000 | 0001-01-01 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Johnson | Eva | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Knytte bånd | Nolan | nb@gmail.com | to | 15000 | 2019-09-13 00:00:00 |
Ofte stilte spørsmål og svar
Sp # 1) Hvordan setter du inn data i tabellen i MySQL?
Svar: For å sette inn data i en MySQL-tabell, gir MySQL oss et viktig nøkkelord for 'INSERT INTO'. Dette etterfølges av tabellnavnet, listen over kolonner og listen over tilsvarende verdier som må settes inn. Vi kan bruke dette nøkkelordet til å sette inn en eller flere kolonner i samme transaksjon.
Q # 2) Forklar paragrafen “INSERT IGNORE INTO”.
Svar: Når vi prøver å sette inn mer enn en rad i en enkelt INSERT-setning, kan det være mulig at kjøringen mislykkes på grunn av dårlige data for en bestemt rad. Dette vil føre til at transaksjonen stopper og rulles tilbake til forrige forpliktelse.
For å unngå slike scenarier, “INSERT IGNORE INTO” benyttes. Denne paragrafen ignorerer feilen som forårsaker ugyldige poster, og setter bare inn gyldige poster slik at transaksjonen ikke stopper. Dette er nyttig der du må gjøre bulkinnsatser, og du har ikke råd til å gjøre om det for dårlige data for en rad.
Sp # 3) Hvordan oppdaterer jeg attributter i MySQL?
Svar: Vi kan oppdatere attributter ved hjelp av MySQL Update-setningen, med utsagnet som begynner med UPDATE-nøkkelordet etterfulgt av tabellnavnet. Deretter er SET-setningen etterfulgt av et kolonnenavn og en WHERE-ledd.
Q # 4) Kan jeg sette inn flere poster i en enkelt MySQL Insert-transaksjon?
Svar: Som vist ovenfor, under “Sette inn data i flere rader” seksjon, kan vi sette inn flere rader i en enkelt innskuddstransaksjon. Vi kan bruke INSERT INTO-setningen etterfulgt av tabellnavnet og listen over kolonner, men i stedet for en liste over verdier, må vi nevne flere verdilister for hver av kolonnene.
Spørsmål nr. 5) Hvor laster du ned MySQL fra?
Svar: Du kan laste ned MySQL versjon 8.0 herfra: MySQL .
Les også => Hvordan laste ned MySQL
Q # 6) Kan SELECT-setningen brukes i MySQL INSERT-setningen?
Svar: Ja, SELECT kan brukes sammen med MySQL INSERT-setningen. Dette har blitt forklart i seksjonen “MySQL Sette inn en tabell fra en annen tabell”. Dette brukes når vi må sette inn rader i en tabell, ved hjelp av dataene som allerede finnes i en annen tabell.
For eksempel, flytte data fra den nåværende tabellen til den historiske tabellen i datalageret.
Sp # 7) Hvordan lagrer MySQL dato i tabeller?
Svar: MySQL bruker formatet 'ÅÅÅÅ-MM-DD' for å lagre dato i tabeller. Datatypen her er DATE. Datoperioden som støttes av MySQL er fra ‘1000-01-01’ til ‘9999-12-31’.
MySQL har også en DATETIME-datatype for å lagre både dato og klokkeslett. Formatet er “ÅÅÅÅ-MM-DD tt: mm: ss”. Det akseptable området er fra ‘1000-01-01 00:00:00’ til ‘9999-12-31 23:59:59’.
Anbefalt lesing = >> MySQL datatyper opplæring
Konklusjon
Dermed lærte vi i denne veiledningen om de fem forskjellige måtene å utføre INSERT-setninger i MySQL.
- MySQL setter inn én rad
- MySQL Setter bare inn data i spesifisert kolonne
- MySQL Sette inn data i flere rader
- MySQL setter inn dato
- MySQL Sette inn en tabell fra en annen tabell
Vi kan bruke en av disse, basert på prosjektkravet vårt.
Glad lesning !!
Anbefalt lesing
- Forskjellen mellom SQL Vs MySQL Vs SQL Server (med eksempler)
- Topp 40 beste MySQL intervjuspørsmål og svar (2021 spørsmål)
- MySQL Update Statement Tutorial - Update Query Syntax & Eksempler
- Unix Cat Command Syntax, Alternativer med eksempler
- Unix sorteringskommando med syntaks, alternativer og eksempler
- Sett inn flere dokumenter i MongoDB ved hjelp av arrays
- C # Bruk av uttalelse og C # Virtuell metodeopplæring med eksempler
- C # Programstruktur og grunnleggende syntaks med eksempler