SQLite Temporärer Speicher

SQLiteSQLiteBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir uns mit dem temporären Speicher von SQLite beschäftigen, wobei der Schwerpunkt auf der Erstellung und Nutzung temporärer Tabellen liegt. Temporäre Tabellen bieten einen Mechanismus zum Speichern von Zwischenergebnissen oder Daten, die nur für kurze Zeit innerhalb einer Datenbankverbindung benötigt werden.

Das Lab führt Sie durch die Erstellung einer temporären Tabelle namens temp_employees mit der CREATE TEMP TABLE-Anweisung. Sie lernen die Gültigkeit (Scope), Lebensdauer und Namenskonventionen temporärer Tabellen kennen und verstehen, wie sie sich von regulären Tabellen unterscheiden. Die folgenden Schritte umfassen das Füllen der temporären Tabelle mit Daten, das Abfragen der Daten und die Bestätigung der automatischen Bereinigung der temporären Tabelle beim Schließen der Datenbankverbindung.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sqlite(("SQLite")) -.-> sqlite/SQLiteGroup(["SQLite"]) sqlite/SQLiteGroup -.-> sqlite/make_table("Create New Table") sqlite/SQLiteGroup -.-> sqlite/add_rows("Insert Multiple Rows") sqlite/SQLiteGroup -.-> sqlite/get_all("Select All Rows") sqlite/SQLiteGroup -.-> sqlite/query_where("Filter With WHERE") sqlite/SQLiteGroup -.-> sqlite/sort_data("Sort With ORDER BY") sqlite/SQLiteGroup -.-> sqlite/verify_table("Check Table Existence") sqlite/SQLiteGroup -.-> sqlite/end_db("Close Database Connection") subgraph Lab Skills sqlite/make_table -.-> lab-552557{{"SQLite Temporärer Speicher"}} sqlite/add_rows -.-> lab-552557{{"SQLite Temporärer Speicher"}} sqlite/get_all -.-> lab-552557{{"SQLite Temporärer Speicher"}} sqlite/query_where -.-> lab-552557{{"SQLite Temporärer Speicher"}} sqlite/sort_data -.-> lab-552557{{"SQLite Temporärer Speicher"}} sqlite/verify_table -.-> lab-552557{{"SQLite Temporärer Speicher"}} sqlite/end_db -.-> lab-552557{{"SQLite Temporärer Speicher"}} end

Erstellen einer temporären Tabelle

In diesem Schritt lernen Sie, wie Sie eine temporäre Tabelle in SQLite erstellen. Temporäre Tabellen sind nützlich, um Zwischenergebnisse bei komplexen Abfragen zu speichern oder um Daten zu halten, die nur für kurze Zeit benötigt werden. Sie werden automatisch gelöscht, wenn die Datenbankverbindung geschlossen wird.

Öffnen Sie zunächst Ihr Terminal in der LabEx VM. Ihr Standardpfad ist /home/labex/project.

Lassen Sie uns nun eine SQLite-Datenbank namens employees.db erstellen. Führen Sie den folgenden Befehl aus, um die Datenbankdatei zu erstellen und das SQLite-Befehlszeilentool zu öffnen:

sqlite3 employees.db

Sie sehen eine Eingabeaufforderung, die anzeigt, dass Sie sich jetzt in der SQLite-Shell befinden:

SQLite version 3.x.x
Enter ".help" for usage hints.
sqlite>

Um eine temporäre Tabelle zu erstellen, verwenden Sie die CREATE TEMP TABLE-Anweisung. Die Syntax ähnelt der Erstellung einer regulären Tabelle:

CREATE TEMP TABLE table_name (
    column1 datatype,
    column2 datatype,
    ...
);

Lassen Sie uns eine temporäre Tabelle namens temp_employees erstellen, um Mitarbeiterinformationen zu speichern. Geben Sie den folgenden SQL-Befehl an der sqlite>-Eingabeaufforderung ein und drücken Sie die Eingabetaste:

CREATE TEMP TABLE temp_employees (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT,
    department TEXT
);

Dieser Befehl erstellt eine temporäre Tabelle namens temp_employees mit drei Spalten: id (ein ganzzahliger Primärschlüssel, der automatisch inkrementiert wird), name (Text) und department (Text).

CREATE TEMP TABLE temp_employees: Diese SQL-Anweisung erstellt eine temporäre Tabelle namens temp_employees. Das Schlüsselwort TEMP gibt an, dass diese Tabelle temporär ist und automatisch gelöscht wird, wenn die Datenbankverbindung geschlossen wird.

id INTEGER PRIMARY KEY AUTOINCREMENT: Dies definiert eine Spalte namens id als Integer (ganze Zahl), legt sie als Primärschlüssel (primary key) für die Tabelle fest und konfiguriert sie so, dass sie sich mit jeder neuen eingefügten Zeile automatisch erhöht (auto increment).

name TEXT: Dies definiert eine Spalte namens name als Textfeld, um Mitarbeiternamen zu speichern.

department TEXT: Dies definiert eine Spalte namens department als Textfeld, um die Abteilung zu speichern, zu der jeder Mitarbeiter gehört.

Daten in die temporäre Tabelle einfügen

Nachdem Sie die Tabelle temp_employees erstellt haben, fügen wir ihr einige Daten hinzu. Wir werden mehrere Mitarbeiterdatensätze in die Tabelle einfügen.

Sie können Daten in eine temporäre Tabelle mit der INSERT INTO-Anweisung einfügen, genau wie bei einer regulären Tabelle.

Fügen Sie die folgenden Mitarbeiterdatensätze in die Tabelle temp_employees ein, indem Sie diese Befehle einzeln an der sqlite>-Eingabeaufforderung ausführen:

INSERT INTO temp_employees (name, department) VALUES ('Alice', 'Sales');
INSERT INTO temp_employees (name, department) VALUES ('Bob', 'Marketing');
INSERT INTO temp_employees (name, department) VALUES ('Charlie', 'Engineering');
INSERT INTO temp_employees (name, department) VALUES ('David', 'Sales');
INSERT INTO temp_employees (name, department) VALUES ('Eve', 'Marketing');
INSERT INTO temp_employees (name, department) VALUES ('Frank', 'Engineering');
INSERT INTO temp_employees (name, department) VALUES ('Grace', 'HR');
INSERT INTO temp_employees (name, department) VALUES ('Henry', 'Sales');

Diese Befehle fügen der Tabelle temp_employees acht Zeilen hinzu.

INSERT INTO temp_employees (name, department): Dies gibt an, dass Sie Daten in die Spalten name und department der Tabelle temp_employees einfügen.

VALUES ('Alice', 'Sales'): Dies liefert die Werte, die für jeden Datensatz eingefügt werden sollen.

Um zu bestätigen, dass die Daten korrekt hinzugefügt wurden, führen Sie diesen Befehl aus, um alle Datensätze in der Tabelle anzuzeigen:

SELECT * FROM temp_employees;

Erwartete Ausgabe:

1|Alice|Sales
2|Bob|Marketing
3|Charlie|Engineering
4|David|Sales
5|Eve|Marketing
6|Frank|Engineering
7|Grace|HR
8|Henry|Sales

Diese Ausgabe zeigt die id, name und department für jeden Datensatz. Der Befehl SELECT * ruft alle Spalten aus der angegebenen Tabelle ab.

Daten aus der temporären Tabelle abfragen

In diesem Schritt lernen Sie, wie Sie Daten aus Ihrer temporären Tabelle mit der SELECT-Anweisung und verschiedenen Klauseln (clauses) abrufen. Das Abfragen von Daten ist eine Kernkompetenz für die Arbeit mit Datenbanken, da Sie damit die gespeicherten Informationen anzeigen und analysieren können.

Lassen Sie uns an der sqlite>-Eingabeaufforderung zunächst alle Daten aus der Tabelle temp_employees abrufen. Führen Sie diesen Befehl aus:

SELECT * FROM temp_employees;

Erwartete Ausgabe:

1|Alice|Sales
2|Bob|Marketing
3|Charlie|Engineering
4|David|Sales
5|Eve|Marketing
6|Frank|Engineering
7|Grace|HR
8|Henry|Sales

Das * in SELECT * bedeutet "alle Spalten", sodass dieser Befehl jede Spalte und Zeile in der Tabelle temp_employees anzeigt.

Filtern Sie als Nächstes Daten mithilfe einer Bedingung mit der WHERE-Klausel. Um nur die Datensätze für Mitarbeiter in der Abteilung 'Sales' anzuzeigen, führen Sie Folgendes aus:

SELECT * FROM temp_employees WHERE department = 'Sales';

Erwartete Ausgabe:

1|Alice|Sales
4|David|Sales
8|Henry|Sales

Die WHERE-Klausel schränkt die Ergebnisse auf Zeilen ein, die der Bedingung entsprechen, in diesem Fall, in denen die department 'Sales' ist.

  • SELECT * FROM temp_employees wählt alle Spalten aus der Tabelle temp_employees aus.
  • WHERE department = 'Sales' filtert die Ergebnisse, um nur Zeilen einzuschließen, in denen die Spalte department gleich 'Sales' ist.

Sortieren Sie nun die Daten nach Namen mithilfe der ORDER BY-Klausel:

SELECT * FROM temp_employees ORDER BY name;

Erwartete Ausgabe:

1|Alice|Sales
2|Bob|Marketing
3|Charlie|Engineering
4|David|Sales
5|Eve|Marketing
6|Frank|Engineering
7|Grace|HR
8|Henry|Sales

Die ORDER BY-Klausel sortiert die Ergebnisse basierend auf der angegebenen Spalte, in diesem Fall der Spalte name.

Begrenzen Sie schließlich die Anzahl der Ergebnisse mithilfe der LIMIT-Klausel. Um nur die ersten 3 Datensätze anzuzeigen, führen Sie Folgendes aus:

SELECT * FROM temp_employees LIMIT 3;

Erwartete Ausgabe:

1|Alice|Sales
2|Bob|Marketing
3|Charlie|Engineering

Die LIMIT-Klausel beschränkt die Anzahl der von der Abfrage zurückgegebenen Zeilen.

Automatische Bereinigung der temporären Tabelle bestätigen

In diesem Schritt bestätigen Sie, dass die temporäre Tabelle temp_employees automatisch gelöscht wird, wenn die Datenbankverbindung geschlossen wird. Dies ist ein Hauptmerkmal von temporären Tabellen.

Beenden Sie zunächst die SQLite-Shell, indem Sie Folgendes eingeben:

.exit

Dadurch wird die Verbindung zur Datenbank employees.db geschlossen.

Öffnen Sie nun die SQLite-Shell erneut, indem Sie Folgendes ausführen:

sqlite3 employees.db

Versuchen Sie, die Tabelle temp_employees abzufragen:

SELECT * FROM temp_employees;

Sie sollten eine Fehlermeldung sehen, die angibt, dass die Tabelle nicht vorhanden ist:

Error: no such table: temp_employees

Dies bestätigt, dass die temporäre Tabelle automatisch gelöscht wurde, als die vorherige Datenbankverbindung geschlossen wurde.

SELECT * FROM temp_employees: Diese SQL-Anweisung versucht, alle Spalten und Zeilen aus der Tabelle temp_employees auszuwählen.

Error: no such table: temp_employees: Diese Fehlermeldung gibt an, dass die Tabelle temp_employees nicht in der Datenbank vorhanden ist, und bestätigt, dass sie automatisch gelöscht wurde, als die Datenbankverbindung geschlossen wurde.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie man temporäre Tabellen in SQLite erstellt und verwendet. Sie haben eine temporäre Tabelle namens temp_employees erstellt, Daten in diese eingefügt, die Daten mit verschiedenen SELECT-Anweisungen abgefragt und bestätigt, dass die temporäre Tabelle automatisch gelöscht wird, wenn die Datenbankverbindung geschlossen wird. Diese praktischen Übungen boten eine umfassende Einführung in temporäre Tabellen und vermittelten Ihnen das grundlegende Wissen, um temporäre Daten mit SQLite effektiv zu verarbeiten.