SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite-Befehle

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.dbCode 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:

.helpCode 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>.exitCode 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>.fullschemaCode 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_TrackMediaTypeIdCode 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_AlbumArtistIdCode 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_InvoiceCustomerIdCode 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 SpadesCode 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.