Shrnutí :v tomto tutoriálu vám představíme nejběžněji používané příkazy SQLite programu příkazového řádku sqlite3.
Projekt SQLite poskytuje jednoduchý nástroj příkazového řádku s názvem sqlite3 (nebo sqlite3.exe v systému Windows), který umožňuje interakci s databázemi SQLite pomocí příkazů a příkazů SQL.
Připojte se k databázi SQLite
Chcete-li spustit sqlite3, zadejte sqlite3 následovně:
>sqlite3
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>Code language: Shell Session (shell) Ve výchozím nastavení používá relace SQLite databázi v paměti, takže po skončení relace budou všechny změny odstraněny.
Chcete-li otevřít soubor databáze, použijte .open FILENAME příkaz. Následující příkaz otevře chinook.db databáze:
sqlite> .open c:\sqlite\db\chinook.dbCode language: Shell Session (shell) Pokud chcete při připojení k databázi SQlite otevřít konkrétní databázový soubor, použijte následující příkaz:
>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.13.0 2016-05-18 10:57:30
Enter ".help" for usage hints.
sqlite>Code language: Shell Session (shell) Pokud spustíte relaci s názvem databáze, který neexistuje, nástroj sqlite3 vytvoří soubor databáze.
Například následující příkaz vytvoří databázi s názvem sales v C:\sqlite\db\ adresář:
>sqlite3 c:\sqlite\db\sales.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite>Code language: Shell Session (shell) Zobrazit všechny dostupné příkazy a jejich účely
Chcete-li zobrazit všechny dostupné příkazy a jejich účel, použijte .help příkaz takto:
.helpCode language: Shell Session (shell) Zobrazit databáze v aktuálním připojení k databázi
Chcete-li zobrazit všechny databáze v aktuálním připojení, použijte .databases příkaz. .databases zobrazí alespoň jednu databázi s názvem:main .
Například následující příkaz zobrazí všechny databáze aktuálního připojení:
sqlite> .database
seq name file
--- --------------- --------------------------
0 main c:\sqlite\db\sales.db
sqlite>Code language: Shell Session (shell)
Chcete-li přidat další databázi v aktuálním připojení, použijte příkaz ATTACH DATABASE . Následující příkaz přidává chinook databáze k aktuálnímu připojení.
sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;Code language: Shell Session (shell)
Nyní, když spustíte .database sqlite3 vrátí dvě databáze:main a chinook .
sqlite> .databases
seq name file
--- --------------- ---------------------
0 main c:\sqlite\db\sales.db
2 chinook c:\sqlite\db\chinook.db
Code language: Shell Session (shell) Ukončit nástroj sqlite3
Chcete-li ukončit program sqlite3, použijte .exit příkaz.
sqlite>.exitCode language: Shell Session (shell) Zobrazit tabulky v databázi
Chcete-li zobrazit všechny tabulky v aktuální databázi, použijte .tables příkaz. Následující příkazy otevírají nové databázové připojení k chinook databáze a zobrazí tabulky v databázi.
>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite> .tables
albums employees invoices playlists
artists genres media_types tracks
customers invoice_items playlist_track
sqlite>Code language: Shell Session (shell)
Pokud chcete najít tabulky založené na konkrétním vzoru, použijte .table příkaz vzor. Sqlite3 používá LIKE operátor pro shodu vzorů.
Například následující příkaz vrátí tabulku, která končí řetězcem es .
sqlite> .table '%es'
employees genres invoices media_types
sqlite>Code language: Shell Session (shell) Ukázat strukturu tabulky
Chcete-li zobrazit strukturu tabulky, použijte .schema TABLE příkaz. TABLE argument může být vzorem. Pokud jej vynecháte, .schema příkaz zobrazí struktury všech tabulek.
Následující příkaz ukazuje strukturu albums tabulka.
sqlite> .schema albums
CREATE TABLE "albums"
(
[AlbumId] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[Title] NVARCHAR(160) NOT NULL,
[ArtistId] INTEGER NOT NULL,
FOREIGN KEY ([ArtistId]) REFERENCES "artists" ([ArtistId])
ON DELETE NO ACTION ON UPDATE NO ACTION
);
CREATE INDEX [IFK_AlbumArtistId] ON "albums" ([ArtistId]);
sqlite>Code language: Shell Session (shell)
Chcete-li zobrazit schéma a obsah sqlite_stat tabulky, použijete .fullschema příkaz.
sqlite>.fullschemaCode language: CSS (css) Zobrazit indexy
Chcete-li zobrazit všechny indexy aktuální databáze, použijte .indexes příkaz takto:
sqlite> .indexes
IFK_AlbumArtistId
IFK_CustomerSupportRepId
IFK_EmployeeReportsTo
IFK_InvoiceCustomerId
IFK_InvoiceLineInvoiceId
IFK_InvoiceLineTrackId
IFK_PlaylistTrackTrackId
IFK_TrackAlbumId
IFK_TrackGenreId
IFK_TrackMediaTypeIdCode language: Shell Session (shell)
Chcete-li zobrazit indexy konkrétní tabulky, použijte .indexes TABLE příkaz. Chcete-li například zobrazit indexy albums tabulky, použijete následující příkaz:
sqlite> .indexes albums
IFK_AlbumArtistIdCode language: CSS (css)
Chcete-li zobrazit indexy tabulek, jejichž názvy končí es , použijete vzor operátoru LIKE.
sqlite> .indexes %es
IFK_EmployeeReportsTo
IFK_InvoiceCustomerIdCode language: Shell Session (shell) Uložte výsledek dotazu do souboru
Chcete-li uložit výsledek dotazu do souboru, použijte .output FILENAME příkaz. Jakmile vydáte .output všechny výsledky následných dotazů budou uloženy do souboru, který jste zadali v FILENAME argument. Pokud chcete uložit výsledek dalšího jediného dotazu pouze do souboru, zadejte .once FILENAME příkaz.
Chcete-li znovu zobrazit výsledek dotazu na standardní výstup, zadejte .output příkaz bez argumentů.
Následující příkazy vyberou title z albums a výsledek zapište do albums.txt soubor.
sqlite> .output albums.txt
sqlite> SELECT title FROM albums;Code language: Shell Session (shell) Provádět příkazy SQL ze souboru
Předpokládejme, že máme soubor s názvem commands.txt v c:\sqlite\ složku s následujícím obsahem:
SELECT albumid, title
FROM albums
ORDER BY title
LIMIT 10;Code language: Shell Session (shell)
Chcete-li provést příkazy SQL v commands.txt použijte .read FILENAME příkaz takto:
sqlite> .mode column
sqlite> .header on
sqlite> .read c:/sqlite/commands.txt
AlbumId Title
---------- ----------------------
156 ...And Justice For All
257 20th Century Masters -
296 A Copland Celebration,
94 A Matter of Life and D
95 A Real Dead One
96 A Real Live One
285 A Soprano Inspired
139 A TempestadeTempestade
203 A-Sides
160 Ace Of SpadesCode language: Shell Session (shell) V tomto tutoriálu jste se naučili mnoho užitečných příkazů v nástroji sqlite3 k provádění různých úloh, které se zabývají databází SQLite.