De SQLite typeof()
functie stelt u in staat het gegevenstype van een uitdrukking te bepalen.
Een uitdrukking kan een van de volgende gegevenstypen zijn:
- null
- geheel getal
- echt
- tekst
- blob
Voorbeeld
Hier is een voorbeeld om te demonstreren.
SELECT typeof('Avocado');
Resultaat:
text
Hier zijn er nog meer:
SELECT
typeof(12),
typeof(X'12'),
typeof(1.23),
typeof(NULL);
Resultaat:
typeof(12) typeof(X'12') typeof(1.23) typeof(NULL) ---------- ------------- ------------ ------------ integer blob real null
Databasevoorbeeld
SQLite gebruikt een dynamisch type systeem, in tegenstelling tot statisch typen zoals wat wordt gebruikt in de meeste andere relationele databasebeheersystemen.
In SQLite wordt het datatype van een waarde geassocieerd met de waarde zelf, niet met zijn container. Dit betekent dat een kolom gegevens van verschillende typen kan bevatten. Een rij kan bijvoorbeeld tekst in die kolom bevatten, een andere rij kan een geheel getal bevatten.
Hier is een voorbeeld dat dit concept demonstreert.
Neem de volgende tabel genaamd Producten :
ProductId ProductName Price ---------- -------------- ---------- 1 Homer's Widget 10.0 2 Peter's Widget 20.75 3 Bob's Widget 15.0 4 777
In deze tabel lijken de gegevens in de laatste rij te verschillen van de andere.
Laten we eens kijken wat de typeof()
functie keert terug.
SELECT
ProductId,
typeof(ProductName),
typeof(Price)
FROM Products;
Resultaat:
ProductId typeof(ProductName) typeof(Price) ---------- ------------------- ------------- 1 text real 2 text real 3 text real 4 integer null
Zoals verwacht, retourneert de laatste rij verschillende gegevenstypen voor de ProductName en Prijs kolommen.
Uitdrukkingen
De typeof()
functie kan handig zijn om te zien welk gegevenstype een bepaalde uitdrukking kan retourneren.
SELECT
typeof(1),
typeof(1 + 1.5),
typeof(1 + NULL);
Resultaat:
typeof(1) typeof(1 + 1.5) typeof(1 + NULL) ---------- --------------- ---------------- integer real null