Tento článek obsahuje základní SQL INSERT
příkazy, které mohou začátečníci používat k vkládání dat do svých databázových tabulek.
Základní syntaxe
Základní syntaxe pro vkládání dat do SQL vypadá takto:
INSERT INTO TableName (Column1, Column2, Column3, ...)
VALUES (Value1, Value2, Value3, ...);
Kde:
TableName
je název tabulky, do které chcete vložit dataColumn1
, atd. jsou názvy sloupců, do kterých chcete vložit dataValue1
, atd. jsou hodnoty, které vkládáte do těchto sloupců. Pořadí těchto hodnot musí odpovídat pořadí, ve kterém jste uvedli sloupce (tj.Value1
přejde doColumn1
, atd.).
Názvy sloupců můžete vynechat, pokud hodnoty vkládáte do všech sloupců. V takovém případě můžete použít následující syntaxi:
INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);
Všimněte si, že některé DBMS používají složitější syntaxi než tato (tj. nabízejí více možností), ale obecně se jedná o základní syntaxi požadovanou pro vkládání dat do tabulky.
Vložit do všech sloupců
Zde je základní příklad, který vkládá data do všech sloupců v tabulce:
INSERT INTO PetTypes
VALUES( 1, 'Bird' );
V tomto případě jsou v PetTypes
dva sloupce tabulky a do obou sloupců vkládáme hodnoty, proto nemusíme uvádět názvy sloupců.
Výše uvedené prohlášení je stejné jako toto:
INSERT INTO PetTypes( PetTypeId, PetType )
VALUES( 1, 'Bird' );
Naše data můžeme zkontrolovat spuštěním SELECT
prohlášení.
SELECT * FROM PetTypes;
Výsledek:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | +-------------+-----------+
Vložit do některých sloupců
Zde je základní příklad, který vkládá data jen do některých sloupců v tabulce:
INSERT INTO Users( UserId, FirstName, LastName )
VALUES( 1, 'Lansell', 'Letterman' );
Tato tabulka má ve skutečnosti čtyři sloupce, ale data vkládáme pouze do tří z těchto sloupců. Můžeme to vidět, když spustíme SELECT
příkaz k tabulce po vložení dat.
SELECT * FROM Users;
Výsledek:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | +----------+-------------+------------+-----------------------------+
Jak vložit hodnoty do nesprávného pořadí
Metoda seznamu sloupců umožňuje vkládat data, která nejsou ve stejném pořadí:
INSERT INTO Users( LastName, FirstName, UserId )
VALUES( 'Pitt', 'Bart', 2 );
V tomto příkladu jsem přeuspořádal pořadí sloupců a jejich příslušné hodnoty. Naštěstí seznam sloupců poskytuje DBMS pokyny, kam by měla být každá hodnota vložena.
Pokud tedy nyní vybereme naše data, uvidíme, že byla vložena do správných sloupců.
SELECT * FROM Users;
Výsledek:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | | 2 | Bart | Pitt | 2020-11-21 05:30:07.4456867 | +----------+-------------+------------+-----------------------------+
Vložte výsledek dotazu
Je také možné vložit sadu výsledků dotazu do tabulky. Existuje několik přístupů, které s tím můžete použít.
- Použijte
INSERT INTO... SELECT
prohlášení. V tomto případě musíte nejprve vytvořit tabulku, než do ní vložíte sadu výsledků dotazu. - Použijte příkaz CREATE TABLE… AS SELECT. Tato metoda automaticky vytvoří novou tabulku na základě sady výsledků dotazu a poté tyto výsledky vloží do tabulky. Přestože tato metoda odpovídá standardu SQL, není podporována všemi DBMS.
- Použijte
SELECT INTO
prohlášení. Je to podobné jako u předchozí možnosti. Automaticky vytvoří novou tabulku na základě sady výsledků dotazu a poté tyto výsledky vloží do tabulky. Pokud předchozí metoda (CREATE TABLE ... AS SELECT
) není vaším DBMS podporováno, zkuste tuto metodu.