mysql insert into table insert statement syntax examples
Tento výukový program vysvětluje příkaz MYSQL INSERT INTO Table spolu se syntaxí dotazů a příklady. Naučte se také různé varianty příkazu MYSQL Insert:
V MySQL se příkaz INSERT používá k přidání dat do tabulky. Pomocí tohoto příkazu můžeme vložit data do jednoho nebo více než jednoho řádku v jedné transakci. Data lze také přidat do jedné nebo více než jedné tabulky v jedné transakci.
To vše projdeme v následujících částech. Než budete pokračovat, vezměte prosím na vědomí, že používáme MySQL verze 8.0. Můžete si jej stáhnout z tady .
Co se naučíte:
Syntaxe příkazu MySQL INSERT
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Vysvětlení syntaxe:
- Syntaxe začíná klíčovým slovem „INSERT INTO“, čímž informuje server MySQL o typu činnosti, která má být provedena. Toto je povinné klíčové slovo a nelze jej vynechat.
- Dále přichází název tabulky, ve které je třeba provést akci vložení. Toto je povinné a nelze jej také vynechat.
- Dále budou názvy sloupců, které mají být vloženy, spolu s jejich odpovídajícími hodnotami. I zde je to povinné a nelze jej vynechat.
- Dále bude klauzule hodnot. V této klauzuli je třeba uvést hodnotu pro každý sloupec, který vkládáme do tabulky. Pořadí hodnot a pořadí názvů sloupců by měly být synchronizovány.
- Počet a datové typy sloupců by měly být stejné jako u hodnot.
Modifikátory v prohlášení INSERT
- LOW_PRIORITY: Tento modifikátor informuje MySQL Engine, aby odložil provedení příkazu INSERT až do doby, kdy nedojde k žádnému spojení se čtením z tabulky, kterou se pokoušíme INSERT. To pomáhá při dosahování konzistence napříč všemi ostatními operacemi, které se v této tabulce provedou.
- S VYSOKOU PRIORITOU: Tento modifikátor informuje MySQL Engine o upřednostnění příkazu INSERT před jakýmkoli jiným příkazem / transakce který se provádí na stole.
- IGNOROVAT: Tento modifikátor informuje MySQL Engine o ignorování všech chyb, které mohou nastat v důsledku provedení příkazu INSERT. Jakékoli chyby, které vzniknou, by byly považovány za pouhá varování a vkládání záznamů do tabulky by probíhalo nerušeně.
- ZPOŽDĚNÍ: Toto je rozšíření MySQL na standardní SQL. Když uživatel vydá INSERT DELAYED, server zařadí všechny řádky do fronty a data se do tabulky vloží později, když tabulku nepoužívají žádné jiné transakce.
Příklad MySQL INSERT
Následuje ukázková tabulka vytvořená v MySQL.
Název schématu: Pacifik
Název tabulky: zaměstnanci
Názvy sloupců:
- empNum - obsahuje celočíselné hodnoty pro číslo zaměstnance.
- lastName - Obsahuje hodnoty varchar pro příjmení zaměstnance.
- firstName - Zadržuje hodnoty varchar pro křestní jméno zaměstnance.
- e-mail - obsahuje hodnoty varchar pro e-mailové ID zaměstnance.
- deptNum - Obsahuje varchar pro ID oddělení, ke kterému zaměstnanec patří.
- plat - Obsahuje desítkové hodnoty platu pro každého zaměstnance.
- start_date - Obsahuje hodnoty data pro datum připojení zaměstnance.
Název schématu: Pacifik
Název tabulky: zaměstnanci_historie
Názvy sloupců:
- empNum - obsahuje celočíselné hodnoty pro číslo zaměstnance.
- lastName - Obsahuje hodnoty varchar pro příjmení zaměstnance.
- firstName - Zadržuje hodnoty varchar pro křestní jméno zaměstnance.
- e-mail - obsahuje hodnoty varchar pro e-mailové ID zaměstnance.
- deptNum - Obsahuje varchar pro ID oddělení, ke kterému zaměstnanec patří.
- plat - obsahuje desítkové hodnoty platu pro každého zaměstnance.
- start_date - Obsahuje hodnoty data pro datum připojení zaměstnance.
Varianty příkazu MySQL INSERT
# 1) MySQL vložte jeden řádek
Nejprve se podíváme na scénář, kde jsme zadali názvy sloupců i hodnoty, které se mají vložit pomocí klíčového slova INSERT INTO.
Například, Zde se pokusíme vložit nového zaměstnance. Přidáme číslo zaměstnance, jméno a příjmení, spolu s tím také aktualizujeme ID e-mailu, plat a ID oddělení, ke kterému by měl nový zaměstnanec patřit.
Dotaz a odpovídající výsledky jsou následující:
Jak je znázorněno na obrázku výše, příkaz INSERT byl úspěšně proveden a vložil jeden řádek do tabulky zaměstnance.
Níže uvedený výstupní příkaz zobrazuje čas, kdy byl příkaz proveden, příkaz MySQL, který byl proveden, a počet řádků, které byly ovlivněny.
Zde mějte na paměti, že hodnota pro každý sloupec je uvedena ve stejném pořadí jako u názvů sloupců. Všimněte si také, že sloupec s datovým typem integer / decimal není uzavřen v obrácených čárkách, avšak typy sloupců s datovým typem varchar / char byly uzavřeny s převrácenými čárkami.
Abychom mohli ověřit výstup tohoto příkazu INSERT, proveďme v této tabulce příkaz SELECT s empNum jako 1012.
Dotaz:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Snapshot tabulky po:
empNum | příjmení | jméno | e-mailem | odd | Plat | |
---|---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3 | 13000 |
# 2) Vkládání dat MySQL pouze do zadaného sloupce
Další, další způsob vkládání dat do tabulky, ale vložením záznamů pouze do požadovaných sloupců a ne do všech sloupců. Upozorňujeme však, že v tomto scénáři nemůžeme vynechat klíčové sloupce. V případě tabulky našich zaměstnanců je klíčovým sloupcem sloupec empNum. Zkusme to.
Například, Vložíme nový záznam do tabulky zaměstnanců s daty pouze na empNum, lastName, firstName. Tomuto zaměstnanci nebudeme přidělovat žádné e-mailové ID, oddělení ani plat.
Následuje dotaz a jeho výsledek:
Jak je znázorněno na obrázku výše, příkaz insert byl úspěšně proveden a vložil jeden řádek do tabulky zaměstnance.
přidat na konec pole java
Mějte na paměti, že za účelem vložení pouze vybraných sloupců by sloupce, které jsme přeskočili, měly být buď prohlášeny za NULL, nebo by měly mít nějakou výchozí hodnotu, která by byla vyplněna v případě, že je sloupec přeskočen. Pokud tato podmínka není splněna, pak by příkaz insert selhal.
Pojďme ověřit provedení výše uvedeného příkazu INSERT provedením příkazu SELECT pro empNum = 1013.
Dotaz:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Snapshot tabulky po:
empNum | příjmení | jméno | e-mailem | odd | Plat |
---|---|---|---|---|---|
1013 | Nolan | Chrisi | NULA | NULA | NULA |
# 3) MySQL Vložit více řádků
Dále projdeme scénář, kdy musíme do tabulky vložit více řádků se stejným příkazem INSERT.
Například, v tomto případě musíme zmínit názvy sloupců pouze jednou, ale můžeme hodnoty těchto sloupců opakovat tolikrát, kolikrát je potřeba.
Následuje dotaz spolu s výsledky s ním spojenými:
Jak je znázorněno na obrázku výše, provedení příkazu bylo úspěšné.
Sledujte část zprávy, která uvádí, že byly ovlivněny 3 řádky, což znamená, že tento jediný příkaz INSERT vložil 3 záznamy s provedením tohoto příkazu INSERT.
Další čtení = >> Výukový program pro prohlášení MySQL
Pojďme ověřit výstup našeho příkazu INSERT provedením příkazu SELECT pro nové ID zaměstnanců 1014, 1015 a 1016.
Podrobnosti jsou následující:
Dotaz:
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) ;
Snapshot tabulky po:
empNum | příjmení | jméno | e-mailem | odd | Plat |
---|---|---|---|---|---|
1014 | Murray | Keith | km@gmail.com | 1 | 25 000 |
1015 | Branson | John | jb@gmail.com | dva | 15000 |
1016 | Martin | Richarde | rm@gmail.com | 4 | 5000 |
# 4) Datum vložení MySQL
Dále projdeme scénářem, kde musíme vložit hodnoty do sloupce data.
Například, Vkládání hodnot do sloupce data může být obtížné. Datum v MySQL lze přidat do formátu „RRRR-MM-DD“. Abychom toho dosáhli, přidejme sloupec start_date s výchozí hodnotou „0001-01-01“.
To znamená, že všechny existující záznamy v tabulce zaměstnanců s počátečním datem budou aktualizovány jako „0001-01-01“. Prohlášení o změně bude následující.
Dotaz:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
Pojďme ověřit výstup výše uvedeného dotazu provedením jednoduchého příkazu SELECT v tabulce:
Přidali jsme tedy nový sloupec data s datovým typem „DATE“ s výchozí hodnotou „0001-01-01“. Nyní vložíme dva nové záznamy zaměstnanců, jeden s aktuálním datem a druhý s konkrétním datem.
software pro hodiny a ven zdarma
Následují dotazy spolu s podrobnostmi:
Jak je znázorněno na obrázku výše, použili jsme funkci vložení více řádků do tabulky, jak je vysvětleno v předchozí části.
První záznam byl vložen pomocí funkce CURRENT_DATE (). Tato funkce vrací aktuální systémové datum. Druhý záznam byl vložen s konkrétním datem ve formátu „RRRR-MM-DD“.
Dále ověříme výstup našeho příkazu INSERT pomocí příkazu SELECT pro empNum 1017 a 1018.
První záznam s empNum = 1017 má start_date stejný jako aktuální datum, které je 25thListopad 2019 (v tomto případě datum, kdy byl tento kurz napsán) ve formátu „RRRR-MM-DD“.
Dotaz:
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') ;
Snapshot tabulky po:
empNum | příjmení | jméno | e-mailem | odd | Plat | Datum zahájení |
---|---|---|---|---|---|---|
1017 | Johnson | Předvečer | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Pouto | Nolan | nb@gmail.com | dva | 15000 | 2019-09-13 00:00:00 |
# 5) Vložení MySQL do tabulky z jiné tabulky
Dále projdeme scénář, kde musíme vložit data do nové tabulky ze stávající tabulky.
Například, Zvažte scénář, kdy musíme pravidelně přesouvat data z naší existující tabulky do historické nebo archivní tabulky. Abychom toho dosáhli, vytvořme novou tabulku employee_history.
Naším úkolem je přesunout data z tabulky zaměstnanců do tabulky employee_history.
Příkaz CREATE je následující:
Dotaz:
CREATE TABLE employees_history LIKE employees ;
Pojďme ověřit výstup výše uvedeného dotazu provedením jednoduchého příkazu DESC v nové tabulce, který nám poskytne strukturu tabulky nové tabulky:
Takže jsme vytvořili novou tabulku. Nyní načtěte data do této nové tabulky z tabulky zaměstnanců.
=> Další informace o MySQL VYTVOŘIT PŘÍKAZ TABULKY .
Následuje dotaz a jeho podrobnosti:
Jak ukazuje obrázek nahoře, vložení dat do nové tabulky ze stávající tabulky proběhlo úspěšně.
Dodržujte prosím sloupec zpráv na kartě výstup. Říká, že je ovlivněno 18 řádků. To znamená, že všech 18 řádků ve stávající tabulce bylo zkopírováno do nově vytvořené tabulky zaměstnanců_historie.
Dále ověříme výstup našeho příkazu INSERT pomocí příkazu SELECT v tabulce zaměstnanci_historie.
Výše uvedený obrázek zobrazuje všechny řádky zkopírované z tabulky zaměstnance v tabulce zaměstnanci_historie.
jak používat soubor eps
Výše uvedený obrázek zobrazuje všechny řádky zkopírované z tabulky zaměstnanců v tabulce zaměstnanci_historie.
Dotaz:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Snapshot tabulky po:
empNum | příjmení | jméno | e-mailem | odd | Plat | Datum zahájení |
---|---|---|---|---|---|---|
1001 | Andrews | Zvedák | 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 | číst | Petr | 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 | NULA | 10100 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1013 | Nolan | Chrisi | NULA | NULA | NULA | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | 1 | 25 000 | 0001-01-01 |
1015 | Branson | John | jb@gmail.com | dva | 15000 | 0001-01-01 |
1016 | Martin | Richarde | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Johnson | Předvečer | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Pouto | Nolan | nb@gmail.com | dva | 15000 | 2019-09-13 00:00:00 |
Často kladené otázky a odpovědi
Otázka č. 1) Jak vložíte data do tabulky v MySQL?
Odpovědět: Chcete-li vložit data do tabulky MySQL, MySQL nám poskytuje důležité klíčové slovo „INSERT INTO“. Následuje název tabulky, seznam sloupců a seznam odpovídajících hodnot, které je třeba vložit. Toto klíčové slovo můžeme použít k vložení jednoho nebo více sloupců do stejné transakce.
Otázka č. 2) Vysvětlete klauzuli „INSERT IGNORE INTO“.
Odpovědět: Když se pokusíme vložit více než jeden řádek do jednoho příkazu INSERT, je možné, že spuštění může selhat kvůli špatným datům pro konkrétní řádek. To způsobí, že se transakce zastaví a bude vrácena zpět k předchozímu potvrzení.
Aby se těmto scénářům zabránilo, „INSERT IGNORE INTO“ se používá. Tato klauzule ignoruje chybu způsobující neplatné záznamy a vloží pouze platné záznamy, aby se transakce nezastavila. To je užitečné tam, kde musíte dělat hromadné vložky a nemůžete si dovolit to udělat znovu kvůli nějakým špatným datům pro řádek.
Otázka č. 3) Jak mohu aktualizovat atributy v MySQL?
Odpovědět: Můžeme aktualizovat atributy pomocí příkazu MySQL Update, přičemž prohlášení začíná klíčovým slovem UPDATE následovaným názvem tabulky. Dále je klauzule SET následovaná názvem sloupce a klauzulí WHERE.
Otázka č. 4) Mohu vložit více záznamů do jedné transakce MySQL Insert?
Odpovědět: Jak je znázorněno výše, pod „Vkládání dat do více řádků“ sekce, můžeme vložit více řádků do jedné transakce vložení. Můžeme použít klauzuli INSERT INTO následovanou názvem tabulky a seznamem sloupců, ale namísto jednoho seznamu hodnot musíme zmínit více seznamů hodnot pro každý ze sloupců.
Otázka č. 5) Odkud stahujete MySQL?
Odpovědět: MySQL verze 8.0 si můžete stáhnout zde: MySQL .
Přečtěte si také => Jak stáhnout MySQL
Otázka č. 6) Lze klauzuli SELECT použít v příkazu MySQL INSERT?
Odpovědět: Ano, SELECT lze použít spolu s příkazem MySQL INSERT. To bylo vysvětleno v části „Vkládání tabulky MySQL z jiné tabulky“. To se používá, když musíme vložit řádky do jedné tabulky pomocí dat, která již existují v jiné tabulce.
Například, přesun dat z aktuální tabulky do historické tabulky v datovém skladu.
Otázka č. 7) Jak MySQL ukládá datum do tabulek?
Odpovědět: MySQL používá pro ukládání data v tabulkách formát „RRRR-MM-DD“. Zde je datový typ DATE. Rozsah dat podporovaných MySQL je od „1000-01-01“ do „9999-12-31“.
MySQL má také datový typ DATETIME pro ukládání data i času. Formát je „RRRR-MM-DD hh: mm: ss“. Přijatelné rozmezí je od „1000-01-01 00:00:00“ do „9999-12-31 23:59:59“.
Doporučené čtení = >> Výukový program pro datové typy MySQL
Závěr
V tomto kurzu jsme se tedy dozvěděli o pěti různých způsobech provádění příkazů INSERT v MySQL.
- Vkládání MySQL do jednoho řádku
- Vkládání dat MySQL pouze do zadaného sloupce
- Vkládání dat MySQL do více řádků
- Datum vložení MySQL
- MySQL Vložení tabulky z jiné tabulky
Můžeme použít kterýkoli z nich na základě našich požadavků na projekt.
Šťastné čtení!!
Doporučené čtení
- Rozdíl mezi SQL Vs MySQL Vs SQL Server (s příklady)
- Top 40 nejlepších otázek a odpovědí na rozhovor s MySQL (2021 otázek)
- Výukový program pro prohlášení o aktualizaci MySQL - aktualizace syntaxe dotazů a příklady
- Syntaxe příkazů Unix Cat, možnosti s příklady
- Unixový příkaz pro řazení se syntaxí, možnostmi a příklady
- Vložte více dokumentů do MongoDB pomocí polí
- C # Použití příkazu a C # Virtuální metoda s příklady
- Struktura programu C # a základní syntaxe s příklady