sql >> Databáze >  >> RDS >> SQLite

Příkazy SQLite

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.


  1. Jak zdravý je váš SQL Server? Proaktivní monitorování databáze je kritické

  2. SQL Fuzzy Matching

  3. Jak funguje REGEXP_INSTR() v MariaDB

  4. 2 Funkce, které získají den, měsíc a rok z data v Oracle