SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Funktionsweise von Typeof() in SQLite

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