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 INTOklíč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
VALUESklíč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