sql >> Base de Datos >  >> RDS >> SQLite

Cómo funciona Typeof() en SQLite

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