Python Tutorial
- jetzt Python programmieren lernen

Tools für SQLite3 – SQLite Shell

SQLite bietet eine Shell. Diese kann direkt im Terminalfenster gestartet werden über

sqlite3

Danach erscheint im Terminalfenster dann:

Axels-MBP:Python-lernen.de axel$ sqlite3
SQLite version 3.28.0 2019-04-15 14:49:49
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.

Jetzt können wir mit .help uns alle Befehle ansehen, die uns die sqlite3-Shell bietet.

Wir können alle Funktionen, die wir über den Umweg von Python kennen gelernt haben auch direkt in der SQLite3-Shell ausführen. Wollen wir unsere erstellte Datenbank „geburtstage.db“ nutzen, müssen wir diese laden. Da wir diese in einem Unterordner gespeichert haben, müssen wir beim Pfad den Unterordner mit angeben:

.open datenbank/geburtstage.db

Bitte nicht wundern, wenn wir kein Feedback von der Shell bekommen:

sqlite> .open datenbank/geburtstage.db
sqlite>

Wir erhalten automatisch die Möglichkeit, den nächsten Befehl anzugeben.

Jetzt können wir uns die Datenbanken anzeigen lassen über:

.databases

Als Rückmeldung erhalte ich auf meinem System dann:

sqlite> .databases
main: /Users/axel/Documents/Python-lernen.de/datenbank/geburtstage.db

Haben wir die erstellten Tabellen vergessen, erhalten wir über den Befehl .tables eine Auflistung aller in der Datenbank vorhandenen Tabellen:

sqlite> .tables

adressen personen

Und jetzt können wir bereits direkt mit weiteren SQL-Anweisungen die Tabelle auslesen. Lassen wir uns den Inhalt komplett anzeigen:

sqlite> SELECT * FROM personen;

Johann Christoph Friedrich|Schiller|10.11.1759

Wir bekommen den Datensatz von „Schiller“ angezeigt.

…> - was geht?

Bekommen wir allerdings versehentlich nur als Ausgabe „…>“ haben wir ein abschließendes Semikolon vergessen. Einfach einmal probieren:

sqlite> SELECT * FROM adressen
...>
...> ;

Um wieder die normalen Shell-Eingaben machen zu können, müssen wir das anschließende Semikolon angeben!

sqlite> SELECT * FROM adressen
...>
...> ;
sqlite>

SQLite-Shell beenden: .quit

Um die Shell zu beenden, einfach in der Eingabeaufforderung .quit eingeben. Somit sind wir im normalen Terminal zurück.

sqlite> .quit
Axels-MBP:Python-lernen.de axel$

Bessere Ausgabe der Daten in SQLite3-Shell aktivieren

Bei unserem letzten Test kamen die Daten sehr unübersichtlich in der Ausgabe. Wir können aber eine wesentlich bessere Übersicht bekommen, wenn wir den Spalten-Modus aktivieren über .mode column und uns zusätzlich die Spaltenbezeichnungen ausgeben lassen über die Anweisung .headers on.

Schauen wir es uns an:

sqlite> .open datenbank/geburtstage.db
sqlite> .headers on
sqlite> .mode column
sqlite> SELECT * FROM personen;
vorname nachname geburtstag
-------------------------- ---------- ----------
Johann Christoph Friedrich Schiller 10.11.1759
sqlite>

Einstellungen (und Änderungsmöglichkeiten)

Über die Shell-Anweisung .show bekommen wir weitere Informationen über die Anzeige und über die aktuell gewählte Datenbank:

sqlite> .show
echo: off
eqp: off
explain: auto
headers: on
mode: column
nullvalue: ""
output: stdout
colseparator: "|"
rowseparator: "\n"
stats: off
width:
filename: datenbank/geburtstage.db

sqlite>

Hier können wir nach Bedarf auch Änderungen durchführen. Beispielsweise können wir den Trenner, der als Zeichen „|“ verwendet umstellen über die Anweisung .separator ^

Direkt aus Shell starten

Gerade sind wir in mehreren Schritten zu unserem Ergebnis gekommen. Wir können auch direkt aus unserem Terminal (CMD-Line unter Windows) eine komplette SQL-Ausgabe erreichen. Dazu nutzen wird folenden Aufbau:

sqlite3 datenbankname.db "SELECT * FROM tabellennamen"