Datenbank im Terminal

Mo, 31. Mai 2021, Ralf Hersel

Man muss nicht immer einen grossen Aufwand betreiben, um gute Ergebnisse zu erreichen. Als Beispiel, zeige ich euch, wie ihr eine relationale Datenbank mit wenigen Befehlen erzeugt und abfragen könnt. Dafür verwende ich die Datenbank SQLite auf der Kommandzeile. SQLite ist eine gemeinfreie Programmbibliothek, die ein relationales Datenbanksystem enthält. SQLite wird in Mobiltelefonen (Android, iOS, Symbian OS, Windows Phone), in Browsern (Firefox, Safari, Chrome), Skype und vielen anderen Anwendungen eingesetzt. Es ist das verbreitetste und meistverwendete Datenbanksystem der Welt.

Bevor man eine einfache Datenbank anlegen kann, muss diese zuerst installiert werden. Dies geschieht mit diesem Kommando, für Debian-basierte Distributionen:

sudo apt install sqlite3

Um eine neue Datenbank zu erzeugen, startet man SQLite mit diesem Befehl: sqlite name_der_datenbank, also zum Beispiel:

sqlite db

... wenn die Datenbank ganz einfach 'db' heissen soll. Nun wechselt man in den Interpreter-Modus von SQLite, indem man sqlite eintippt. Dann stehen sehr viele Befehle zur Bedienung der Datenbank zur Verfügung. In diesem Modus gilt es nun, eine Tabelle namens 'Person' zu erzeugen:

sqlite> create table person(vorname varchar(20), nachname varchar(20), geburt date);

Das sqlite> muss man nicht eingeben; das ist der Prompt des SQLite-Interpreters. Mit diesem Befehl wurde eine Tabelle mit drei Spalten (Vorname, Nachname, Geburtsdatum) angelegt. Um zu überprüfen, was man bisher getan hat, kann man eingeben:

sqlite> .databases
main: /home/ralf/db
sqlite> .tables
person
sqlite> .schema
CREATE TABLE person(vorname varchar(20), nachname varchar(20), geburt date);

Hier sieht man, welche Datenbanken und Tabellen es gibt, und wie das Schema der Tabellen aussieht. Nun fügen wir ein paar Daten in die Tabelle 'person' ein:

sqlite> insert into person values ('Anna', 'Alfa', '1964-12-19');
sqlite> insert into person values ('Berta', 'Beta', '1980-05-27');
sqlite> insert into person values ('Gustav', 'Gamma', '1970-02-17');

Nun kann der Inhalt der Tabelle abgefragt werden:

sqlite> select * from person;
Gustav|Gamma|1970-02-17
Berta|Beta|1980-05-27
Anna|Alfa|1964-12-19

Der SQLite-Interpreter kann mit dem Befehl Ctrl+d wieder verlassen werden.

Selbstverständlich gibt es hunderte weitere Befehle um die Datenbank bewirtschaften zu können. Der Artikel sollte lediglich aufzeigen, wie einfach es ist, eine relationale Datenbank im Terminal zu erstellen, abzufüllen und Abfragen zu stellen. Weiterführende Informationen findet ihr bei der Quelle.

Quelle: https://sqlite.org/cli.html

Ralf Admin
Geschrieben von Ralf am 31. Mai 2021

Da hast Du völlig recht; das macht man selten in der Shell. Mir ging es nur darum aufzuzeigen, dass es geht und wie einfach es ist. Weiterführende Beispiele hätten den Rahmen des Artikels gesprengt.

Maggoo
Geschrieben von Maggoo am 31. Mai 2021

Die Verwendung in der sqlite shell wäre meines Erachtens eher selten. Wenn dann am besten gleich aus einem Script heraus. Hättest du Beispiele zur leichten Verwendung in Scripten? bsp. Start script. Lese Daten aus Datenbank in variablen und dann schreibe neue Daten zurück... oder sowas.