Skip to content

Tipos de datos

SQLite tiene un sistema de tipos de datos dinámico, lo que significa que no es necesario declarar un tipo de dato específico para una columna. Sin embargo, hay algunos tipos de datos comunes que puedes usar, son diferentes a los de MySQL o PostgreSQL, no esperes que una query que funcione en MySQL o PostgreSQL funcione en SQLite sin modificaciones.

Tipado dinámico

SQLite tiene un sistema de tipos muy flexible. De base, no necesitas indicar el tipo de dato de una columna al crear una tabla:

CREATE TABLE ejemplo (
    columna1,
    columna2,
    columna3
);

INSERT INTO ejemplo (columna1, columna2, columna3) VALUES (123, 'texto', 45.67);
INSERT INTO ejemplo (columna1, columna2, columna3) VALUES ('hola', 4.56, 123);

Esto funciona perfectamente, SQLite no dará error de ningún tipo.

Cuando un texto llega a una columna, SQLite intentará convertirlo al tipo de dato adecuado según el contexto.

Datatypes

Los tipos de datos principales en SQLite son:

  • INTEGER: Un número entero. Puede ser de 1, 2, 3, 4, 6, 8 bytes dependiendo del valor.
  • REAL Un número de punto flotante de 8 bytes.
  • TEXT: Una cadena de texto. Puede ser de cualquier longitud.
  • BLOB: Un objeto binario grande. Se utiliza para almacenar datos binarios como imágenes o archivos.
  • NULL: Un valor nulo.

Hay más tipos de datos, puedes ver la lista completa en la documentación oficial de SQLite.

A la hora de configurar cada datos, puedes usar varios modificadores para definir el comportamiento de las columnas:

  • PRIMARY KEY: Define una columna como clave primaria.
  • AUTOINCREMENT: Hace que la columna se incremente automáticamente con cada inserción.
  • NOT NULL: Asegura que la columna no puede contener valores nulos.
  • UNIQUE: Asegura que los valores en la columna son únicos.
  • DEFAULT: Define un valor por defecto para la columna si no se especifica uno al insertar.

El orden en el que usas estos modificadores puede variar, pero es común verlos en el siguiente orden: