Tipos de Datos en SQLite

5 minuto(s)

Una Base de Datos SQLite se suele usar en dispositivos que cuentan con pocos recursos de hardware, un ejemplo son los dispositivos móviles como los smartphones. Los desarrolladores android suelen optar por usar SQLite para almacenar de manera rápida determinados datos de una aplicación. Pero no solo en android, ya que SQLite es compatible con diferentes entornos. Para conocer más sobre SQLite puedes ingresar a este enlace. Conocer los tipos de datos que permite usar SQLite es importante para un buen desarrollo de aplicaciones que necesiten guardar y gestionar datos. En este Post te compartiré los Tipos de Datos en SQLite, vamos con ello.


Antes de continuar, te invito a escuchar el Podcast: “Porque El Lenguaje De Programación Python Es Tan Populary “Ventajas y Desventajas de Usar 2 o Más Monitores Para un Desarrollador”: 

Spotify: Sound Cloud: Apple Podcasts Anchor Podcasts

Bien ahora continuemos con el Post: Tipos de Datos en SQLite.

Tipos de Datos en SQLite

La mayoría de los motores de bases de datos SQL (todos los motores de bases de datos SQL que no sean SQLite, hasta donde sabemos) utilizan tipos estáticos y rígidos. Con la escritura estática, el tipo de datos de un valor está determinado por su contenedor, la columna particular en la que se almacena el valor.

SQLite usa 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. El sistema de tipos dinámicos de SQLite es retrocompatible con los sistemas de tipos estáticos más comunes de otros motores de bases de datos en el sentido de que las instrucciones SQL que funcionan en bases de datos de tipos estáticos funcionan de la misma manera en SQLite. Sin embargo, la tipificación dinámica en SQLite le permite hacer cosas que no son posibles en las bases de datos tradicionales de tipificación rígida. La escritura flexible es una característica de SQLite, no un error.

A partir de la versión 3.37.0 (2021-11-27), SQLite proporciona tablas ESTRICTAS que aplican tipos rígidos, para los desarrolladores que prefieren ese tipo de cosas.

A continuación veamos los tipos de datos que tiene SQLite:

Clases de almacenamiento de SQLite

Cada valor almacenado en una base de datos SQLite tiene una de las siguientes clases de almacenamiento:

Tipo de dato Descripción
NULL El valor es un valor NULL.
INTEGER El valor es un entero con signo, almacenado en 1, 2, 3, 4, 6 u 8 bytes, según la magnitud del valor.
REAL El valor es un valor de punto flotante, almacenado como un número de punto flotante IEEE de 8 bytes.
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)
BLOB El valor es una blob (gota) de datos, almacenada exactamente como se ingresó.

La clase de almacenamiento de 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.

Tipos de Afinidad de SQLite

SQLite admite el concepto de afinidad de tipos en las columnas. Cualquier columna aún puede almacenar cualquier tipo de datos, pero la clase de almacenamiento preferida para una columna se denomina afinidad. A cada columna de la tabla en una base de datos SQLite3 se le asigna una de las siguientes afinidades de tipo:

Tipo de dato Descripción
TEXT Esta columna almacena todos los datos utilizando las clases de almacenamiento NULL, TEXT o BLOB.
NUMERIC Esta columna puede contener valores utilizando las cinco clases de almacenamiento.
INTEGER Se comporta igual que una columna con afinidad NUMERIC, con la excepción de una expresión CAST.
REAL Se comporta como una columna con afinidad NUMERIC excepto que obliga a los valores enteros a una representación de punto flotante.
NONE Una columna con afinidad NONE no prefiere una clase de almacenamiento sobre otra y no se intenta forzar datos de una clase de almacenamiento a otra.

Veamos ahora los nombres de tipo y adinidad de SQLite.

Nombres de Tipo y Afinidad de SQLite

Tipo de datos Afinidad
INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER
CHARACTER(20)

VARCHAR(255)

VARYING

CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70) NVARCHAR(100)

TEXT

CLOB

TEXT
BLOB

Cuando no se Especifica un Tipo de Datos

NONE
REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL
NUMERIC

DECIMAL(10,5)

BOOLEAN

DATE

DATETIME

NUMERIC

Ahora veamos algunos detalles sobre los tipos de datos Booleanos.

Tipo de Datos Booleano

SQLite no tiene una clase de almacenamiento booleano separada. En su lugar, los valores booleanos se almacenan como números enteros 0 (false) y 1 (true).

Tipo de Datos de Fecha y Hora

SQLite no tiene una clase de almacenamiento separada para almacenar fechas y/u horas, pero SQLite es capaz de almacenar fechas y horas como valores de TEXT, REAL o INTEGER:

Tipo de dato Descripción
TEXT Una fecha en un formato como “AAAA-MM-DD HH:MM:SS.SSS”
REAL El número de días desde el mediodía en Greenwich el 24 de noviembre de 4714 a.C.
INTEGER El número de segundos desde 1970-01-01 00:00:00 UTC

Puedes optar por almacenar fechas y horas en cualquiera de estos formatos y convertir libremente entre formatos utilizando las funciones de fecha y hora integradas.

Bien, estos son los tipos de datos que SQLite tiene y con los cuales podemos trabajar en un proyecto.

Conclusión

En este artículo has aprendido los tipos de datos con los que SQLite cuenta, conocerlos es muy importante antes de desarrollar un proyecto que al menos realice tareas CRUD (Create, Read, Update y Delete), ya que asi podemos evitar errores en la inserción, lectura y actualización de ellos. 

Nota (s)

  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.