Počítače Okna Internet

Transact -SQL - vkládání dat. SQL dotaz INSERT INTO - vyplňte databázi informacemi Syntaxe vložení SQL

Poslední aktualizace: 13. 7. 2017

K přidání dat se používá příkaz INSERT, který má následující formální syntaxi:

VLOŽTE název_tabulky [(seznam_ sloupců)] HODNOTY (hodnota1, hodnota2, ... hodnotaN)

Na začátku je výraz INSERT INTO, poté v závorkách můžete určit seznam sloupců oddělených čárkami, do kterých potřebujete přidat data, a na konci za slovem VALUES jsou hodnoty přidané pro sloupce uvedené v závorkách.

Předpokládejme například, že dříve byla vytvořena následující databáze:

VYTVOŘIT DATABÁZI productsdb; GO USE productsdb; VYTVOŘIT TABULKU Produkty (ID INT IDENTITY PRIMARY KEY, ProductName NVARCHAR (30) NOT NULL, Manufacturer NVARCHAR (20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL)

Přidáme do něj jeden řádek pomocí příkazu INSERT:

VLOŽTE HODNOTY produktů („iPhone 7“, „Apple“, 5, 52 000)

Po úspěšném spuštění v SQL Server Management Studio by se v poli zprávy měla objevit zpráva „1 řádek ovlivněn“:

Je třeba mít na paměti, že hodnoty pro sloupce v závorkách za klíčovým slovem VALUES jsou předávány v pořadí, v jakém jsou deklarovány. Například ve výše uvedeném příkazu CREATE TABLE můžete vidět, že první sloupec je Id. Ale protože je pro něj nastaven atribut IDENTITY, hodnota tohoto sloupce se generuje automaticky a nemusíte ji zadávat. Druhý sloupec představuje ProductName, takže první hodnota, řetězec „iPhone 7“, bude předána do tohoto konkrétního sloupce. Druhá hodnota je řetězec „Apple“ bude předán do třetího sloupce Výrobce a tak dále. To znamená, že hodnoty jsou předány do sloupců následovně:

    Název produktu: „iPhone 7“

    Výrobce: "Apple"

Při zadávání hodnot můžete také zadat bezprostřední sloupce, do kterých budou hodnoty přidány:

VLOŽTE DO VÝROBKŮ (Název produktu, Cena, Výrobce) HODNOTY („iPhone 6S“, 41000, „Apple“)

Zde je hodnota určena pouze pro tři sloupce. A nyní jsou hodnoty předávány v pořadí podle sloupců:

    Název produktu: „iPhone 6S“

    Výrobce: "Apple"

Pro nespecifikované sloupce (v tomto případě ProductCount) bude přidána výchozí hodnota, pokud je nastaven atribut DEFAULT nebo NULL. Nespecifikované sloupce však musí mít hodnotu Null nebo DEFAULT.

Můžeme také přidat několik řádků najednou:

VLOŽTE DO HODNOT produktů („iPhone 6“, „Apple“, 3, 36 000), („Galaxy S8“, „Samsung“, 2, 46 000), („Galaxy S8 Plus“, „Samsung“, 1, 56 000)

V tomto případě budou do tabulky přidány tři řádky.

Při přidávání můžeme také určit, že se pro sloupec použije výchozí hodnota pomocí klíčového slova DEFAULT nebo NULL:

VLOŽTE DO VÝROBKŮ (Název produktu, Výrobce, Číslo produktu, Cena) HODNOTY („Mi6“, „Xiaomi“, DEFAULT, 28000)

V tomto případě bude pro sloupec ProductCount použita výchozí hodnota (pokud je nastavena, pokud není, pak NULL).

Pokud všechny sloupce mají výchozí atribut DEFAULT nebo jsou s možnou hodnotou Null, pak můžete vložit výchozí hodnoty pro všechny sloupce:

VLOŽTE DO VÝROBKŮ VÝCHOZÍ HODNOTY

Ale pokud vezmete tabulku Produkty, pak takový příkaz selže, protože několik polí nemá atribut DEFAULT a zároveň nepovoluje hodnoty NULL.

Tento příkaz přidá do tabulky jeden nebo více záznamů (provede připojovací dotaz).

Syntax

Žádost o přidání více záznamů:

VLOŽ DO target_object [(pole 1[, pole2[, ...]])]
VYBERTE [ zdroj.]pole 1[, pole2[, ...]
Z tabulka_výraz

Žádost o přidání jednoho záznamu:

VLOŽ DO target_object [(pole 1[, pole2[, ...]])]
HODNOTY ( pole 1[, pole2[, ...])

Příkaz INSERT INTO se skládá z následujících prvků:

Část

Popis

target_object

Název tabulky nebo dotazu, do kterého se přidávají záznamy.

pole 1, pole2

Po hádce target_object- názvy polí, do kterých jsou data přidána; po hádce zdroj- názvy polí, ze kterých jsou data extrahována.

externí_databáze

Cesta k externí databázi. Popis cesty naleznete v článku o klauzuli IN.

zdroj

Název tabulky nebo dotazu, ze kterého jsou záznamy kopírovány.

tabulka_výraz

Jeden nebo více názvů tabulek, ze kterých se mají načítat záznamy. Tento argument může být název jednotlivé tabulky, výraz výsledku vytvořený pomocí VNITŘNÍHO PŘIPOJENÍ, LEVÉHO PŘIPOJENÍ nebo PRAVÉHO PŘIPOJENÍ, nebo uloženého dotazu.

hodnota1, hodnota2

Hodnoty, které mají být přidány do konkrétních polí v novém záznamu. Každá hodnota je vložena do pole, které odpovídá její pozici v seznamu: hodnota1 přidáno k pole 1 nový vstup, hodnota2- v pole2 atd. Hodnoty oddělte čárkou a textová pole uzavřete do uvozovek ("").

Poznámky

Pomocí příkazu INSERT INTO můžete přidat jeden záznam do tabulky pomocí výše uvedené syntaxe. V tomto případě jsou pro každé pole v záznamu uvedeny názvy a hodnoty. Musíte zadat všechna pole záznamu, ke kterému přiřadíte hodnoty a odpovídající hodnoty. Pokud nezadáte hodnotu pole, bude jí přiřazena výchozí hodnota nebo NULL. Záznamy jsou připojeny na konec tabulky.

Můžete také použít INSERT INTO k přidání sady záznamů z jiné tabulky nebo dotazu pomocí klauzule SELECT ... FROM, jak je uvedeno výše (viz syntaxe dotazu pro přidání více záznamů). V tomto případě klauzule SELECT určuje pole, která mají být přidána do zadaného target_object.

Zdroj nebo target_object může být tabulka nebo dotaz. Pokud je zadán dotaz, databázový stroj Microsoft Access přidá záznamy do všech tabulek, které vrátí.

Použití příkazu INSERT INTO je nepovinné. Pokud je zadán, musí předcházet příkazu SELECT.

Pokud cílová tabulka obsahuje primární klíč, ujistěte se, že hodnoty přidané do jednoho nebo více polí primárního klíče jsou jedinečné a liší se od NULA; jinak nebudou přidány žádné položky.

Pokud přidáváte záznamy do tabulky s polem Počítadlo a chcete je přečíslovat, pole Čítač do dotazu nezahrnujte. Pokud chcete zachovat původní hodnoty z pole, zahrňte do dotazu pole Počitadlo.

Záznamy můžete přidat do tabulky v jiné databázi pomocí klauzule IN.

Chcete -li vytvořit tabulku, použijte příkaz SELECT ... INTO k získání dotazu k vytvoření tabulky.

Před spuštěním přidávacího dotazu pomocí výběrového dotazu se stejnými kritérii výběru určete, které záznamy budou přidány na základě získaných výsledků.

Připojovací dotaz zkopíruje záznamy z jedné nebo více tabulek do jiné tabulky. Tabulky obsahující přidané záznamy přitom zůstávají beze změny.

Místo přidávání záznamů z jiné tabulky můžete zadat hodnotu každého pole v samostatném novém záznamu pomocí klauzule VALUES. Pokud je seznam polí vynechán, musí klauzule VALUES obsahovat odpovídající hodnoty pro každé pole v tabulce; jinak operace VLOŽENÍ se nezdaří. Pro každý další záznam, který chcete vytvořit, použijte příkaz INSERT INTO spolu s klauzulí VALUES.

Pro vložení nových řádků do tabulky se používají příkazy SQL INSERT INTO a INSERT SELECT. Pokyny lze použít dvěma způsoby:

  1. Pouze hodnoty: První metoda slouží k určení pouze datových hodnot, které mají být vloženy bez názvů sloupců.

Syntax:

INSERT INTO table_name VALUES (hodnota1, hodnota2, hodnota3, ...); název_tabulky: název tabulky. hodnota1, hodnota2, ..: hodnoty prvního sloupce, druhého sloupce, ... pro nový záznam

  1. Názvy sloupců a hodnoty: Druhá metoda určuje názvy sloupců a hodnoty řádků, které se mají vložit:

Syntax:

INSERT INTO table_name (column1, column2, column3, ..) VALUES (value1, value2, value3, ...); název_tabulky: název tabulky. column1: název prvního sloupce, druhého sloupce ... hodnota1, hodnota2, ..: hodnoty prvního sloupce, druhého sloupce, ... pro nový záznam

požadavky:

Metoda 1 ( vkládání pouze hodnot):

VLOŽTE DO HODNOT studentských hodnot („5“, „HARSH“, „WEST BENGAL“, „8759770477“, „19“);

Výsledek :

Po použití INSERT INTO SELECT bude tabulka Student nyní vypadat takto:

ROLL_NO NÁZEV ADRESA TELEFON Stáří
1 RAM Dillí 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Dillí 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
5 DRSNÝ ZÁPADNÍ BENGÁLSKO 8759770477 19

Metoda 2 ( vkládání hodnot pouze do zadaných sloupců):

INSERT INTO Student (ROLL_NO, NAME, Age) VALUES ("5", "PRATIK", "19");

Výsledek :

Studentská tabulka bude nyní vypadat takto:

ROLL_NO NÁZEV ADRESA TELEFON Stáří
1 RAM Dillí 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Dillí 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
5 PRATIK nula nula 19

Všimněte si, že sloupce bez hodnot jsou nastaveny na null.

Použití příkazu SELECT v příkazu INSERT INTO

Pomocí příkazu MySQL INSERT SELECT můžete zkopírovat řádky z jedné tabulky a vložit je do jiné.

Použití tohoto operátoru je stejné jako použití INSERT INTO. Rozdíl je v tom, že příkaz SELECT slouží k načítání dat z jiné tabulky. Následují různé způsoby použití VLOŽIT DO VÝBĚRU:

  • Vložte všechny sloupce tabulky: Můžete zkopírovat všechna data tabulky a vložit je do jiné tabulky.

Syntax:

INSERT INTO first_table SELECT * FROM second_table; first_table: název první tabulky. second_table: název druhé tabulky.

Pro zkopírování dat z jedné tabulky jsme použili příkaz SELECT a pro vložení do jiné příkaz INSERT INTO.

  • Vložte jednotlivé sloupce tabulky... Můžete kopírovat pouze ty sloupce tabulky, které chcete vložit do jiné tabulky.

Syntax:

INSERT INTO first_table (column_names1) SELECT column_names2 FROM second_table; first_table: název první tabulky. druhá_tabulka: název druhé tabulky. column_names1: názvy sloupců oddělené čárkou (,) pro tabulku 1.column_names2: názvy sloupců oddělené čárkou (,) pro tabulku 2.

K kopírování dat pouze z vybraných sloupců druhé tabulky jsme použili příkaz SELECT a příkaz MySQL INSERT INTO SELECT jej vložili do první tabulky.

  • Kopírování konkrétních řádků z tabulky... Můžete zkopírovat konkrétní řádky z tabulky pro pozdější vložení do jiné tabulky pomocí klauzule WHERE s příkazem SELECT. V takovém případě musíte použít příslušnou podmínku v KDE.

Syntax:

Tabulka 2: LateralStudent

ROLL_NO NÁZEV ADRESA TELEFON Stáří
7 SOUVIK DUMDUM 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 NĚKTERÝ ROHTAK 9687543210 20

požadavky:

Metoda 1 ( vložte všechny řádky a sloupce):

INSERT INTO Student SELECT * FROM LateralStudent;

Výsledek :

Tento dotaz vloží všechna data z tabulky LateralStudent do tabulky Student. Po použití SQL INSERT INTO SELECT bude tabulka Student vypadat takto:

ROLL_NO NÁZEV ADRESA TELEFON Stáří
1 RAM Dillí 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Dillí 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
7 SOUVIK DUMDUM 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 NĚKTERÝ ROHTAK 9687543210 20

Metoda 2 ( vkládání jednotlivých sloupců):

INSERT INTO Student (ROLL_NO, NAME, Age) SELECT ROLL_NO, NAME, Age FROM LateralStudent;

Výsledek :

Tento dotaz vloží data ze sloupců ROLL_NO, NAME a Age tabulky LateralStudent do tabulky Student. Zbytek sloupců ve studentské tabulce bude nastaven na null. Po použití SQL INSERT SELECT bude tabulka vypadat takto:

ROLL_NO NÁZEV ADRESA TELEFON Stáří
1 RAM Dillí 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Dillí 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
7 SOUVIK Nula nula 18
8 NIRAJ Nula nula 19
9 NĚKTERÝ Nula nula 20
  • Výběr konkrétních řádků pro vložení:

Výsledek :

Tento dotaz vybere pouze první řádek z tabulky LateralStudent pro vložení do tabulky Student. Po použití INSERT SELECT bude tabulka vypadat takto.

Příkaz INSERT vloží do tabulky nové záznamy. V tomto případě mohou být hodnoty sloupců doslovnými konstantami nebo mohou být výsledkem poddotazu. V prvním případě se pro vložení každého řádku používá samostatný příkaz INSERT; ve druhém případě bude vloženo tolik řádků, kolik bylo vráceno poddotazem.

Syntaxe operátora je následující:

    VLOŽ DO [(, ...)]

    (HODNOTY (, ...))

  1. | (VÝCHOZÍ HODNOTY)

Jak můžete vidět z poskytnuté syntaxe, seznam sloupců je volitelný (jak je uvedeno v hranatých závorkách v popisu syntaxe). Pokud chybí, seznam vložených hodnot musí být úplný, to znamená poskytnout hodnoty pro všechny sloupce tabulky. Pořadí hodnot však musí odpovídat pořadí určenému příkazem CREATE TABLE pro tabulku, do které jsou řádky vloženy. Kromě toho musí být tyto hodnoty stejného datového typu jako sloupce, do kterých jsou zadány. Jako příklad zvažte vložení řádku do tabulky produktů vytvořené následujícím příkazem CREATE TABLE:

    CREATE TABLE produkt

    maker char (1) NOT NULL,

    model varchar (4) NOT NULL,

    typ varchar (7) NENÍ NULL

Předpokládejme, že do této tabulky chcete přidat model PC 1157 od výrobce B. To lze provést s následujícím operátorem:

    VLOŽTE DO PRODUKTU

    HODNOTY („B“, 1157, „PC“);

Pokud zadáte seznam sloupců, můžete změnit „přirozené“ pořadí jejich následujících položek:

    VLOŽIT DO VÝROBKU (typ, model, výrobce)

    HODNOTY ("PC", 1157, "B");

Zdálo by se, že se jedná o zcela nadbytečnou funkci, která jen činí design těžkopádnějším. Vyhraje však, pokud mají sloupce výchozí hodnoty. Zvažte následující strukturu tabulky:

    CREATE TABLE product_D

    výrobce char (1) NULL,

    model varchar (4) NULL,

    typ varchar (7) NENÍ NULOVÝ VÝCHOZÍ "PC"

Všimněte si, že zde mají hodnoty všech sloupců výchozí hodnoty (první dva jsou NULL a poslední sloupec je typ - PC). Nyní bychom mohli napsat:

    INSERT INTO Product_D (model, maker)

    HODNOTY (1157, "B");

V tomto případě bude chybějící hodnota při vkládání řádku nahrazena výchozí hodnotou PC. Všimněte si, že pokud není pro sloupec v příkazu CREATE TABLE uvedena výchozí hodnota a není zadáno omezení NOT NULL, které by v daném sloupci tabulky zakázalo použití NULL, pak se předpokládá výchozí hodnota NULL.

Nabízí se otázka: je možné neurčit seznam sloupců a přesto použít výchozí hodnoty? Odpověď je ano. Chcete -li to provést, místo explicitního zadání hodnoty použijte DEFAULT vyhrazené slovo:

    VLOŽTE DO PRODUKTU_D

    HODNOTY ("B", 1158, VÝCHOZÍ);

Vzhledem k tomu, že všechny sloupce mají výchozí hodnoty, je možné napsat řádek s výchozími hodnotami:

    VLOŽTE DO PRODUKTU_D

    HODNOTY (DEFAULT, DEFAULT, DEFAULT);

Pro tento případ však existuje speciální konstrukce DEFAULT VALUES (viz syntaxe operátora), pomocí které lze výše uvedený operátor přepsat jako

    VLOŽTE DO VÝROBKŮ HODNOTY Product_D;

Všimněte si, že při vkládání řádku do tabulky jsou zkontrolována všechna omezení uložená v této tabulce. Mohou to být omezení primárního klíče nebo jedinečného indexu, kontrolní omezení, jako je CHECK, a omezení referenční integrity. Pokud dojde k porušení jakéhokoli omezení, vložení řádku bude odmítnuto. Podívejme se nyní na případ použití pro poddotaz. Předpokládejme, že musíme do tabulky Product_D vložit všechny řádky z tabulky Product související s modely osobních počítačů (typ = ‘PC’). Vzhledem k tomu, že hodnoty, které potřebujeme, jsou již v nějaké tabulce, ruční vytváření vložených řádků je za prvé neúčinné a za druhé může způsobit chyby při zadávání. Použití poddotazu řeší tyto problémy:

Použití symbolu "*" v poddotazu je v tomto případě opodstatněné, protože pořadí sloupců je pro obě tabulky stejné. Pokud by tomu tak nebylo, musel by být použit seznam sloupců, a to buď v příkazu INSERT, v poddotazu, nebo v obou, což by odpovídalo pořadí sloupců:

Zde, stejně jako dříve, můžete zadat ne všechny sloupce, pokud chcete použít stávající výchozí hodnoty, například:

V tomto případě bude do sloupce typu tabulky Product_D nahrazena výchozí hodnota PC pro všechny vložené řádky.

Všimněte si, že při použití poddotazu obsahujícího predikát budou vloženy pouze řádky, pro které je hodnota predikátu PRAVDA (nikoli UNKNOWN!). Jinými slovy, pokud by typový sloupec v tabulce Product byl s možnou hodnotou null a tato hodnota by byla přítomna v řadě řádků, pak by tyto řádky nebyly vloženy do tabulky Product_D.

Chcete -li překonat omezení vložení jednoho řádku do příkazu INSERT při použití konstruktoru řádku v klauzuli VALUES, můžete uměle použít poddotaz, který tvoří řádek s klauzulí UNION ALL. Pokud tedy potřebujeme vložit více řádků pomocí jednoho příkazu INSERT, můžeme napsat:

    VLOŽTE DO PRODUKTU_D

    ZVOLTE výrobce AS „B“, model 1158 AS, typ „PC“ AS

    UNION ALL

    SELECT "C", 2190, "Laptop"

    UNION ALL

    VYBERTE „D“, 3219, „Tiskárna“;

Použití UNION ALL je vhodnější než UNION, i když nejsou zaručeny žádné duplicitní řetězce, protože od té doby nebude provedena žádná duplicitní kontrola.

Je třeba poznamenat, že vkládání více n-tic pomocí konstruktoru řetězce je již implementováno v Systém pro správu relační databáze (DBMS) vyvinutý společností Microsoft Corporation.Structured Query Language) je univerzální počítačový jazyk používaný k vytváření, úpravám a správě dat v relačních databázích. SQL Server 2008. S ohledem na tuto příležitost lze poslední dotaz přepsat jako:

    VLOŽTE DO HODNOT Product_D

    ("B", 1158, "PC"),

    ("C", 2190, "Laptop"),

Co je INSERT INTO?

Hlavním cílem databázových systémů je ukládat data do tabulek. Data jsou obvykle dodávána aplikačními programy, které běží nad databází. Za tímto účelem má SQL příkaz INSERT, který se používá k ukládání dat do tabulky. The Příkaz INSERT vytvoří nový řádek v tabulce pro uložení dat.

Základní syntaxe

Podívejme se na základní syntaxi níže uvedeného příkazu SQL INSERT.

INSERT INTO `název_tabulky` (sloupec_1, sloupec_2, ...) VALUES (hodnota_1, hodnota_2, ...);

  • VLOŽTE DO `název_tabulky` je příkaz, který říká serveru MySQL, aby přidal nový řádek do tabulky s názvem `název_tabulky`.
  • (sloupec_1, sloupec_2, ...) určuje sloupce, které mají být aktualizovány v novém řádku
  • HODNOTY (hodnota_1, hodnota_2, ...) určuje hodnoty, které mají být přidány do nového řádku

Při zadávání datových hodnot, které mají být vloženy do nové tabulky, je třeba při práci s různými datovými typy vzít v úvahu následující.

  • Řetězcové datové typy- všechny hodnoty řetězce by měly být uzavřeny v jednoduchých uvozovkách.
  • Číselné datové typy- všechny číselné hodnoty by měly být dodány přímo, aniž by byly uzavřeny v jednoduchých nebo dvojitých uvozovkách.
  • Datové typy data-hodnoty data uzavřete do jednoduchých uvozovek ve formátu „RRRR-MM-DD“.

Příklad:

Předpokládejme, že máme následující seznam nových členů knihovny, které je třeba přidat do databáze.

Úplná jména Datum narození Rod Fyzická adresa Poštovní adresa Kontaktní číslo Emailová adresa
Leonard Hofstadter mužský Woodcrest 0845738767
Sheldon Cooper mužský Woodcrest 0976736763
Rajesh Koothrappali mužský Fairview 0938867763
Leslie winkle 14/02/1984 mužský 0987636553
Howard wolowitz 24/08/1981 mužský Jižní park P.O. Rámeček 4563 0987786553

Pojďme "VKLÁDAT data jeden po druhém. Začneme Leonardem Hofstadterem. S kontaktním číslem budeme zacházet jako s číselným datovým typem a nebudeme jej uzavírat do jednoduchých uvozovek."

INSERT INTO `members` (` full_names`, `gender`,` physical_address`, `contact_number`) VALUES (" Leonard Hofstadter "," Male "," Woodcrest ", 0845738767);

Provedení výše uvedeného skriptu vypustí 0 z Leonardova kontaktního čísla. Je to proto, že hodnota bude považována za číselnou hodnotu a nula (0) na začátku je vypuštěna, protože není významná.

Aby se předešlo takovým problémům, musí být hodnota uzavřena v jednoduchých uvozovkách, jak je uvedeno níže -

INSERT INTO `members` (` full_names`, `gender`,` physical_address`, `contact_number`) VALUES (" Sheldon Cooper "," Male "," Woodcrest "," 0976736763 ");

Ve výše uvedeném případě nebude nula (0) zrušena

Změna pořadí sloupců nemá na dotaz INSERT žádný vliv, pokud byly do správných sloupců namapovány správné hodnoty.

Níže uvedený dotaz demonstruje výše uvedený bod.

INSERT INTO `members` (` contact_number`, `gender`,` full_names`, `physical_address`) VALUES (" 0938867763 "," Male "," Rajesh Koothrappali "," Woodcrest ");

Výše uvedené dotazy přeskočily sloupec data narození, ve výchozím nastavení MySQL vloží hodnoty NULL do sloupců, které jsou v dotazu INSERT přeskočeny.

Vložme nyní záznam pro Leslie, na kterém je uvedeno datum narození. Hodnota data by měla být uzavřena do jednoduchých uvozovek ve formátu „RRRR-MM-DD“.

INSERT INTO `members` (` full_names`, `date_of_birth`,` gender`, `physical_address`,` contact_number`) VALUES ("Leslie Winkle", "1984-02-14", "Male", "Woodcrest", " 0987636553");

Všechny výše uvedené dotazy specifikovaly sloupce a namapovaly je na hodnoty v příkazu insert. Pokud zadáváme hodnoty pro VŠECHNY sloupce v tabulce, můžeme sloupce z dotazu na vložení vynechat.

VLOŽTE DO HODNOT „členů“ (9, „Howard Wolowitz“, „Muž“, „1981-08-24“, „SouthPark“, „P.O. Box 4563“, „0987786553“, „lwolowitzemail.me“);

Pojďme nyní použít příkaz SELECT k zobrazení všech řádků v tabulce členů. SELECT * FROM` members`;

členské číslofull_namesRoddatum narozenífyzická adresapostal_addressčíslo_kontaktue-mailem
1 Janet jonesženský21-07-1980 První pouliční zápletka č. 4Soukromá taška0759 253 542 Tato e-mailová adresa je chráněna před spamboty. K zobrazení potřebujete povolený JavaScript.
2 Janet Smith Jonesženský23-06-1980 Melrose 123NULANULATato e-mailová adresa je chráněna před spamboty. K zobrazení potřebujete povolený JavaScript.
3 Robert Philmužský12-07-1989 3. ulice 34NULA12345 Tato e-mailová adresa je chráněna před spamboty. K zobrazení potřebujete povolený JavaScript.
4 Gloria Williamsováženský14-02-1984 2. ulice 23NULANULANULA
5 Leonard HofstadtermužskýNULAWoodcrestNULA845738767 NULA
6 Sheldon CoopermužskýNULAWoodcrestNULA976736763 NULA
7 Rajesh KoothrappalimužskýNULAWoodcrestNULA938867763 NULA
8 Leslie winklemužský14-02-1984 WoodcrestNULA987636553 NULA
9 Howard wolowitzmužský24-08-1981 SouthParkP.O. Rámeček 4563987786553 Tato e-mailová adresa je chráněna před spamboty. K zobrazení potřebujete povolený JavaScript.

Všimněte si, že kontaktní číslo na Leonarda Hofstadtera vypustilo nulu (0) z kontaktního čísla. Ostatní kontaktní čísla na začátku neklesla na nulu (0).

Vkládání do tabulky z jiné tabulky

Příkaz INSERT lze také použít k vložení dat do tabulky z jiné tabulky. Základní syntaxe je uvedena níže.

INSERT INTO table_1 SELECT * FROM table_2;

Podívejme se nyní na praktický příklad, pro ukázkové účely vytvoříme fiktivní tabulku pro kategorie filmů. Nové kategorie nazveme tabulkou category_archive. Níže uvedený skript vytvoří tabulku.

VYTVOŘIT TABULKU `category_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` Remarks` varchar (500) DEFAULT NULL, PRIMARY KEY (`category_id`))

Tabulku vytvoříte spuštěním výše uvedeného skriptu.

Pojďme nyní vložit všechny řádky z tabulky kategorií do archivní tabulky kategorií. Níže uvedený skript nám toho pomáhá dosáhnout.

VLOŽIT DO `Kategorie_archivu` VYBRAT * OD` kategorií`;

Spuštěním výše uvedeného skriptu se vloží všechny řádky z tabulky kategorií do tabulky archivu kategorií. Struktura tabulky musí být stejná, aby skript fungoval. Robustnější skript je skript, který mapuje názvy sloupců v tabulce pro vložení na ty v tabulce obsahující data.

Níže uvedený dotaz ukazuje jeho použití.

VLOŽTE DO `kategorie_archiv` (category_id, category_name, poznámky) SELECT category_id, category_name, poznámky FROM` categories`;

Provádění dotazu SELECT

VYBERTE * Z `kategorie_archiv`

poskytuje následující výsledky uvedené níže.

id_kategorieNázev Kategoriepoznámky
1 KomedieFilmy s humorem
2 RomantickýMilostné příběhy
3 EpickéPříběhové starověké filmy
4 HrůzaNULA
5 Sci -fiNULA
6 ThrillerNULA
7 AkceNULA
8 Romantická komedieNULA
9 KarikaturyNULA
10 KarikaturyNULA

souhrn

  • Příkaz INSERT se používá k přidání nových dat do tabulky
  • Hodnoty data a řetězce by měly být uzavřeny do jednoduchých uvozovek.
  • Číselné hodnoty nemusí být uzavřeny v uvozovkách.
  • Příkaz INSERT lze také použít k vložení dat z jedné tabulky do druhé.