SQLite - Tipo de datos
El tipo de datos SQLite es un atributo que especifica el tipo de datos de cualquier objeto. Cada columna, variable y expresión tiene un tipo de datos relacionado en SQLite.
Utilizaría estos tipos de datos al crear sus tablas. SQLite utiliza un sistema de tipo dinámico más general. En SQLite, el tipo de datos de un valor está asociado con el valor en sí, no con su contenedor.
Clases de almacenamiento SQLite
Cada valor almacenado en una base de datos SQLite tiene una de las siguientes clases de almacenamiento:
No Señor. | Clase de almacenamiento y descripción |
---|---|
1 | NULL El valor es un valor NULO. |
2 | INTEGER El valor es un entero con signo, almacenado en 1, 2, 3, 4, 6 u 8 bytes dependiendo de la magnitud del valor. |
3 | REAL El valor es un valor de coma flotante, almacenado como un número de coma flotante IEEE de 8 bytes. |
4 | TEXT El valor es una cadena de texto, almacenada usando la codificación de la base de datos (UTF-8, UTF-16BE o UTF-16LE) |
5 | BLOB El valor es una masa de datos, almacenada exactamente como se ingresó. |
La clase de almacenamiento SQLite es un poco más general que un tipo de datos. La clase de almacenamiento INTEGER, por ejemplo, incluye 6 tipos de datos enteros diferentes de diferentes longitudes.
Tipo de afinidad de SQLite
SQLite apoya el concepto de type affinityen columnas. Cualquier columna puede almacenar cualquier tipo de datos, pero la clase de almacenamiento preferida para una columna se llama suaffinity. A cada columna de la tabla en una base de datos SQLite3 se le asigna una de las siguientes afinidades de tipo:
No Señor. | Afinidad y descripción |
---|---|
1 | TEXT Esta columna almacena todos los datos utilizando las clases de almacenamiento NULL, TEXT o BLOB. |
2 | NUMERIC Esta columna puede contener valores que utilicen las cinco clases de almacenamiento. |
3 | INTEGER Se comporta igual que una columna con afinidad NUMÉRICA, con una excepción en una expresión CAST. |
4 | REAL Se comporta como una columna con afinidad NUMÉRICA excepto que fuerza valores enteros en representación de punto flotante. |
5 | NONE Una columna con afinidad NINGUNA no prefiere una clase de almacenamiento sobre otra y no se intenta forzar datos de una clase de almacenamiento a otra. |
Nombres de tipo y afinidad de SQLite
La siguiente tabla enumera varios nombres de tipos de datos que se pueden usar al crear tablas SQLite3 con la afinidad aplicada correspondiente.
Tipo de datos | Afinidad |
---|---|
|
ENTERO |
|
TEXTO |
|
NINGUNA |
|
REAL |
|
NUMÉRICO |
Tipo de datos booleano
SQLite no tiene una clase de almacenamiento booleana separada. En cambio, los valores booleanos se almacenan como números enteros 0 (falso) y 1 (verdadero).
Tipo de datos de fecha y hora
SQLite no tiene una clase de almacenamiento separada para almacenar fechas y / o horas, pero SQLite es capaz de almacenar fechas y horas como valores TEXT, REAL o INTEGER.
No Señor. | Formato de fecha y clase de almacenamiento |
---|---|
1 | TEXT Una fecha en un formato como "AAAA-MM-DD HH: MM: SS.SSS" |
2 | REAL El número de días desde el mediodía en Greenwich el 24 de noviembre de 4714 a. C. |
3 | INTEGER El número de segundos desde 1970-01-01 00:00:00 UTC |
Puede elegir almacenar fechas y horas en cualquiera de estos formatos y convertir libremente entre formatos utilizando las funciones integradas de fecha y hora.