mysql insert into table insert statement syntax examples
Tento výukový program vysvetľuje príkaz MYSQL INSERT INTO Table spolu so syntaxou dotazov a príkladmi. Naučte sa tiež rôzne variácie príkazu vloženia MYSQL:
V MySQL sa na pridanie údajov do tabuľky používa príkaz INSERT. Pomocou tohto príkazu môžeme vložiť údaje do jedného alebo viacerých riadkov v jednej transakcii. Dáta je tiež možné pridať do jednej alebo viacerých tabuliek v jednej transakcii.
To všetko si prejdeme v nasledujúcich častiach. Predtým, ako budete pokračovať, upozorňujeme, že používame MySQL verzie 8.0. Môžete si ho stiahnuť z tu .
Čo sa dozviete:
Syntax príkazu MySQL INSERT
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Vysvetlenie syntaxe:
- Syntax začína kľúčovým slovom „INSERT INTO“, čím informuje server MySQL o type činnosti, ktorá sa má vykonať. Toto je povinné kľúčové slovo a nemožno ho vynechať.
- Ďalej nasleduje názov tabuľky, v ktorej sa má vykonať akcia vloženia. Toto je povinné a nemožno ho tiež vynechať.
- Ďalej budú názvy stĺpcov, ktoré sa majú vložiť, spolu s ich príslušnými hodnotami. Aj toto je opäť povinné a nemožno ho vynechať.
- Ďalej bude klauzula hodnôt. V tejto klauzule musí byť uvedená hodnota pre každý stĺpec, ktorý vkladáme do tabuľky. Postupnosť hodnôt a postupnosť názvov stĺpcov by mali byť synchronizované.
- Počet a dátové typy stĺpcov by mali byť rovnaké ako hodnoty.
Modifikátory vo vyhlásení INSERT
- LOW_PRIORITY: Tento modifikátor informuje MySQL Engine o odložení vykonania príkazu INSERT dovtedy, kým nedôjde k spojeniu s čítaním z tabuľky, ktorú sa pokúšame vložiť. To pomáha pri dosahovaní konzistencie vo všetkých ostatných operáciách, ktoré sa s touto tabuľkou vykonajú.
- HIGH_PRIORITY: Tento modifikátor informuje MySQL Engine tak, aby dal príkazu INSERT vysokú prioritu pred akýmkoľvek iným príkazom / transakcia ktorý sa vykonáva na stole.
- IGNOROVAŤ: Tento modifikátor informuje MySQL Engine o ignorovaní akýchkoľvek chýb, ktoré môžu vzniknúť v dôsledku vykonania príkazu INSERT. Akékoľvek chyby, ktoré vzniknú, by sa považovali za obyčajné varovania a vkladanie záznamov do tabuľky by prebehlo bez prekážok.
- ZPOŽDENÉ: Toto je rozšírenie MySQL na štandardný SQL. Keď užívateľ vydá INSERT DELAYED, server zaradí všetky riadky do frontu a údaje sa do tabuľky vložia neskôr, keď tabuľku nepoužívajú žiadne ďalšie transakcie.
Príklad MySQL INSERT
Nasleduje ukážka tabuľky vytvorenej v MySQL.
Názov schémy: mierumilovný
Názov tabuľky: zamestnancov
Názvy stĺpcov:
- empNum - obsahuje celočíselné hodnoty pre číslo zamestnanca.
- lastName - obsahuje hodnoty varchar pre priezvisko zamestnanca.
- firstName - obsahuje hodnoty varchar pre krstné meno zamestnanca.
- e-mail - obsahuje hodnoty varchar pre e-mailové ID zamestnanca.
- deptNum - obsahuje varchar pre ID oddelenia, ku ktorému zamestnanec patrí.
- plat - obsahuje desatinné hodnoty platu pre každého zamestnanca.
- start_date - obsahuje hodnoty dátumu pre dátum pripojenia zamestnanca.
Názov schémy: mierumilovný
Názov tabuľky: história zamestnancov
Názvy stĺpcov:
- empNum - obsahuje celočíselné hodnoty pre číslo zamestnanca.
- lastName - obsahuje hodnoty varchar pre priezvisko zamestnanca.
- firstName - obsahuje hodnoty varchar pre krstné meno zamestnanca.
- e-mail - obsahuje hodnoty varchar pre e-mailové ID zamestnanca.
- deptNum - obsahuje varchar pre ID oddelenia, ku ktorému zamestnanec patrí.
- plat - obsahuje desatinné hodnoty platu pre každého zamestnanca.
- start_date - obsahuje hodnoty dátumu pre dátum pripojenia zamestnanca.
Variácie príkazu MySQL INSERT
# 1) MySQL vložte jeden riadok
Najskôr sa pozrieme na scenár, kde sme pomocou kľúčového slova INSERT INTO zadali názvy stĺpcov aj hodnoty, ktoré sa majú vložiť.
Napríklad, Tu sa pokúsime vložiť nového zamestnanca. Pridáme číslo zamestnanca, meno a priezvisko a spolu s tým aktualizujeme aj e-mailovú ID, plat a ID oddelenia, do ktorého by nový zamestnanec mal patriť.
Dotaz a príslušné výsledky sú nasledujúce:
Ako je znázornené na obrázku vyššie, príkaz INSERT sa úspešne vykonal a vložil jeden riadok do tabuľky zamestnanca.
Nasledujúci výstupný výkaz zobrazuje čas, kedy bol príkaz vykonaný, vykonaný príkaz MySQL a počet ovplyvnených riadkov.
Upozorňujeme, že hodnota pre každý stĺpec je uvedená v rovnakom poradí ako hodnota pre názvy stĺpcov. Tiež si všimnite, že stĺpec s dátovým typom celé číslo / desatinné číslo nie je uzavretý v invertovaných čiarkach, typy stĺpcov s dátovým typom varchar / char však boli uzavreté invertovanými čiarkami.
Aby sme overili výstup tohto príkazu INSERT, vykonajme príkaz SELECT v tejto tabuľke s empNum ako 1012.
Dopyt:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Snímka tabuľky po:
empNum | priezvisko | krstné meno | odd | Plat | ||
---|---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 | 0001-01-01 |
1012 | Luther | Martina | ml@gmail.com | 3 | 13000 |
# 2) Vkladanie údajov MySQL iba do určeného stĺpca
Ďalej je tu ďalší spôsob vkladania údajov do tabuľky, ale vkladaním záznamov iba do požadovaných stĺpcov a nie do všetkých stĺpcov. Upozorňujeme však, že v tomto scenári nemôžeme vynechať kľúčové stĺpce. V prípade tabuľky našich zamestnancov je kľúčovým stĺpcom stĺpec empNum. Vyskúšajme to.
Napríklad, Vložíme nový záznam do tabuľky zamestnancov s údajmi iba o empNum, priezvisko, meno. Tomuto zamestnancovi nebudeme prideľovať žiadne e-mailové ID, oddelenie ani plat.
Nasleduje dopyt a jeho výsledok:
Ako je znázornené na obrázku vyššie, príkaz insert sa úspešne vykonal a vložil jeden riadok do tabuľky zamestnanca.
čo je funkčné testovanie s príkladom
Vezmite prosím na vedomie, že aby sme mohli vložiť iba vybrané stĺpce, mali by sme preskočené stĺpce buď vyhlásiť za NULL, alebo mali mať nejakú predvolenú hodnotu, ktorá by sa vyplnila v prípade, že by sa stĺpec preskočil. Ak táto podmienka nie je splnená, potom by príkaz insert zlyhal.
Poďme si overiť vykonávanie vyššie uvedeného príkazu INSERT vykonaním príkazu SELECT pre empNum = 1013.
Dopyt:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Snímka tabuľky po:
empNum | priezvisko | krstné meno | odd | Plat | |
---|---|---|---|---|---|
1013 | Nolan | Chris | NULOVÝ | NULOVÝ | NULOVÝ |
# 3) MySQL vložte viac riadkov
Ďalej si prejdeme scenár, kedy musíme do tabuľky vložiť viac riadkov s rovnakým príkazom INSERT.
Napríklad, v takom prípade musíme spomenúť názvy stĺpcov iba raz, môžeme však hodnoty týchto stĺpcov opakovať toľkokrát, koľkokrát je potrebné.
Nasleduje dopyt spolu s výsledkami, ktoré sú s ním spojené:
Ako je znázornené na obrázku vyššie, vykonanie vyhlásenia bolo úspešné.
Sledujte časť správy, ktorá uvádza, že boli ovplyvnené 3 riadky, čo znamená, že tento jediný príkaz INSERT vložil 3 záznamy s vykonaním tohto príkazu INSERT.
Ďalšie čítanie = >> Výukový program pre vyhlásenie MySQL
Poďme si overiť výstup nášho príkazu INSERT vykonaním príkazu SELECT pre nové ID zamestnancov 1014, 1015 a 1016.
Podrobnosti sú tieto:
Dopyt:
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) ;
Snímka tabuľky po:
empNum | priezvisko | krstné meno | odd | Plat | |
---|---|---|---|---|---|
1014 | Murray | Keith | km@gmail.com | jeden | 25000 |
1015 | Branson | Ján | jb@gmail.com | dva | 15000 |
1016 | Martina | Richard | rm@gmail.com | 4 | 5 000 |
# 4) Dátum vloženia MySQL
Ďalej si prejdeme scenár, kde musíme vložiť hodnoty do stĺpca dátumu.
Napríklad, Vkladanie hodnôt do stĺpca s dátumom môže byť zložité. Dátum v MySQL bolo možné pridať do formátu „RRRR-MM-DD“. Aby sme to dosiahli, pridajme stĺpec start_date s predvolenou hodnotou „0001-01-01“.
To znamená, že všetky existujúce záznamy v tabuľke zamestnancov s dátumom začiatku budú aktualizované ako „0001-01-01“. Výrok zmeny bude nasledovný.
Dopyt:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
Poďme overiť výstup z vyššie uvedeného dotazu vykonaním jednoduchého príkazu SELECT v tabuľke:
Takže sme pridali nový stĺpec dátumu s dátovým typom ako „DATE“ s predvolenou hodnotou ako „0001-01-01“. Teraz vložíme dva nové záznamy zamestnancov, jeden s aktuálnym dátumom a druhý s konkrétnym dátumom.
softvér na stiahnutie času pre zamestnancov zdarma
Nasledujú dotazy spolu s podrobnosťami:
Ako je znázornené na obrázku vyššie, využili sme funkciu vkladania viacerých riadkov do tabuľky, ktorá je vysvetlená v predchádzajúcej časti.
Prvý záznam bol vložený s funkciou CURRENT_DATE (). Táto funkcia vráti aktuálny systémový dátum. Druhý záznam bol vložený s konkrétnym dátumom vo formáte „RRRR-MM-DD“.
Ďalej overíme výstup nášho príkazu INSERT príkazom SELECT pre empNum 1017 a 1018.
Prvý záznam s empNum = 1017 má počiatočný dátum rovnaký ako aktuálny dátum, ktorý je 25thNovember 2019 (v tomto prípade dátum napísania tejto príručky) vo formáte „RRRR-MM-DD“.
Dopyt:
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') ;
Snímka tabuľky po:
empNum | priezvisko | krstné meno | odd | Plat | Dátum začiatku | |
---|---|---|---|---|---|---|
1017 | Johnson | Eva | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Bond | Nolan | nb@gmail.com | dva | 15000 | 2019-09-13 00:00:00 |
# 5) MySQL vložiť do tabuľky z inej tabuľky
Ďalej si prejdeme scenár, kedy musíme vložiť údaje do novej tabuľky z existujúcej tabuľky.
Napríklad, Zvážte scenár, keď musíme pravidelne presúvať údaje z našej existujúcej tabuľky do historickej alebo archívnej tabuľky. Aby sme to dosiahli, vytvorme novú tabuľku employee_history.
Našou úlohou je presunúť údaje z tabuľky zamestnancov do tabuľky employee_history.
Príkaz CREATE je nasledovný:
Dopyt:
CREATE TABLE employees_history LIKE employees ;
Poďme si overiť výstup z vyššie uvedeného dotazu vykonaním jednoduchého príkazu DESC v novej tabuľke, ktorý nám poskytne štruktúru tabuľky novej tabuľky:
Takže sme vytvorili novú tabuľku. Teraz načítajme údaje do tejto novej tabuľky z tabuľky zamestnancov.
=> Viac informácií o MySQL VYTVORTE TABUĽKOVÝ PRÍKAZ .
Nasleduje dopyt a jeho podrobnosti:
najlepší súkromný server World of Warcraft
Ako je znázornené na obrázku vyššie, vloženie údajov do novej tabuľky z existujúcej tabuľky bolo úspešné.
Upozorňujeme, že stĺpec správ na výstupnej karte. Píše sa o ovplyvnených 18 riadkoch. To znamená, že všetkých 18 riadkov v existujúcej tabuľke bolo skopírovaných do novovytvorenej tabuľky zamestnanci_história.
Ďalej overíme výstup nášho príkazu INSERT príkazom SELECT v tabuľke zamestnanci_história.
Obrázok vyššie zobrazuje všetky riadky skopírované z tabuľky zamestnanca v tabuľke zamestnanci_história.
Obrázok vyššie zobrazuje všetky riadky skopírované z tabuľky zamestnancov v tabuľke zamestnanci_história.
Dopyt:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Snímka tabuľky po:
empNum | priezvisko | krstné meno | odd | Plat | Dátum začiatku | |
---|---|---|---|---|---|---|
1001 | Andrews | Jack | ja@gmail.com | jeden | 3182,7 | 0001-01-01 |
1002 | Schwatz | Mike | ms@gmail.com | jeden | 5304,5 | 0001-01-01 |
1003 | Langley | Margaréta | margaret.langley@gmail.com | dva | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | jeden | 10609 | 0001-01-01 |
1005 | čítať | 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 | pohár | 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 | NULOVÝ | 10100 | 0001-01-01 |
1012 | Luther | Martina | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1013 | Nolan | Chris | NULOVÝ | NULOVÝ | NULOVÝ | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | jeden | 25000 | 0001-01-01 |
1015 | Branson | Ján | jb@gmail.com | dva | 15000 | 0001-01-01 |
1016 | Martina | Richard | rm@gmail.com | 4 | 5 000 | 0001-01-01 |
1017 | Johnson | Eva | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Bond | Nolan | nb@gmail.com | dva | 15000 | 2019-09-13 00:00:00 |
Často kladené otázky a odpovede
Otázka 1) Ako vkladáte údaje do tabuľky v MySQL?
Odpoveď: Na vkladanie údajov do tabuľky MySQL nám MySQL poskytuje dôležité kľúčové slovo „INSERT INTO“. Nasleduje názov tabuľky, zoznam stĺpcov a zoznam zodpovedajúcich hodnôt, ktoré je potrebné vložiť. Toto kľúčové slovo môžeme použiť na vloženie jedného alebo viacerých stĺpcov do tej istej transakcie.
Otázka č. 2) Vysvetlite klauzulu „INSERT IGNORE INTO“.
Odpoveď: Keď sa pokúsime vložiť viac ako jeden riadok do jedného príkazu INSERT, je možné, že vykonávanie môže zlyhať kvôli zlým údajom pre akýkoľvek konkrétny riadok. To spôsobí, že sa transakcia zastaví a vráti sa späť k predchádzajúcemu potvrdeniu.
Aby sa zabránilo takýmto scenárom, „INSERT IGNORE INTO“ sa používa. Táto klauzula ignoruje chybu spôsobujúcu neplatné záznamy a vkladá iba platné záznamy, aby sa transakcia nezastavila. To je užitočné tam, kde musíte robiť hromadné vloženia a nemôžete si dovoliť urobiť znova prípadné zlé údaje za sebou.
Otázka č. 3) Ako môžem aktualizovať atribúty v MySQL?
Odpoveď: Atribúty môžeme aktualizovať pomocou príkazu MySQL Update, pričom výpis začína kľúčovým slovom UPDATE, za ktorým nasleduje názov tabuľky. Ďalej je klauzula SET, za ktorou nasleduje názov stĺpca a klauzula WHERE.
Otázka č. 4) Môžem vložiť viac záznamov do jednej transakcie vloženia MySQL?
Odpoveď: Ako je znázornené vyššie, pod „Vkladanie údajov do viacerých riadkov“ časti môžeme vložiť viac riadkov do jednej transakcie vloženia. Môžeme použiť klauzulu INSERT INTO, za ktorou nasleduje názov tabuľky a zoznam stĺpcov, ale namiesto jedného zoznamu hodnôt musíme spomenúť viac zoznamov hodnôt pre každý zo stĺpcov.
Otázka č. 5) Odkiaľ sťahujete MySQL?
Odpoveď: MySQL verzie 8.0 si môžete stiahnuť odtiaľto: MySQL .
Prečítajte si tiež => Ako sťahovať MySQL
Otázka č. 6) Môže sa klauzula SELECT použiť vo vyhlásení MySQL INSERT?
Odpoveď: Áno, SELECT možno použiť spolu s vyhlásením MySQL INSERT. To bolo vysvetlené v časti „Vloženie tabuľky MySQL z inej tabuľky“. Používa sa to, keď musíme vložiť riadky do jednej tabuľky pomocou údajov, ktoré už existujú v inej tabuľke.
Napríklad, presun údajov z aktuálnej tabuľky do historickej tabuľky v dátovom sklade.
Otázka č. 7) Ako ukladá MySQL dátum v tabuľkách?
Odpoveď: MySQL používa na ukladanie dátumu do tabuliek formát „RRRR-MM-DD“. Tu je dátový typ DATE. Rozsah dátumov, ktoré podporuje MySQL, je od „1. 1. 2001“ do „9999-12-31“.
MySQL má tiež dátový typ DATETIME na ukladanie dátumu aj času. Formát je „RRRR-MM-DD hh: mm: ss“. Prijateľný rozsah je od „1000-01-01 00:00:00“ do „9999-12-31 23:59:59“.
Odporúčané čítanie = >> Výukový program pre dátové typy MySQL
Záver
V tomto výučbe sme sa teda dozvedeli o piatich rôznych spôsoboch vykonávania príkazov INSERT v MySQL.
- Vkladanie jedného riadku MySQL
- Vkladanie údajov MySQL iba do určeného stĺpca
- Vkladanie dát MySQL do viacerých riadkov
- Dátum vloženia MySQL
- MySQL Vloženie tabuľky z inej tabuľky
Na základe našich požiadaviek na projekt môžeme použiť ktorékoľvek z nich.
Príjemné čítanie !!
Odporúčané čítanie
- Rozdiel medzi serverom SQL Vs MySQL Vs SQL Server (s príkladmi)
- Top 40 najlepších otázok a odpovedí na rozhovor s MySQL (2021 otázok)
- Výukový program pre vyhlásenie o aktualizácii MySQL - aktualizácia syntaxe dotazov a príklady
- Syntax príkazov Unix Cat, možnosti s príkladmi
- Unixový príkaz na triedenie so syntaxou, možnosťami a príkladmi
- Vložte viac dokumentov do MongoDB pomocou polí
- C # Používanie príkazov a C # Výučba virtuálnych metód s príkladmi
- C # Štruktúra programu a základná syntax s príkladmi