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.