Variablen in SQLite

Bilal Shahid 21 Juni 2023
  1. Variablen in SQLite
  2. Arten von Variablen in SQLite
  3. Variablen in SQLite deklarieren
  4. Verwenden Sie die deklarierten Variablen in SQLite
Variablen in SQLite

Das Erstellen und Verwenden von Funktionen kann sich als unglaublich nützlich erweisen, wenn Sie Abfragen auf SQLite erstellen. Ein Teil dieser Funktionen und Prozeduren verwendet Variablen innerhalb von SQLite.

Variablen in SQLite

Variablen können sich als unglaublich nützlich erweisen, wenn sie richtig eingesetzt werden. Erklären Sie es ihnen am besten anhand eines Beispiels.

Angenommen, Sie erstellen eine Prozedur oder Funktion, um zwei Zahlen zu addieren. Dies kann leicht durch die Verwendung des richtigen Operators erreicht werden.

Wenn wir es jedoch etwas komplexer machen und sagen würden, dass Sie beide Zahlen als Eingabe vom Benutzer erhalten würden, wäre es nicht so einfach.

Sie können die Werte nicht hartcodieren, da der Benutzer eine beliebige Zahl eingeben kann. Dies ist, wenn eine Variable nützlich ist.

Es nimmt die Eingabe des Benutzers und speichert sie in einer Variablen, die so lange bleibt, bis sie überschrieben wird oder das Programm beendet wird. Anstatt zwei zufällige Werte hinzuzufügen, können Sie jetzt die Variablen hinzufügen, die die beiden vom Benutzer ausgewählten Werte enthalten.

Dies kann in einer dritten Variablen oder einer der beiden vorhandenen gespeichert werden, wenn sie später nicht verwendet werden sollen. Mit Variablen können Sie problemlos jeden Wert mehrerer Datentypen innerhalb Ihrer Prozedur speichern und bearbeiten.

Dies macht sie für jede Funktion von entscheidender Bedeutung, da auf hartcodierte Werte kein Verlass ist.

Arten von Variablen in SQLite

Es gibt mehrere Arten von Variablen in SQLite. Das bedeutet, dass sie unterschiedliche Datentypen haben, um dem System mitzuteilen, welche Daten in dieser Variablen gespeichert werden.

Hier sind einige der in SQLite verfügbaren Datentypen:

  • NULL: Dieser Typ fügt der Variablen einen Nullwert hinzu.
  • INTEGER: Dies ist für vorzeichenbehaftete Ganzzahlen. Alle positiven und negativen Zahlen befinden sich in 0, 1, 2, 3, 4, 6 oder 8 Bytes.
  • REAL: Dies ist für eine Gleitkommavariable, was eine positive oder negative Zahl mit einem Dezimalpunkt bedeutet. Diese wird als 8-Byte-Zahl gespeichert.
  • TEXT: Wie der Name schon sagt, enthält TEXT eine Textzeichenfolge. Dies wird häufig mit einer Datenbankcodierung wie UTF-8, UTF-16BE oder UTF-16LE gespeichert.
  • BLOB: Dies ist eine spezielle Variable, in der Daten so gespeichert werden, wie sie eingegeben wurden, und sich an den verwendeten Datentyp anpassen.

Es ist wichtig zu beachten, dass Sie, wenn Sie jemals einen falschen Datentyp verwendet haben oder ihn irgendwo in der Mitte des Codes ändern möchten, ihn jederzeit mit dem Ausdruck CAST ändern können. Dadurch werden der Datentyp und der Inhalt geändert, gehen Sie also vorsichtig damit um; Sie könnten mit entsprechenden ASCII-Werten enden, wo Sie sie nicht benötigen.

Variablen in SQLite deklarieren

Um Variablen in SQLite verwenden zu können, müssen Sie sie zuerst deklarieren. Der Deklarationsprozess ist ziemlich einfach, abhängig vom Variablentyp, den Sie erstellen möchten; Sie unterscheidet sich jedoch geringfügig von der nativen Syntax.

In SQLite müssen Sie den Prozess virtuell mit einer temporären In-Memory-Tabelle durchlaufen. Hier ist ein Beispiel, wie es gemacht werden kann:

BEGIN;

/* This tells your system to use in-memory */
PRAGMA temp_store = 2;

/* creating the temp table with the variables you need */
CREATE TEMP TABLE Vars(text_val TEXT PRIMARY KEY, real_val REAL, integer_val INTEGER, blob_value BLOB, text_val TEXT);

/* The declaration part */
INSERT INTO Vars (text_val)
VALUES ('Any value');

DROP TABLE Vars;

END;

Indem Sie den obigen Code verwenden, können Sie das indirekte Deklarieren einer Variablen umgehen. Hier müssen Sie zuerst eine temporäre In-Memory-Tabelle erstellen; Auf diese Weise können Sie Spalten mit Ihren bevorzugten Datentypen hinzufügen und dann die Klausel INSERT verwenden, um Werte darin zu speichern.

Die Klauseln BEGIN und END helfen bei der Identifizierung, wo die Prozedur beginnt und endet, daher müssen sie bei der Verwendung dieser Methode eingeschlossen werden. Danach können Sie die Daten nach Belieben bearbeiten und verwenden.

Dies wurde weiter unten näher erläutert.

Verwenden Sie die deklarierten Variablen in SQLite

Sie wissen jetzt, wie man Variablen deklariert, aber es ist genauso wichtig zu lernen, wie man sie benutzt. Ohne dies können Sie die von Ihnen deklarierten Variablen nicht verwenden.

Lassen Sie uns dazu eine aktualisierte Version desselben Codes verwenden, der oben verwendet wurde.

BEGIN;

/* Add codes from above to use in memory,
create the temp table,
and declaration first*/

/* Assignment (select a storage class according to your requirements) */
UPDATE Vars SET integer_val= ...
WHERE text_val= 'Any value';

/* Get the value of the variable that is to be used in the expression) */
...
(SELECT coalesce(real_val, integer_val, blob_value, text_val)
FROM Vars
WHERE text_val= 'Any value' LIMIT 1) ...

DROP TABLE Vars;

END;

Dieser Code hat einige Ergänzungen, mit denen Sie Variablenwerte zuweisen können. Zuerst müssen Sie Ihren Variablen Werte zuweisen und sie dann zurückverknüpfen, um sie in einem Ausdruck zu verwenden.

Schließlich wird die Tabelle gelöscht, sobald die Funktion abgeschlossen ist. Sie können jederzeit zusätzliche Codezeilen hinzufügen, damit sich Variablen gemäß Ihren Anforderungen verhalten.

Durch das Löschen der Tabelle werden jedoch alle gespeicherten Daten entfernt. Tun Sie dies also erst, wenn Sie mit der Verwendung aller Daten fertig sind.

Eine andere Methode ist die Verwendung der WITH-Klausel:

...
WITH const AS (SELECT 'any value' AS text_val, 10 AS int_val)
SELECT table.cost, (table.cost + const.int_val) AS cost2
FROM table, const
WHERE table.text_val= const.text_val

Hier werden zwei Variablen hinzugefügt und in einer davon gespeichert.

Hinweis: Sie können dies jederzeit durch die Vereinigung einer Reihe von Klassen ersetzen, nachdem sie in eine Tabelle eingefügt wurden. Die Logik mag variieren, aber das Konzept bleibt dasselbe.

Das war alles, was Sie über Variablen in SQLite wissen müssen. Jetzt können Sie sie ganz einfach nach Ihren Wünschen erstellen und 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