En esta página:
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 Popular” y “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.