sql >> Databasteknik >  >> RDS >> SQLite

SQLite-kommandon

Sammanfattning :i den här handledningen kommer vi att introducera dig till de vanligaste SQLite-kommandona i kommandoradsprogrammet sqlite3.

SQLite-projektet levererar ett enkelt kommandoradsverktyg som heter sqlite3 (eller sqlite3.exe på Windows) som låter dig interagera med SQLite-databaserna med hjälp av SQL-satser och kommandon.

Anslut till en SQLite-databas

För att starta sqlite3, skriver du sqlite3 enligt följande:

>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)

Som standard använder en SQLite-session databasen i minnet, därför kommer alla ändringar att försvinna när sessionen slutar.

För att öppna en databasfil använder du .open FILENAME kommando. Följande sats öppnar chinook.db databas:

sqlite> .open c:\sqlite\db\chinook.dbCode language: Shell Session (shell)

Om du vill öppna en specifik databasfil när du ansluter till SQLite-databasen använder du följande kommando:

>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)

Om du startar en session med ett databasnamn som inte finns, kommer verktyget sqlite3 att skapa databasfilen.

Till exempel skapar följande kommando en databas med namnet sales i C:\sqlite\db\ katalog:

>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)

Visa alla tillgängliga kommandon och deras syften

För att visa alla tillgängliga kommandon och deras syfte använder du .help kommando enligt följande:

.helpCode language: Shell Session (shell)

Visa databaser i den aktuella databasanslutningen

För att visa alla databaser i den aktuella anslutningen använder du .databases kommando. .databases kommandot visar minst en databas med namnet:main .

Till exempel visar följande kommando alla databaser för den aktuella anslutningen:

sqlite> .database
seq  name             file
---  ---------------  --------------------------
0    main             c:\sqlite\db\sales.db
sqlite>Code language: Shell Session (shell)

För att lägga till ytterligare en databas i den aktuella anslutningen använder du satsen ATTACH DATABASE . Följande sats lägger till chinook databas till den aktuella anslutningen.

sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;Code language: Shell Session (shell)

Om du nu kör .database kommandot igen, returnerar sqlite3 två databaser:main och 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)

Avsluta verktyget SQLite3

För att avsluta sqlite3-programmet använder du .exit kommando.

sqlite>.exitCode language: Shell Session (shell)

Visa tabeller i en databas

För att visa alla tabeller i den aktuella databasen använder du .tables kommando. Följande kommandon öppnar en ny databasanslutning till chinook databas och visa tabellerna i databasen.

>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)

Om du vill hitta tabeller baserade på ett specifikt mönster använder du .table mönsterkommando. sqlite3 använder LIKE operator för mönstermatchning.

Till exempel returnerar följande sats tabellen som slutar med strängen es .

sqlite> .table '%es'
employees    genres       invoices     media_types
sqlite>Code language: Shell Session (shell)

Visa strukturen för en tabell

För att visa strukturen för en tabell använder du .schema TABLE kommando. TABLE argument kan vara ett mönster. Om du utelämnar det, .schema kommandot visar strukturerna för alla tabeller.

Följande kommando visar strukturen för albums bord.

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)

För att visa schemat och innehållet i sqlite_stat tabeller använder du .fullschema kommando.

sqlite>.fullschemaCode language: CSS (css)

Visa index

För att visa alla index för den aktuella databasen använder du .indexes kommando enligt följande:

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)

För att visa indexen för en specifik tabell använder du .indexes TABLE kommando. Till exempel för att visa index för albums tabell använder du följande kommando:

sqlite> .indexes albums
IFK_AlbumArtistIdCode language: CSS (css)

För att visa index över tabellerna vars namn slutar med es , använder du ett mönster av LIKE-operatorn.

sqlite> .indexes %es
IFK_EmployeeReportsTo
IFK_InvoiceCustomerIdCode language: Shell Session (shell)

Spara resultatet av en fråga i en fil

För att spara resultatet av en fråga i en fil använder du .output FILENAME kommando. När du har utfärdat .output kommandot, kommer alla resultat av de efterföljande frågorna att sparas i filen som du angav i FILENAME argument. Om du bara vill spara resultatet av nästa enstaka fråga i filen, utfärdar du .once FILENAME kommando.

För att visa resultatet av frågan till standardutgången igen, utfärdar du .output kommando utan argument.

Följande kommandon väljer title från albums tabell och skriv resultatet till albums.txt fil.

sqlite> .output albums.txt
sqlite> SELECT title FROM albums;Code language: Shell Session (shell)

Kör SQL-satser från en fil

Anta att vi har en fil som heter commands.txt i c:\sqlite\ mapp med följande innehåll:

SELECT albumid, title
FROM albums
ORDER BY title
LIMIT 10;Code language: Shell Session (shell)

För att köra SQL-satserna i commands.txt fil använder du .read FILENAME kommando enligt följande:

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)

I den här handledningen har du lärt dig många användbara kommandon i verktyget sqlite3 för att utföra olika uppgifter som handlar om SQLite-databasen.


  1. Mac + virtualenv + pip + postgresql =Fel:pg_config körbar fil hittades inte

  2. Ytterligare ett argument för lagrade procedurer

  3. Hur man applicerar att ha klausul med Group by i Select Query - SQL Server / TSQL Tutorial Del 131

  4. Snabba upp massinsatsoperationer med NHibernate