Temporäre Tabellen in SQLite

Bilal Shahid 21 Juni 2023
  1. Erstellen Sie eine temporäre Tabelle in SQLite
  2. Wählen Sie Aus einer temporären Tabelle in SQLite aus
  3. Löschen Sie eine temporäre Tabelle in SQLite
  4. Einfügen, Aktualisieren und Löschen von Datensätzen in einer temporären Tabelle in SQLite
Temporäre Tabellen in SQLite

Temporäre Tabellen können in SQLite unglaublich nützlich sein. Sie sind jedoch dafür bekannt, dass sie etwas schwierig zu bedienen sind.

In diesem Artikel wird die Erstellung und Verwendung von temporären Tabellen in SQLite ausführlich beschrieben.

Erstellen Sie eine temporäre Tabelle in SQLite

Das Erstellen einer temporären Tabelle in SQLite ist viel einfacher als Sie denken. Es ist dem Erstellen einer regulären Tabelle ziemlich ähnlich. Der Code zum Erstellen ist unten dargestellt.

Zuerst müssen Sie eine reguläre Tabelle erstellen, da eine temporäre Tabelle einen Verweis auf eine bereits erstellte Tabelle benötigt.

CREATE TABLE users
(
    users_id INTEGER,
    name TEXT,
    age INTEGER
);

Danach können Sie eine temporäre Tabelle erstellen, die die obige Tabelle des Benutzers kopiert.

CREATE TEMPORARY TABLE table1
AS
(
SELECT * FROM users
);

Dadurch wird eine temporäre Tabelle erstellt, die mit der Tabelle des Benutzers identisch ist. Am besten fügen Sie einige Werte ein, bevor Sie eine temporäre Tabelle erstellen, damit Sie überprüfen können, ob es sich um eine Kopie der neuesten Tabelle handelt, und dies kann mit der Klausel INSERT INTO erfolgen.

Sie können eine Tabelle immer mit einer komplexeren Abfrage erstellen. Sie müssen lediglich die Abfrage SELECT nach der Klausel AS durch eine Abfrage Ihrer Wahl ersetzen.

Sobald Sie fertig sind, wird Ihre temporäre Tabelle erstellt und ist einsatzbereit. Beachten Sie, dass TEMP auch die TEMPORARY-Klausel ersetzen kann und beide in SQLite akzeptiert werden.

Wählen Sie Aus einer temporären Tabelle in SQLite aus

Jetzt wissen wir, wie einfach es ist, einen zu erstellen. Sie fragen sich vielleicht, wie Sie daraus auswählen können. Es verwendet die übliche SELECT-Klausel identisch, aber es ist am besten, einen etwas anderen Ansatz zu wählen als die Auswahl einer regulären oder permanenten Tabelle.

Fügen Sie am besten einen zusätzlichen Alias hinzu, indem Sie die Klausel AS für temporäre Tabellen verwenden. Ein Beispiel, das dieselbe Benutzertabelle und die entsprechende oben definierte temporäre Tabelle verwendet, wird hier gezeigt:

SELECT 'table1'
AS from_table,* FROM table1

Dies hätte funktioniert, wenn Sie auch SELECT * FROM table1 verwendet hätten. Es ist jedoch am besten, diese Methode zu verwenden, damit Sie den Inhalt Ihrer temporären Tabelle von dem Ihrer permanenten Tabelle unterscheiden können.

Dies ist besonders hilfreich bei Tabellen mit mehreren Einträgen. Es ist wichtig zu beachten, dass Sie das Sternsymbol (*) durch eine beliebige Abfrage Ihrer Wahl ersetzen können.

Verwenden Sie die With-Klausel

Eine weitere, weniger gebräuchliche Auswahlmethode ist die WITH-Klausel. Dies kann jedoch nur verwendet werden, wenn Sie eine Abfrage mit nur einer Select-Anweisung erstellen.

Wenn Sie komplexe Abfragen verwenden möchten, bleiben Sie am besten bei der zuvor erläuterten Methode. Sie können diese Methode mit dem folgenden Code ausprobieren.

WITH table1(users_id, name,age) AS
(
   --add any one select statement
)
SELECT users_id, name,age FROM table1;

Andere Klauseln wie set operators, grouping oder ordering sind oft auch für alle temporären Tabellen verfügbar. Sie werden auf die gleiche Weise wie in permanenten Tabellen verwendet, da sie korrekt ausgeführt werden, solange Ihre Abfrage richtig geschrieben ist.

Löschen Sie eine temporäre Tabelle in SQLite

In SQLite ähnelt das Löschen einer temporären Tabelle dem Löschen einer gewöhnlichen oder permanenten Tabelle in Ihrer Datenbank. Temporäre Tabellen werden oft automatisch gelöscht, nachdem der Benutzer eine bestimmte Sitzung beendet hat, aber Sie können sie jederzeit manuell löschen, wenn Sie möchten.

Denken Sie daran, dass Sie alle Daten, die Sie speichern möchten, in die permanente Tabelle replizieren sollten, bevor Sie sie löschen, um Datenverluste zu vermeiden. Die folgende Abfrage zeigt, wie eine temporäre Tabelle gelöscht wird.

DROP TABLE temp.table1

Der einzige Unterschied besteht darin, dass vor dem Namen der Tabelle eine zusätzliche Klausel hinzugefügt wird. Dies bedeutet, dass die zu löschende Tabelle eine temporäre Tabelle ist.

Beim Löschen einer temporären Tabelle ist es oft am besten, eine IF EXISTS-Klausel hinzuzufügen. Dies liegt daran, dass die Tabelle möglicherweise automatisch gelöscht wurde, ohne dass Sie es wussten.

Dadurch werden Fehler vermieden, die in längeren Codes schwer zu identifizieren sind. Verwenden Sie den folgenden Code, um eine temporäre Tabelle zu löschen.

DROP TABLE If EXISTS temp.table1;

Einfügen, Aktualisieren und Löschen von Datensätzen in einer temporären Tabelle in SQLite

Das Einfügen, Aktualisieren und Löschen von Datensätzen in einer temporären Tabelle ist so ziemlich dasselbe wie in einer permanenten Tabelle. Es ist wichtig zu beachten, dass alle hinzugefügten und bearbeiteten Daten verloren gehen, nachdem der Benutzer die Sitzung beendet oder wenn sie abläuft.

Hier sind einige Beispiele, auf die Sie sich für alle drei oben genannten Fälle beziehen können, indem Sie dieselbe temporäre Tabelle verwenden, die zuvor erstellt wurde.

Datensätze in eine temporäre Tabelle einfügen

INSERT INTO users(users_id, name,age)
VALUES(1, 'abc', 30);

Dadurch werden die Werte erfolgreich in Ihre temporäre Tabelle eingefügt. Wenn Sie jedoch eindeutige Einschränkungen haben, möchten Sie möglicherweise die Klauseln IGNORE oder REPLACE hinzufügen, um Fehler bei der Ausführung zu vermeiden.

Datensätze in einer temporären Tabelle aktualisieren

UPDATE users
SET name='xyz' WHERE users_id=3;

Dadurch wird der Name des Benutzers in der temporären Tabelle mit der ID 3 geändert. Sie können den Inhalt nach der where-Klausel durch jede erforderliche Bedingung ersetzen.

Datensätze in einer temporären Tabelle löschen

DELETE * FROM users

Diese Abfrage löscht alle Inhalte in der temporären Tabelle. Wenn Sie nur eine bestimmte Zeile löschen möchten, müssen Sie eine WHERE-Klausel wie die untenstehende einfügen.

DELETE * FROM users
WHERE users_id=1

Das ist alles, was Sie wissen müssen, um mit temporären Tabellen zu arbeiten. Wir hoffen, dass dieser Artikel Ihnen geholfen hat, loszulegen und zu verstehen, wie Sie sie richtig verwenden.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub

Verwandter Artikel - SQLite Table