How To Install and Use SQLite on Ubuntu 20.04

Der Autor hat den Free and Open Source Fund ausgewählt, um eine Spende im Rahmen des Write for DOnations Programms zu erhalten.

Einführung

SQLite ist ein freies, plattformübergreifendes Datenbankmanagementsystem. Es ist beliebt für seine Effizienz und seine Fähigkeit, sich mit vielen verschiedenen Programmiersprachen zu verbinden.

In diesem Tutorial werden Sie SQLite auf Ubuntu 20.04 installieren. Anschließend erstellen Sie eine Datenbank, lesen Daten daraus, fügen Elemente ein, löschen Elemente und verbinden Elemente aus separaten Tabellen.

Hinweis: Dieses Tutorial enthält praktische Anweisungen zur Installation und Verwendung von SQLite. Es behandelt keine größeren konzeptionellen Fragen und Produktionsbelange, wie z.B. die Frage, wann man eine SQLite-Datenbank verwenden sollte und wann nicht. Einen hervorragenden Überblick über gängige relationale Datenbanken und deren Vergleich finden Sie in unserem Artikel SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.

Außerdem bieten viele Sprachen Integrationen mit SQLite an. Anleitungen zur Verwendung von SQLite in Ihrem Python-Code finden Sie in unserem Tutorial How To Use the sqlite3 Module in Python 3.

Voraussetzungen

Um dieses Tutorial durchzuführen, benötigen Sie:

  • Einen lokalen Rechner oder Server mit Ubuntu 20.04. Um einen Server einzurichten, einschließlich eines nicht-root sudo-Benutzers und einer Firewall, können Sie ein DigitalOcean-Droplet mit Ubuntu 20.04 erstellen und dann unserer Anleitung zur Ersteinrichtung des Servers folgen.

Schritt 1 – Installation von SQLite auf Ubuntu 20.04

Um die SQLite-Befehlszeilenschnittstelle unter Ubuntu zu installieren, aktualisieren Sie zunächst Ihre Paketliste:

  • sudo apt update

Nun installieren Sie SQLite:

  • sudo apt install sqlite3

Um die Installation zu überprüfen, überprüfen Sie die Version der Software:

  • sqlite --version

Sie erhalten eine Ausgabe wie diese:

Output
3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1

Nach der Installation von SQLite können Sie nun eine neue Datenbank erstellen.

Schritt 2 – Erstellen einer SQLite-Datenbank

In diesem Schritt werden Sie eine Datenbank erstellen, die verschiedene Haie und deren Attribute enthält. Um die Datenbank zu erstellen, öffne dein Terminal und führe diesen sqlite3 Befehl aus:

  • sqlite3 sharks.db

Dadurch wird eine neue Datenbank mit dem Namen sharks erstellt. Wenn die Datei sharks.db bereits existiert, öffnet SQLite eine Verbindung zu ihr; wenn sie nicht existiert, erstellt SQLite sie.

Sie erhalten eine Ausgabe wie diese:

Output
SQLite version 3.31.1 2020-01-27 19:55:54Enter ".help" for usage hints.

Nach diesem Befehl ändert sich Ihre Eingabeaufforderung. Ein neues Präfix, sqlite>, erscheint nun:

    Nachdem Sie Ihre Shark-Datenbank erstellt haben, werden Sie nun eine neue Tabelle erstellen und diese mit Daten füllen.

    Schritt 3 – Erstellen einer SQLite-Tabelle

    SQLite-Datenbanken sind in Tabellen organisiert. In Tabellen werden Informationen gespeichert. Um sich eine Tabelle besser vorstellen zu können, kann man sich Zeilen und Spalten vorstellen.

    Der Rest dieses Tutorials folgt einer gemeinsamen Konvention für die Eingabe von SQLite-Befehlen. SQLite-Befehle werden in Großbuchstaben geschrieben, Benutzerinformationen in Kleinbuchstaben. Die Zeilen müssen mit einem Semikolon enden.

    Lassen Sie uns nun eine Tabelle und einige Spalten für verschiedene Daten erstellen:

    • Eine ID
    • Der Name des Hais
    • Die Art des Hais
    • Die durchschnittliche Länge des Hais (in Zentimetern)

    Verwenden Sie den folgenden Befehl, um die Tabelle zu erstellen:

    • CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);

    Durch die Verwendung von NOT NULL wird dieses Feld erforderlich. Wir werden NOT NULL im nächsten Abschnitt ausführlicher besprechen.

    Nach dem Erstellen der Tabelle wird eine leere Eingabeaufforderung zurückgegeben. Lassen Sie uns nun einige Werte in die Tabelle einfügen.

    Werte in Tabellen einfügen

    In SQLite folgt der Befehl zum Einfügen von Werten in eine Tabelle dieser allgemeinen Form:

    • INSERT INTO tablename VALUES(values go here);

    Wobei tablename der Name Ihrer Tabelle ist und values in Klammern steht.

    Fügen Sie nun drei Zeilen von VALUES in Ihre Tabelle sharks ein:

    • INSERT INTO sharks VALUES (1, "Sammy", "Greenland Shark", 427);
    • INSERT INTO sharks VALUES (2, "Alyoshka", "Great White Shark", 600);
    • INSERT INTO sharks VALUES (3, "Himari", "Megaladon", 1800);

    Da Sie zuvor NOT NULL für jede der Variablen in Ihrer Tabelle angegeben haben, müssen Sie für jede einen Wert eingeben.

    Versuchen Sie zum Beispiel, einen weiteren Hai hinzuzufügen, ohne seine Länge festzulegen:

    • INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");

    Sie werden diese Fehlermeldung erhalten:

    Output
    Error: table sharks has 4 columns but 3 values were supplied

    In diesem Schritt haben Sie eine Tabelle erstellt und Werte in sie eingefügt. Im nächsten Schritt werden Sie aus Ihrer Datenbanktabelle lesen.

    Schritt 4 – Lesen von Tabellen in SQLite

    In diesem Schritt konzentrieren wir uns auf die grundlegendsten Methoden zum Lesen von Daten aus einer Tabelle. Beachten Sie, dass SQLite spezifischere Methoden zum Anzeigen von Daten in Tabellen bietet.

    Um Ihre Tabelle mit allen eingefügten Werten anzuzeigen, verwenden Sie SELECT:

    • SELECT * FROM sharks;

    Sie werden die zuvor eingefügten Einträge sehen:

    Output
    1|Sammy|Greenland Shark|4272|Alyoshka|Great White Shark|6003|Himari|Megaladon|1800

    Um einen Eintrag auf der Grundlage seiner id (die Werte, die wir manuell festgelegt haben) anzuzeigen, fügen Sie den Befehl WHERE zu Ihrer Abfrage hinzu:

    • SELECT * FROM sharks WHERE id IS 1;

    Damit wird der Hai zurückgegeben, dessen id gleich 1 ist:

    Output
    1|Sammy|Greenland Shark|427

    Schauen wir uns diesen Befehl genauer an.

    1. Zunächst suchen wir SELECT alle (*) Werte aus unserer Datenbank sharks.
    2. Dann schauen wir uns alle id-Werte an.
    3. Dann geben wir alle Tabelleneinträge zurück, bei denen id gleich 1 ist.

    So weit haben Sie eine Tabelle erstellt, Daten in sie eingefügt und diese gespeicherten Daten abgefragt. Nun werden Sie die bestehende Tabelle aktualisieren.

    Schritt 5 – Aktualisieren von Tabellen in SQLite

    In den folgenden zwei Abschnitten werden Sie zunächst eine neue Spalte in Ihre bestehende Tabelle einfügen und dann bestehende Werte in der Tabelle aktualisieren.

    Hinzufügen von Spalten zu SQLite-Tabellen

    SQLite ermöglicht es Ihnen, Ihre Tabelle mit dem Befehl ALTER TABLE zu ändern. Das bedeutet, dass Sie neue Zeilen und Spalten erstellen oder bestehende Zeilen und Spalten ändern können.

    Benutzen Sie ALTER TABLE, um eine neue Spalte zu erstellen. Diese neue Spalte wird das Alter jedes Hais in Jahren erfassen:

    • ALTER TABLE sharks ADD COLUMN age integer;

    Sie haben jetzt eine fünfte Spalte, age.

    Werte in SQLite-Tabellen aktualisieren

    Mit dem Befehl UPDATE fügen Sie neue age-Werte für jeden Ihrer Haie hinzu:

    • UPDATE sharks SET age = 272 WHERE id=1;
    • UPDATE sharks SET age = 70 WHERE id=2;
    • UPDATE sharks SET age = 40 WHERE id=3;
    Output
    1|Sammy|Greenland Shark|427|2722|Alyoshka|Great White Shark|600|703|Himari|Megaladon|1800|40

    In diesem Schritt haben Sie die Zusammensetzung Ihrer Tabelle geändert und dann Werte innerhalb der Tabelle aktualisiert. Im nächsten Schritt werden Sie Informationen aus einer Tabelle löschen.

    Schritt 6 – Löschen von Informationen in SQLite

    In diesem Schritt werden Sie Einträge in Ihrer Tabelle auf der Grundlage der Auswertung eines Arguments löschen.

    Mit dem folgenden Befehl fragen Sie Ihre Datenbank ab und fordern sie auf, alle Haie in Ihrer Tabelle sharks zu löschen, deren Alter unter 200 Jahren liegt:

    • DELETE FROM sharks WHERE age <= 200;

    Mit der Eingabe von SELECT * FROM sharks; wird überprüft, dass Alyoshka und Himari, die jeweils weniger als 200 Jahre alt waren, gelöscht wurden. Nur Sammy der Grönlandhai bleibt übrig:

    Output
    1|Sammy|Greenland Shark|427|272

    Schritt 7 – Zusammenführen von Informationen in SQLite

    Stellen wir uns vor, wir hätten zwei Tabellen: unsere aktuelle Tabelle sharks und eine Tabelle endangered. Was wäre, wenn die endangered-Tabelle einen id-Wert hätte, der den id-Werten in der sharks-Tabelle entspricht, und wenn sie außerdem einen status-Wert hätte, der den Erhaltungsstatus der einzelnen Haie angibt?

    Wenn Sie Daten aus beiden Tabellen abfragen wollten, könnten Sie einen der vier Join-Befehle von SQLite verwenden:

    • INNER JOIN
    • OUTER JOIN
    • LEFT JOIN
    • CROSS JOIN

    Lassen Sie uns diese zweite Tabelle erstellen und dann INNER JOIN verwenden, um einige Daten zu verbinden.

    Erstellen Sie zunächst Ihre Tabelle endangered:

    • CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
    • INSERT INTO endangered VALUES (1, "near threatened");

    Jetzt verknüpfen Sie Ihre Tabellen:

    • SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`

    Ihre Ausgabe wird wie folgt aussehen:

    Output
    1|Sammy|Greenland Shark|427|272|1|near threatened

    Beachten Sie, dass die Ausgabe auch den Wert id aus endangered enthält. Sie können die gewünschte Ausgabe mit einem expliziteren Befehl spezifizieren:

    • SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;

    Diesmal schließt die Ausgabe den zweiten id-Wert aus:

    Output
    1|Sammy|Greenland Shark|427|272|near threatened

    Sie haben nun erfolgreich Informationen aus mehreren Tabellen verknüpft.

    Abschluss

    SQLite ist ein nützliches Werkzeug für die Datenbankverwaltung. Man kann schnell eine Datenbank erstellen und sie mit verschiedenen Befehlen manipulieren. Nach diesem Tutorial haben Sie nun ein grundlegendes Verständnis von SQLite und sind bereit, tiefer in dieses Datenbankmanagementsystem einzutauchen.

    Einen ausgezeichneten Überblick über relationale Datenbanksysteme und deren Vergleich finden Sie in unserem Artikel SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.

    Außerdem bieten viele Sprachen Integrationen mit SQLite an. Anweisungen zur Verwendung von SQLite in Ihrem Python-Code finden Sie in unserem Tutorial How To Use the sqlite3 Module in Python 3.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht.