Shrnutí :v tomto tutoriálu se naučíte používat SQLite INSERT
příkaz pro vložení nových řádků do tabulky.
Chcete-li vložit data do tabulky, použijte INSERT
prohlášení. SQLite poskytuje různé formy INSERT
příkazy, které umožňují vložit do tabulky jeden řádek, více řádků a výchozí hodnoty.
Navíc můžete do tabulky vložit řádek pomocí dat poskytnutých SELECT
prohlášení.
SQLite INSERT
– vložení jednoho řádku do tabulky
Chcete-li do tabulky vložit jeden řádek, použijte následující formulář INSERT
prohlášení:
INSERT INTO table (column1,column2 ,..)
VALUES( value1, value2 ,...);
Code language: SQL (Structured Query Language) (sql)
Podívejme se na INSERT
podrobnější prohlášení:
- Nejprve zadejte název tabulky, do které chcete vložit data za
INSERT INTO
klíčová slova. - Zadruhé přidejte za název tabulky seznam sloupců oddělených čárkami. Seznam sloupců je volitelný. Je však dobrým zvykem zahrnout seznam sloupců za název tabulky.
- Za třetí, přidejte seznam hodnot oddělených čárkami za
VALUES
klíčové slovo. Pokud vynecháte seznam sloupců, musíte zadat hodnoty pro všechny sloupce v seznamu hodnot. Počet hodnot v seznamu hodnot musí být stejný jako počet sloupců v seznamu sloupců.
Použijeme artists
tabulky ve vzorové databázi pro ukázku.
Následující příkaz vloží nový řádek do artists
tabulka:
INSERT INTO artists (name)
VALUES('Bud Powell');
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Protože ArtistId
je sloupec s automatickým přírůstkem, můžete jej v příkazu ignorovat. SQLite automaticky generuje sekvenční celé číslo, které se vloží do ArtistId
sloupec.
Operaci vložení můžete ověřit pomocí následujícího SELECT
prohlášení:
SELECT
ArtistId,
Name
FROM
Artists
ORDER BY
ArtistId DESC
LIMIT 1;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Jak vidíte, máme nový řádek v artists
tabulka.
SQLite INSERT
– Vložení více řádků do tabulky
Chcete-li do tabulky vložit více řádků, použijte následující formulář INSERT
prohlášení:
INSERT INTO table1 (column1,column2 ,..)
VALUES
(value1,value2 ,...),
(value1,value2 ,...),
...
(value1,value2 ,...);
Code language: SQL (Structured Query Language) (sql)
Každý seznam hodnot za VALUES
klauzule je řádek, který bude vložen do tabulky.
Následující příklad vloží tři řádky do artists
tabulka:
INSERT INTO artists (name)
VALUES
("Buddy Rich"),
("Candido"),
("Charlie Byrd");
Code language: SQL (Structured Query Language) (sql)
Zkuste to
SQLite vydal zprávu:
Row Affected: 3
Výsledek můžete ověřit pomocí následujícího prohlášení:
SELECT
ArtistId,
Name
FROM
artists
ORDER BY
ArtistId DESC
LIMIT 3;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
SQLite INSERT
– Vložení výchozích hodnot
Když vytvoříte novou tabulku pomocí CREATE TABLE
můžete zadat výchozí hodnoty pro sloupce nebo NULL
pokud není zadána výchozí hodnota.
Třetí forma INSERT
příkaz je INSERT DEFAULT VALUES
, který vloží nový řádek do tabulky pomocí výchozích hodnot uvedených v definici sloupce nebo NULL
pokud výchozí hodnota není k dispozici a sloupec nemá NOT NULL
omezení.
Například následující příkaz vloží nový řádek do artists
tabulky pomocí INSERT DEFAULT VALUES
:
INSERT INTO artists DEFAULT VALUES;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
K ověření vložení použijte následující příkaz:
SELECT
ArtistId,
Name
FROM
artists
ORDER BY
ArtistId DESC;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Výchozí hodnota ArtistId
sloupec je další sekvenční celé číslo. Nicméně name
sloupec nemá žádnou výchozí hodnotu, proto INSERT DEFAULT VALUES
příkaz vloží NULL
do toho.
SQLite INSERT
– Vkládání nových řádků s daty poskytnutými SELECT
prohlášení
Předpokládejme, že chcete zálohovat artists
tabulky, můžete postupovat takto:
Nejprve vytvořte novou tabulku s názvem artists_backup
takto:
CREATE TABLE artists_backup(
ArtistId INTEGER PRIMARY KEY AUTOINCREMENT,
Name NVARCHAR
);
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Pro vložení dat do artists_backup
tabulka s daty od artists
tabulky, použijete INSERT INTO SELECT
prohlášení takto:
INSERT INTO artists_backup
SELECT ArtistId, Name
FROM artists;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Pokud se dotazujete na data z artists_backup
v tabulce artists
uvidíte všechna data tabulka.
SELECT * FROM artists_backup;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
V tomto tutoriálu jste se naučili používat různé formy SQLite INSERT
příkaz, který vloží nové řádky do tabulky.
Odkazy
- https://www.sqlite.org/lang_insert.html – příkaz SQLite INSERT