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.db
Code 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:
.help
Code 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>.exit
Code 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>.fullschema
Code 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_TrackMediaTypeId
Code 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_AlbumArtistId
Code 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_InvoiceCustomerId
Code 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 Spades
Code 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.