El SQLite typeof()
le permite determinar el tipo de datos de una expresión.
Una expresión puede ser uno de los siguientes tipos de datos:
- nulo
- entero
- real
- texto
- mancha
Ejemplo
Aquí hay un ejemplo para demostrarlo.
SELECT typeof('Avocado');
Resultado:
text
Aquí hay algunos más:
SELECT
typeof(12),
typeof(X'12'),
typeof(1.23),
typeof(NULL);
Resultado:
typeof(12) typeof(X'12') typeof(1.23) typeof(NULL) ---------- ------------- ------------ ------------ integer blob real null
Ejemplo de base de datos
SQLite utiliza un sistema de tipos dinámicos, a diferencia de los tipos estáticos como los que se utilizan en la mayoría de los demás sistemas de gestión de bases de datos relacionales.
En SQLite, el tipo de datos de un valor está asociado con el valor en sí, no con su contenedor. Esto significa que una columna puede contener datos de varios tipos. Por ejemplo, una fila puede tener texto en esa columna, otra fila puede contener un número entero.
Aquí hay un ejemplo que demuestra este concepto.
Tome la siguiente tabla llamada Productos :
ProductId ProductName Price ---------- -------------- ---------- 1 Homer's Widget 10.0 2 Peter's Widget 20.75 3 Bob's Widget 15.0 4 777
En esta tabla, los datos de la última fila parecen ser diferentes a los demás.
Veamos qué es el typeof()
la función regresa.
SELECT
ProductId,
typeof(ProductName),
typeof(Price)
FROM Products;
Resultado:
ProductId typeof(ProductName) typeof(Price) ---------- ------------------- ------------- 1 text real 2 text real 3 text real 4 integer null
Como era de esperar, la última fila devuelve diferentes tipos de datos para ProductName y Precio columnas.
Expresiones
El typeof()
La función puede ser útil para ver qué tipo de datos podría devolver una expresión dada.
SELECT
typeof(1),
typeof(1 + 1.5),
typeof(1 + NULL);
Resultado:
typeof(1) typeof(1 + 1.5) typeof(1 + NULL) ---------- --------------- ---------------- integer real null