Der SQLite typeof()
Mit der Funktion können Sie den Datentyp eines Ausdrucks bestimmen.
Ein Ausdruck kann einer der folgenden Datentypen sein:
- Null
- Ganzzahl
- echt
- Text
- Klecks
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
SELECT typeof('Avocado');
Ergebnis:
text
Hier sind noch einige:
SELECT
typeof(12),
typeof(X'12'),
typeof(1.23),
typeof(NULL);
Ergebnis:
typeof(12) typeof(X'12') typeof(1.23) typeof(NULL) ---------- ------------- ------------ ------------ integer blob real null
Datenbankbeispiel
SQLite verwendet ein dynamisches Typsystem im Gegensatz zu statischer Typisierung, wie sie in den meisten anderen Verwaltungssystemen für relationale Datenbanken verwendet wird.
In SQLite ist der Datentyp eines Werts dem Wert selbst zugeordnet, nicht seinem Container. Das bedeutet, dass eine Spalte Daten verschiedener Typen enthalten kann. Beispielsweise könnte eine Zeile Text in dieser Spalte enthalten, eine andere Zeile könnte eine Ganzzahl enthalten.
Hier ist ein Beispiel, das dieses Konzept demonstriert.
Nehmen Sie die folgende Tabelle namens Produkte :
ProductId ProductName Price ---------- -------------- ---------- 1 Homer's Widget 10.0 2 Peter's Widget 20.75 3 Bob's Widget 15.0 4 777
In dieser Tabelle scheinen sich die Daten in der letzten Zeile von den anderen zu unterscheiden.
Mal sehen, was der typeof()
ist Funktion gibt zurück.
SELECT
ProductId,
typeof(ProductName),
typeof(Price)
FROM Products;
Ergebnis:
ProductId typeof(ProductName) typeof(Price) ---------- ------------------- ------------- 1 text real 2 text real 3 text real 4 integer null
Wie erwartet gibt die letzte Zeile verschiedene Datentypen für ProductName zurück und Preis Spalten.
Ausdrücke
Der typeof()
Funktion kann nützlich sein, um zu sehen, welchen Datentyp ein bestimmter Ausdruck zurückgeben könnte.
SELECT
typeof(1),
typeof(1 + 1.5),
typeof(1 + NULL);
Ergebnis:
typeof(1) typeof(1 + 1.5) typeof(1 + NULL) ---------- --------------- ---------------- integer real null