Zusammenfassung :In diesem Tutorial stellen wir Ihnen die am häufigsten verwendeten SQLite-Befehle des sqlite3-Befehlszeilenprogramms vor.
Das SQLite-Projekt stellt ein einfaches Befehlszeilentool namens sqlite3 (oder sqlite3.exe unter Windows) bereit, mit dem Sie mithilfe von SQL-Anweisungen und -Befehlen mit den SQLite-Datenbanken interagieren können.
Mit einer SQLite-Datenbank verbinden
Um sqlite3 zu starten, geben Sie sqlite3 wie folgt ein:
>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)
Standardmäßig verwendet eine SQLite-Sitzung die In-Memory-Datenbank, daher werden alle Änderungen gelöscht, wenn die Sitzung beendet wird.
Um eine Datenbankdatei zu öffnen, verwenden Sie den .open FILENAME
Befehl. Die folgende Anweisung öffnet die chinook.db
Datenbank:
sqlite> .open c:\sqlite\db\chinook.db
Code language: Shell Session (shell)
Wenn Sie eine bestimmte Datenbankdatei öffnen möchten, wenn Sie sich mit der SQLite-Datenbank verbinden, verwenden Sie den folgenden Befehl:
>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)
Wenn Sie eine Sitzung mit einem nicht vorhandenen Datenbanknamen starten, erstellt das sqlite3-Tool die Datenbankdatei.
Der folgende Befehl erstellt beispielsweise eine Datenbank mit dem Namen sales
im C:\sqlite\db\
Verzeichnis:
>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)
Alle verfügbaren Befehle und ihre Zwecke anzeigen
Um alle verfügbaren Befehle und ihren Zweck anzuzeigen, verwenden Sie die .help
Befehl wie folgt:
.help
Code language: Shell Session (shell)
Datenbanken in der aktuellen Datenbankverbindung anzeigen
Um alle Datenbanken in der aktuellen Verbindung anzuzeigen, verwenden Sie die .databases
Befehl. Die .databases
Befehl zeigt mindestens eine Datenbank mit dem Namen:main
an .
Der folgende Befehl zeigt beispielsweise alle Datenbanken der aktuellen Verbindung an:
sqlite> .database
seq name file
--- --------------- --------------------------
0 main c:\sqlite\db\sales.db
sqlite>
Code language: Shell Session (shell)
Um eine zusätzliche Datenbank in der aktuellen Verbindung hinzuzufügen, verwenden Sie die Anweisung ATTACH DATABASE
. Die folgende Anweisung fügt das chinook
hinzu Datenbank mit der aktuellen Verbindung.
sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;
Code language: Shell Session (shell)
Wenn Sie nun die .database
ausführen Befehl erneut, gibt sqlite3 zwei Datenbanken zurück:main
und 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)
Beenden Sie das sqlite3-Tool
Um das sqlite3-Programm zu beenden, verwenden Sie .exit
Befehl.
sqlite>.exit
Code language: Shell Session (shell)
Tabellen in einer Datenbank anzeigen
Um alle Tabellen in der aktuellen Datenbank anzuzeigen, verwenden Sie die .tables
Befehl. Die folgenden Befehle öffnen eine neue Datenbankverbindung zum chinook
Datenbank und zeigt die Tabellen in der Datenbank an.
>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)
Wenn Sie Tabellen nach einem bestimmten Muster finden möchten, verwenden Sie die .table
Musterbefehl. sqlite3 verwendet den LIKE
Operator für den Musterabgleich.
Die folgende Anweisung gibt beispielsweise die Tabelle zurück, die mit der Zeichenfolge es
endet .
sqlite> .table '%es'
employees genres invoices media_types
sqlite>
Code language: Shell Session (shell)
Zeigen Sie die Struktur einer Tabelle
Um die Struktur einer Tabelle anzuzeigen, verwenden Sie die .schema TABLE
Befehl. Die TABLE
Argument könnte ein Muster sein. Wenn Sie es weglassen, wird das .schema
Befehl zeigt die Strukturen aller Tabellen.
Der folgende Befehl zeigt die Struktur der albums
Tabelle.
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)
Um das Schema und den Inhalt von sqlite_stat
anzuzeigen Tabellen verwenden Sie das .fullschema
Befehl.
sqlite>.fullschema
Code language: CSS (css)
Indizes anzeigen
Um alle Indizes der aktuellen Datenbank anzuzeigen, verwenden Sie die .indexes
Befehl wie folgt:
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)
Um die Indizes einer bestimmten Tabelle anzuzeigen, verwenden Sie die .indexes TABLE
Befehl. Zum Beispiel, um Indexe der albums
anzuzeigen Tabelle verwenden Sie den folgenden Befehl:
sqlite> .indexes albums
IFK_AlbumArtistId
Code language: CSS (css)
Um Indizes der Tabellen anzuzeigen, deren Namen mit es
enden verwenden Sie ein Muster des LIKE-Operators.
sqlite> .indexes %es
IFK_EmployeeReportsTo
IFK_InvoiceCustomerId
Code language: Shell Session (shell)
Das Ergebnis einer Abfrage in einer Datei speichern
Um das Ergebnis einer Abfrage in einer Datei zu speichern, verwenden Sie den .output FILENAME
Befehl. Sobald Sie die .output
ausgeben Befehl werden alle Ergebnisse der nachfolgenden Abfragen in der Datei gespeichert, die Sie im FILENAME
angegeben haben Streit. Wenn Sie das Ergebnis der nächsten Einzelabfrage nur in der Datei speichern möchten, geben Sie den .once FILENAME
ein Befehl.
Um das Ergebnis der Abfrage wieder auf der Standardausgabe anzuzeigen, geben Sie den .output
aus Befehl ohne Argumente.
Die folgenden Befehle wählen den title
aus aus den albums
Tabelle und schreibe das Ergebnis in die albums.txt
Datei.
sqlite> .output albums.txt
sqlite> SELECT title FROM albums;
Code language: Shell Session (shell)
SQL-Anweisungen aus einer Datei ausführen
Angenommen, wir haben eine Datei namens commands.txt
im c:\sqlite\
Ordner mit folgendem Inhalt:
SELECT albumid, title
FROM albums
ORDER BY title
LIMIT 10;
Code language: Shell Session (shell)
Zum Ausführen der SQL-Anweisungen in der commands.txt
Datei verwenden Sie den .read FILENAME
Befehl wie folgt:
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)
In diesem Tutorial haben Sie viele nützliche Befehle im sqlite3-Tool gelernt, um verschiedene Aufgaben auszuführen, die sich mit der SQLite-Datenbank befassen.