Přeskočit na obsah

Insert (SQL)

Z Wikipedie, otevřené encyklopedie

SQL příkaz INSERT přidá do tabulky relační databáze nový záznam.

Základní forma

Základní forma příkazu INSERT vypadá takto:

 
 INSERT INTO <tabulka> [(<sloupec>[,...n])] VALUES (<hodnota>[,...n])
 
INSERT INTO <tabulka> [(<sloupec>[,...n])] <SELECT prikaz>
  • <tabulka> - Název tabulky, do které se má nový záznam uložit.
  • <sloupec> - Jmenovitý seznam sloupců, do kterých se hodnoty ukládají.
  • <hodnota> - Vkládaná hodnota. Každá hodnota se uloží do sloupce jež má stejnou pozici ve výčtu sloupců jako tato hodnota.
  • <SELECT prikaz> - Vytvoří sadu výsledků která bude vložena do uvedené tabulky.

Počet sloupců a hodnot musí být stejný. Pokud není sloupeček zadán (tzn. že jméno sloupce není uvedeno v seznamu sloupců), použije se implicitní hodnota. Tato implicitní hodnota se definuje společně s definicí tabulky.

Hodnoty zadané při INSERT dotazu musí splňovat všechny podmínky pro sloupce (např. primární klíč, podmínky CHECK a NOT NULL). Pokud nastane syntaktická chyba, záznam se do tabulky nepřidá.

Příklad

Obsah tabulky telefonni_seznam před vložením nového záznamu

jmeno cislo ulice mesto
Jan Novák 257125474 Wikipedistická 28 Pastoriovice
Jana Nováková 574125474 Luční 6 Praha
  
 INSERT INTO telefonni_seznam (jmeno, cislo) VALUES ('John Doe', '555-1212');

Obsah tabulky telefonni_seznam po vložení nového záznamu

jmeno cislo ulice mesto
Jan Novák 257125474 Wikipedistická 28 Pastoriovice
Jana Nováková 574125474 Luční 6 Praha
John Doe 555-1212 NULL NULL

Pokud jsou zadány hodnoty všech sloupečků, můžeme použít zkrácenou verzi:

 
 INSERT INTO ''tabulka'' VALUES (''hodnota1'', [''hodnota2, ...''])
Příklad
 
 INSERT INTO telefonni_seznam VALUES ('John Doe', '555-1212', 'Pařížská 6','Aš');
jmeno cislo ulice mesto
Jan Novák 257125474 Wikipedistická 28 Pastoriovice
Jana Nováková 574125474 Luční 6 Praha
John Doe 555-1212 Pařížská 6