mysql insert into table insert statement syntax examples
Ta vadnica razlaga izjavo tabele MYSQL INSERT INTO skupaj s sintakso poizvedbe in primeri. Spoznajte tudi različne različice ukaza MYSQL Insert:
V MySQL se za dodajanje podatkov v tabelo uporablja ukaz INSERT. S tem ukazom lahko v eno transakcijo vstavimo podatke v eno ali več vrstic. Podatke lahko v eno transakcijo dodate v eno ali več tabel.
Vse to bomo preučili v naslednjih poglavjih. Pred nadaljevanjem upoštevajte, da uporabljamo MySQL različice 8.0. Lahko ga prenesete iz tukaj .
Kaj se boste naučili:
Sintaksa ukaza MySQL INSERT
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Pojasnilo sintakse:
- Sintaksa se začne s ključno besedo “INSERT INTO”, s čimer strežnik MySQL obvešča o vrsti dejavnosti, ki jo je treba izvesti. To je obvezna ključna beseda in je ni mogoče izpustiti.
- Nato sledi ime tabele, v kateri je treba izvesti dejanje vstavljanja. To je obvezno in ga tudi ni mogoče izpustiti.
- Nato bodo imena stolpcev, ki jih je treba vstaviti, skupaj z njihovimi ustreznimi vrednostmi. Tudi to je obvezno in ga ni mogoče izpustiti.
- Nato bo klavzula o vrednostih. V tem stavku je treba navesti vrednost za vsak stolpec, ki ga vstavljamo v tabelo. Zaporedje vrednosti in zaporedje imen stolpcev morata biti sinhronizirana.
- Število in podatkovni tipi stolpcev morajo biti enaki številu in vrednosti podatkov.
Modifikatorji v izjavi INSERT
- LOW_PRIORITY: Ta modifikator obvesti MySQL Engine, da odloži izvajanje stavka INSERT, dokler ne pride do povezav z branjem iz tabele, ki jo poskušamo INSERT. To pomaga doseči doslednost pri vseh drugih operacijah, ki se bodo izvajale na tej mizi.
- VISOKA PRIORITETA: Ta modifikator obvešča MySQL Engine, da daje prednost INSERT stavku pred katero koli drugo izjavo / transakcija ki se izvaja na mizi.
- IGNORE: Ta modifikator obvešča MySQL Engine, da prezre morebitne napake, ki se lahko pojavijo zaradi izvajanja stavka INSERT. Morebitne napake bi se obravnavale kot zgolj opozorila in vstavljanje zapisov v tabelo bi potekalo neovirano.
- ODLOŽENO: To je razširitev MySQL za standardni SQL. Ko uporabnik izda INSERT DELAYED, strežnik postavi v vrsto vse vrstice in podatki se pozneje vstavijo v tabelo, ko tabela ne uporablja nobene druge transakcije.
Primer MySQL INSERT
Sledi vzorčna tabela, ustvarjena v MySQL.
Ime sheme: pacifiški
Ime tabele: zaposlenih
Imena stolpcev:
- empNum - Vsebuje celoštevilčne vrednosti za število zaposlenih.
- lastName - Vsebuje vrednosti varchar za priimek zaposlenega.
- firstName - Vsebuje vrednosti varchar za ime zaposlenega.
- e-pošta - vsebuje vrednosti varchar za e-poštni ID zaposlenega.
- deptNum - Vsebuje varchar za ID oddelka, ki mu pripada zaposleni.
- plača - vsebuje decimalne vrednosti plače za vsakega zaposlenega.
- start_date - vsebuje datumske vrednosti za datum pridružitve zaposlenega.
Ime sheme: pacifiški
Ime tabele: zaposleni_zgodovina
Imena stolpcev:
- empNum - Vsebuje celoštevilčne vrednosti za število zaposlenih.
- lastName - Vsebuje vrednosti varchar za priimek zaposlenega.
- firstName - Vsebuje vrednosti varchar za ime zaposlenega.
- e-pošta - vsebuje vrednosti varchar za e-poštni ID zaposlenega.
- deptNum - Vsebuje varchar za ID oddelka, ki mu pripada zaposleni.
- plača - vsebuje decimalne vrednosti plače za vsakega zaposlenega.
- start_date - vsebuje datumske vrednosti za datum pridružitve zaposlenega.
Različice izjave MySQL INSERT
# 1) MySQL Vstavi eno vrstico
Najprej si bomo ogledali scenarij, kjer smo s ključno besedo INSERT INTO določili imena stolpcev in vrednosti, ki jih je treba vstaviti.
Na primer, Tu bomo poskusili vstaviti novega zaposlenega. Dodali bomo številko, ime in priimek zaposlenega, hkrati pa bomo posodobili tudi e-poštni ID, plačo in ID oddelka, ki bi mu moral pripadati novi zaposleni.
Poizvedba in ustrezni rezultati so naslednji:
Kot je prikazano na zgornji sliki, je izjava INSERT uspešno izvedena in v vrstico zaposlenega vstavila eno vrstico.
Izhodni stavek spodaj prikazuje čas, ko je bil stavek izveden, izvršen stavek MySQL in število vrstic, ki so bile prizadete.
Prosimo, upoštevajte tukaj, da je vrednost za vsak stolpec omenjena v enakem vrstnem redu kot vrednost imen stolpcev. Upoštevajte tudi, da stolpec s podatkovnim tipom celo število / decimalno ni zaprt z obrnjenimi vejicami, vendar pa so tipi stolpcev s podatkovnim tipom varchar / char zaprti z obrnjenimi vejicami.
Da bi preverili izhod tega stavka INSERT, zaženimo stavek SELECT v tej tabeli z empNum kot 1012.
Poizvedba:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Posnetek tabele po:
empNum | priimek | ime | E-naslov | deptNum | Plača | |
---|---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4. | 21780 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3. | 13000 |
# 2) MySQL vstavljanje podatkov samo v določen stolpec
Nato je še en način vstavljanja podatkov v tabelo, vendar z vstavljanjem zapisov samo v zahtevane stolpce in ne v vse stolpce. Vendar upoštevajte, da v tem primeru ne moremo izpustiti ključnih stolpcev. V primeru tabele našega zaposlenega je ključni stolpec stolpec empNum. Preizkusimo to.
Na primer, V tabelo zaposlenih bomo vstavili nov zapis s podatki o samo empNum, lastName, firstName. Temu zaposlenemu ne bomo dodelili ID-jev e-pošte, oddelka ali plače.
Sledi poizvedba in njen rezultat:
Kot je prikazano na zgornji sliki, se je izjava za vstavljanje uspešno izvedla in v vrstico zaposlenega vstavila eno vrstico.
kako odpreti datoteko bin na android -
Prosimo, upoštevajte, da bi morali vstaviti samo izbrane stolpce, stolpce, ki smo jih preskočili, razglasiti za NULL ali pa imeti neko privzeto vrednost, ki bi bila izpolnjena v primeru, da se stolpec preskoči. Če ta pogoj ni izpolnjen, izjava za vstavljanje ne bo uspela.
Preverimo izvajanje zgornjega stavka INSERT z izvajanjem stavka SELECT za empNum = 1013.
Poizvedba:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Posnetek tabele po:
empNum | priimek | ime | E-naslov | deptNum | Plača |
---|---|---|---|---|---|
1013 | Nolan | Chris | NIČ | NIČ | NIČ |
# 3) MySQL Vstavi več vrstic
Nato bomo šli skozi scenarij, ko moramo v tabelo z istim stavkom INSERT vstaviti več vrstic.
Na primer, v tem primeru moramo imena stolpcev omeniti le enkrat, vendar lahko vrednosti teh stolpcev ponavljamo tolikokrat, kot je potrebno.
Sledi poizvedba in z njo povezani rezultati:
Kot je prikazano na zgornji sliki, je bila izvedba izjave uspešna.
Upoštevajte del sporočila, ki navaja, da so bile prizadete 3 vrstice, kar pomeni, da je ta posamezen stavek INSERT vstavil 3 zapise z izvajanjem tega stavka INSERT.
Nadaljnje branje = >> Vadnica za izjavo MySQL
Preverimo rezultat našega stavka INSERT z izvajanjem stavka SELECT za nove ID-je zaposlenih 1014, 1015 in 1016.
Podrobnosti so naslednje:
Poizvedba:
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) ;
Posnetek tabele po:
empNum | priimek | ime | E-naslov | deptNum | Plača |
---|---|---|---|---|---|
1014 | Murray | Keith | km@gmail.com | 1. | 25000 |
1015 | Branson | Janez | jb@gmail.com | dva | 15000 |
1016 | Martin | Richard | rm@gmail.com | 4. | 5000 |
# 4) Vstavljanje datuma MySQL
Nato bomo preučili scenarij, v katerem moramo vstaviti vrednosti v stolpec z datumi.
Na primer, Vstavljanje vrednosti v stolpec z datumi je lahko težavno. Datum v MySQL lahko dodamo v obliko 'LLLL-MM-DD'. Da bi to dosegli, dodajte stolpec start_date s privzeto vrednostjo „0001-01-01“.
To pomeni, da bodo vsi obstoječi zapisi v tabeli zaposlenega z datumom začetka posodobljeni kot ‘0001-01-01’. Izjava o spremembi bo naslednja.
Poizvedba:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
Preverimo izhod zgornje poizvedbe z izvajanjem preprostega stavka SELECT v tabeli:
Torej, dodali smo nov datumski stolpec s podatkovnim tipom 'DATUM' s privzeto vrednostjo '0001-01-01'. Zdaj vstavimo dve novi evidenci zaposlenih, eno s trenutnim datumom in drugo z določenim datumom.
kaj doseže faza preverjanja v življenjskem ciklu programske opreme?
Sledijo poizvedbe skupaj s podrobnostmi:
Kot je prikazano na zgornji sliki, smo uporabili funkcijo vstavljanja več vrstic v tabelo, kot je razloženo v prejšnjem razdelku.
Prvi zapis je bil vstavljen s funkcijo CURRENT_DATE (). Ta funkcija vrne trenutni sistemski datum. Drugi zapis je bil vstavljen z določenim datumom v obliki „LLLL-MM-DD“.
Nato bomo preverili izhod našega stavka INSERT z stavkom SELECT za empNum 1017 in 1018.
Prvi zapis z empNum = 1017 ima datum začetka enak trenutnemu datumu, ki je 25thNovember 2019 (v tem primeru datum, ko je bila napisana ta vadnica) v obliki »LLLL-MM-DD«.
Poizvedba:
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') ;
Posnetek tabele po:
empNum | priimek | ime | E-naslov | deptNum | Plača | Začetni datum |
---|---|---|---|---|---|---|
1017 | Johnson | Eve | ej@gmail.com | 3. | 5500 | 2019-11-25 00:00:00 |
1018 | Obveznica | Nolan | nb@gmail.com | dva | 15000 | 2019-09-13 00:00:00 |
# 5) MySQL vstavi v mizo iz druge tabele
Nato bomo šli skozi scenarij, ko moramo v novo tabelo vstaviti podatke iz obstoječe tabele.
Na primer, Razmislimo o scenariju, ko moramo podatke iz obstoječe tabele občasno premikati v zgodovinsko ali arhivsko tabelo. Da bi to dosegli, ustvarimo novo tabelo worker_history.
Naša naloga je premakniti podatke iz tabele zaposlenih v tabelo zaposleni_zgodovina.
Stavek CREATE je naslednji:
Poizvedba:
CREATE TABLE employees_history LIKE employees ;
Preverimo izhod zgornje poizvedbe z izvajanjem preprostega stavka DESC v novi tabeli, ki nam bo dal strukturo tabele nove tabele:
Tako smo ustvarili novo tabelo. Zdaj naložimo podatke v to novo tabelo iz tabele zaposlenega.
ukaz grep v Linuxu s primeri
=> Več o MySQL USTVARI UKAZ ZA MIZO .
Sledi poizvedba in njene podrobnosti:
Kot je prikazano na zgornji sliki, je bilo vstavljanje podatkov v novo tabelo iz obstoječe tabele uspešno.
Upoštevajte stolpec s sporočili na izhodnem zavihku. Pravi, da je prizadetih 18 vrstic. To pomeni, da je bilo vseh 18 vrstic v obstoječi tabeli kopiranih v novo ustvarjeno tabelo zaposleni_zgodovina.
Nato bomo preverili izhod našega stavka INSERT z izjavo SELECT na tabeli zaposleni_zgodovina.
Zgornja slika prikazuje vse vrstice, kopirane iz tabele zaposlenega v tabeli zaposleni_zgodovina.
Zgornja slika prikazuje vse vrstice, kopirane iz tabele zaposlenih v tabeli zaposleni_zgodovina.
Poizvedba:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Posnetek tabele po:
empNum | priimek | ime | E-naslov | deptNum | Plača | Začetni datum |
---|---|---|---|---|---|---|
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 | dva | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | 1. | 10609 | 0001-01-01 |
1005 | preberite | Peter | pl@gmail.com | dva | 14333 | 0001-01-01 |
1006 | Keith | Jenny | jk@gmail.com | dva | 16538 | 0001-01-01 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3. | 24494 | 0001-01-01 |
1009 | Pokal | 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 | NIČ | 10100 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3. | 13000 | 0001-01-01 |
1013 | Nolan | Chris | NIČ | NIČ | NIČ | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | 1. | 25000 | 0001-01-01 |
1015 | Branson | Janez | jb@gmail.com | dva | 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 | Obveznica | Nolan | nb@gmail.com | dva | 15000 | 2019-09-13 00:00:00 |
Pogosta vprašanja in odgovori
V # 1) Kako vstavite podatke v tabelo v MySQL?
Odgovor: Za vstavljanje podatkov v tabelo MySQL nam MySQL ponuja pomembno ključno besedo »INSERT INTO«. Sledi ime tabele, seznam stolpcev in seznam ustreznih vrednosti, ki jih je treba vstaviti. To ključno besedo lahko uporabimo za vstavljanje enega ali več stolpcev v isto transakcijo.
V # 2) Pojasnite stavek 'INSERT IGNORE INTO'.
Odgovor: Ko poskušamo vstaviti več kot eno vrstico v en stavek INSERT, je mogoče, da izvedba ne uspe zaradi slabih podatkov za katero koli določeno vrstico. To bo povzročilo zaustavitev transakcije in vrnitev nazaj na prejšnjo odobritev.
Da bi se izognili takim scenarijem, 'VSTAVITE IGNORE INTO' se uporablja. Ta klavzula prezre napako, ki povzroča neveljavne zapise, in vstavi samo veljavne zapise, tako da se transakcija ne ustavi. To je koristno, če morate narediti množične vstavke in si ne morete privoščiti ponovitve zaradi slabih podatkov za vrstico.
V # 3) Kako posodobim atribute v MySQL?
Odgovor: Atribute lahko posodobimo z uporabo stavka MySQL Update, pri čemer se stavek začne s ključno besedo UPDATE, ki ji sledi ime tabele. Nato je stavek SET, ki mu sledi ime stolpca in stavek WHERE.
V # 4) Ali lahko v eno transakcijo MySQL Insert vstavim več zapisov?
Odgovor: Kot je prikazano zgoraj, pod 'Vstavljanje podatkov v več vrstic' lahko vstavimo več vrstic v eno transakcijo vstavljanja. Lahko uporabimo stavek INSERT INTO, ki mu sledi ime tabele in seznam stolpcev, vendar moramo namesto enega seznama vrednosti omeniti več seznamov vrednosti za vsak stolpec.
V # 5) Od kod prenesete MySQL?
Odgovor: MySQL različice 8.0 lahko prenesete od tukaj: MySQL .
Preberite tudi => Kako prenesti MySQL
V # 6) Ali se lahko stavek SELECT uporablja v stavku MySQL INSERT?
Odgovor: Da, SELECT je mogoče uporabiti skupaj z izjavo MySQL INSERT. To je bilo pojasnjeno v poglavju 'MySQL Vstavljanje tabele iz druge tabele'. To se uporablja, kadar moramo v eno tabelo vstaviti vrstice z uporabo podatkov, ki so že prisotni v neki drugi tabeli.
Na primer, premikanje podatkov iz trenutne tabele v zgodovinsko tabelo v podatkovnem skladišču.
V # 7) Kako MySQL shrani datum v tabelah?
Odgovor: MySQL za shranjevanje datuma v tabelah uporablja obliko “LLLL-MM-DD”. Podatkovni tip je DATE. Obseg datumov, ki jih podpira MySQL, je od '1000-01-01' do '9999-12-31'.
MySQL ima tudi podatkovni tip DATETIME za shranjevanje datuma in ure. Oblika je »LLLL-MM-DD hh: mm: ss«. Sprejemljivo območje je od ‘1000-01-01 00:00:00’ do ‘9999-12-31 23:59:59’.
Priporočeno branje = >> Vadnica za vrste podatkov MySQL
Zaključek
Tako smo v tej vadnici spoznali pet različnih načinov izvajanja stavkov INSERT v MySQL.
- MySQL Vstavljanje ene vrstice
- MySQL vstavljanje podatkov samo v določeni stolpec
- MySQL Vstavljanje podatkov v več vrstic
- Vstavljanje datuma MySQL
- MySQL Vstavljanje tabele iz druge tabele
Lahko uporabimo katero koli od teh na podlagi naših projektnih zahtev.
Veselo branje !!
Priporočeno branje
- Razlika med SQL Vs MySQL Vs SQL Server (s primeri)
- 40 najboljših vprašanj in odgovorov za intervju z MySQL (2021 vprašanj)
- Vadnica za izjavo o posodobitvi MySQL - Sintaksa in primeri posodobitve poizvedbe
- Sintaksa ukaza Unix Cat, možnosti s primeri
- Ukaz za razvrščanje Unix s sintakso, možnostmi in primeri
- Vstavite več dokumentov v MongoDB z uporabo nizov
- C # Uporaba izjave in vaje za virtualno metodo C # s primeri
- Struktura programa C # in osnovna sintaksa s primeri