Zusammenfassung: In diesem Tutorial stellen wir Ihnen die am häufigsten verwendeten SQLite-Befehle des Befehlszeilenprogramms sqlite3 vor.
Das SQLite-Projekt liefert ein einfaches Kommandozeilenprogramm namens sqlite3 (bzw. sqlite3.exe unter Windows), mit dem Sie über SQL-Anweisungen und -Befehle mit den SQLite-Datenbanken interagieren können.
Verbindung zu einer SQLite-Datenbank herstellen
Um das sqlite3 zu starten, geben Sie es wie folgt ein:
Code language: Shell Session (shell)>sqlite3SQLite version 3.29.0 2019-07-10 17:32:03Enter ".help" for usage hints.Connected to a transient in-memory database.Use ".open FILENAME" to reopen on a persistent database.sqlite>
Standardmäßig verwendet eine SQLite-Sitzung die In-Memory-Datenbank, daher sind alle Änderungen weg, wenn die Sitzung endet.
Um eine Datenbankdatei zu öffnen, verwenden Sie den Befehl .open FILENAME
. Die folgende Anweisung öffnet die chinook.db
Datenbank:
Code language: Shell Session (shell)sqlite> .open c:\sqlite\db\chinook.db
Wenn Sie eine bestimmte Datenbankdatei öffnen möchten, wenn Sie sich mit der SQlite-Datenbank verbinden, verwenden Sie den folgenden Befehl:
Code language: Shell Session (shell)>sqlite3 c:\sqlite\db\chinook.dbSQLite version 3.13.0 2016-05-18 10:57:30Enter ".help" for usage hints.sqlite>
Wenn Sie eine Sitzung mit einem Datenbanknamen starten, der nicht existiert, erstellt das Tool sqlite3 die Datenbankdatei.
Beispielsweise erstellt der folgende Befehl eine Datenbank mit dem Namen sales
im Verzeichnis C:\sqlite\db\
:
Code language: Shell Session (shell)>sqlite3 c:\sqlite\db\sales.dbSQLite version 3.29.0 2019-07-10 17:32:03Enter ".help" for usage hints.sqlite>
Alle verfügbaren Befehle und ihren Zweck anzeigen
Um alle verfügbaren Befehle und ihren Zweck anzuzeigen, verwenden Sie den Befehl .help
wie folgt:
Code language: Shell Session (shell).help
Datenbanken der aktuellen Datenbankverbindung anzeigen
Um alle Datenbanken der aktuellen Verbindung anzuzeigen, verwenden Sie den Befehl .databases
. Der Befehl .databases
zeigt mindestens eine Datenbank mit dem Namen an: main
.
Beispielsweise zeigt der folgende Befehl alle Datenbanken der aktuellen Verbindung an:
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 der aktuellen Verbindung die chinook
Datenbank hinzu.
Code language: Shell Session (shell)sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;
Wenn Sie nun den Befehl .database
erneut ausführen, liefert das sqlite3 zwei Datenbanken: main
und chinook
.
Code language: Shell Session (shell)sqlite> .databasesseq name file--- --------------- ---------------------0 main c:\sqlite\db\sales.db2 chinook c:\sqlite\db\chinook.db
Sqlite3-Tool beenden
Um das Programm sqlite3 zu beenden, verwenden Sie den Befehl .exit
.
Code language: Shell Session (shell)sqlite>.exit
Tabellen in einer Datenbank anzeigen
Um alle Tabellen der aktuellen Datenbank anzuzeigen, verwenden Sie den Befehl .tables
. Die folgenden Befehle öffnen eine neue Datenbankverbindung zur chinook
-Datenbank und zeigen die Tabellen in der Datenbank an.
Code language: Shell Session (shell)>sqlite3 c:\sqlite\db\chinook.dbSQLite version 3.29.0 2019-07-10 17:32:03Enter ".help" for usage hints.sqlite> .tablesalbums employees invoices playlistsartists genres media_types trackscustomers invoice_items playlist_tracksqlite>
Wenn Sie Tabellen nach einem bestimmten Muster suchen wollen, verwenden Sie den .table
-Befehl pattern. Das sqlite3 verwendet den LIKE
-Operator für den Musterabgleich.
Beispielsweise gibt die folgende Anweisung die Tabelle zurück, die mit der Zeichenkette es
endet.
Code language: Shell Session (shell)sqlite> .table '%es'employees genres invoices media_typessqlite>
Die Struktur einer Tabelle anzeigen
Um die Struktur einer Tabelle anzuzeigen, verwenden Sie den Befehl .schema TABLE
. Das Argument TABLE
kann ein Muster sein. Wenn Sie es weglassen, zeigt der Befehl .schema
die Strukturen aller Tabellen an.
Der folgende Befehl zeigt die Struktur der Tabelle albums
.
Code language: Shell Session (shell)sqlite> .schema albumsCREATE TABLE "albums"( INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, NVARCHAR(160) NOT NULL, INTEGER NOT NULL, FOREIGN KEY () REFERENCES "artists" () ON DELETE NO ACTION ON UPDATE NO ACTION);CREATE INDEX ON "albums" ();sqlite>
Um das Schema und den Inhalt der sqlite_stat
-Tabellen anzuzeigen, verwenden Sie den Befehl .fullschema
.
Code language: CSS (css)sqlite>.fullschema
Indizes anzeigen
Um alle Indizes der aktuellen Datenbank anzuzeigen, verwenden Sie den Befehl .indexes
wie folgt:
Code language: Shell Session (shell)sqlite> .indexesIFK_AlbumArtistIdIFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_PlaylistTrackTrackIdIFK_TrackAlbumIdIFK_TrackGenreIdIFK_TrackMediaTypeId
Um die Indizes einer bestimmten Tabelle anzuzeigen, verwenden Sie den Befehl .indexes TABLE
. Um beispielsweise Indizes der Tabelle albums
anzuzeigen, verwenden Sie folgenden Befehl:
Code language: CSS (css)sqlite> .indexes albumsIFK_AlbumArtistId
Um Indizes der Tabellen anzuzeigen, deren Namen mit es
enden, verwenden Sie ein Muster des LIKE-Operators.
Code language: Shell Session (shell)sqlite> .indexes %esIFK_EmployeeReportsToIFK_InvoiceCustomerId
Das Ergebnis einer Abfrage in eine Datei speichern
Um das Ergebnis einer Abfrage in eine Datei zu speichern, verwenden Sie den Befehl .output FILENAME
. Sobald Sie den .output
Befehl ausführen, werden alle Ergebnisse der nachfolgenden Abfragen in der Datei gespeichert, die Sie im Argument FILENAME
angegeben haben. Wenn Sie nur das Ergebnis der nächsten Einzelabfrage in der Datei speichern wollen, geben Sie den Befehl .once FILENAME
ab.
Um das Ergebnis der Abfrage wieder auf der Standardausgabe auszugeben, geben Sie den Befehl .output
ohne Argumente ab.
Die folgenden Befehle selektieren das title
aus der albums
-Tabelle und schreiben das Ergebnis in die albums.txt
-Datei.
Code language: Shell Session (shell)sqlite> .output albums.txtsqlite> SELECT title FROM albums;
SQL-Anweisungen aus einer Datei ausführen
Angenommen, wir haben im Ordner c:\sqlite\
eine Datei namens commands.txt
mit folgendem Inhalt:
Code language: Shell Session (shell)SELECT albumid, titleFROM albumsORDER BY titleLIMIT 10;
Um die SQL-Anweisungen in der Datei commands.txt
auszuführen, verwenden Sie den Befehl .read FILENAME
wie folgt:
Code language: Shell Session (shell)sqlite> .mode columnsqlite> .header onsqlite> .read c:/sqlite/commands.txtAlbumId Title---------- ----------------------156 ...And Justice For All257 20th Century Masters -296 A Copland Celebration,94 A Matter of Life and D95 A Real Dead One96 A Real Live One285 A Soprano Inspired139 A TempestadeTempestade203 A-Sides160 Ace Of Spades
In diesem Tutorial haben Sie viele nützliche Befehle im Tool sqlite3 kennengelernt, um verschiedene Aufgaben im Umgang mit der SQLite-Datenbank auszuführen.
- War dieses Tutorial hilfreich?
- JaNein