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
  • INT
  • INTEGER
  • TINYINT
  • SMALLINT
  • MEDIUMINT
  • BIGINT
  • BIG INT SIN FIRMAR
  • INT2
  • INT8
ENTERO
  • CHARACTER(20)
  • VARCHAR(255)
  • CARÁCTER VARIABLE (255)
  • NCHAR(55)
  • PERSONAJE NATIVO (70)
  • NVARCHAR(100)
  • TEXT
  • CLOB
TEXTO
  • BLOB
  • sin tipo de datos especificado
NINGUNA
  • REAL
  • DOUBLE
  • PRECISIÓN DOBLE
  • FLOAT
REAL
  • NUMERIC
  • DECIMAL(10,5)
  • BOOLEAN
  • DATE
  • DATETIME
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.