Tipos de datos SQLite con ejemplo

Tabla de contenido:

Anonim

Los tipos de datos en SQLite son diferentes en comparación con otros sistemas de administración de bases de datos. En SQLite, puede declarar tipos de datos normalmente, pero aún puede almacenar cualquier valor en cualquier tipo de datos.

En este tutorial, aprenderá:

  • Clases de almacenamiento
  • Tipo de afinidad
  • Ejemplos de almacenamiento de tipos de datos en SQLite

SQLite se escribe menos. No hay tipos de datos, puede almacenar cualquier tipo de datos que desee en cualquier columna. A esto se le llama tipos dinámicos.

En tipos estáticos, como en otros sistemas de administración de bases de datos, si declaró una columna con un tipo de datos entero, solo puede insertar valores de tipo de datos entero. Sin embargo, en tipos dinámicos como en SQLite, el tipo de columna está determinado por el valor insertado. Y luego SQLite almacena ese valor según su tipo.

Clases de almacenamiento SQLite

En SQLite existen diferentes métodos de almacenamiento según el tipo de valor, estos diferentes métodos de almacenamiento se denominan clases de almacenamiento en SQLite.

Las siguientes son las clases de almacenamiento disponibles en SQLite:

  • NULL : esta clase de almacenamiento se usa para almacenar cualquier valor NULL.
  • INTEGER : cualquier valor numérico se almacena como un valor entero con signo (puede contener valores enteros tanto positivos como negativos). Los valores INTEGER en SQLite se almacenan en 1, 2, 3, 4, 6 u 8 bytes de almacenamiento dependiendo del valor del número.
  • REAL : esta clase de almacenamiento se utiliza para almacenar los valores de punto flotante y se almacenan en un almacenamiento de 8 bytes.
  • TEXT : almacena cadenas de texto. También admite diferentes codificaciones como UTF-8, UTF-16 BE o UTF-26LE.
  • BLOB : se utiliza para almacenar archivos grandes, como imágenes o archivos de texto. El valor se almacena como una matriz de bytes al igual que el valor de entrada.

Tipo de afinidad de SQLite

La afinidad de tipos es el tipo recomendado de datos almacenados en una columna. Sin embargo, aún puede almacenar cualquier tipo de datos que desee, estos tipos se recomiendan y no son obligatorios.

Estos tipos se introdujeron en SQLite para maximizar la compatibilidad entre SQLite y otros sistemas de administración de bases de datos.

A cualquier columna declarada en una base de datos SQLite se le asigna una afinidad de tipo según el tipo de datos declarado. Aquí el aumento de afinidades de tipo en SQLite:

  • TEXTO.
  • NUMÉRICO.
  • ENTERO.
  • VERDADERO.
  • GOTA.

Así es como SQLite determina la afinidad de la columna a partir de su tipo de datos declarado:

  1. La afinidad INTEGER se asigna si el tipo declarado contiene la cadena " INT ".
  2. La afinidad TEXT se asigna si la columna contiene en su tipo de datos una de las siguientes cadenas " TEXT ", " CHAR o" CLOB ". Por ejemplo, al tipo VARCHAR se le asignará la afinidad TEXT.
  3. La afinidad BLOB se asigna si la columna no tiene ningún tipo especificado o el tipo de datos es un BLOB.
  4. La afinidad REAL se asigna si el tipo contiene una de las siguientes cadenas " DOUB ", " REAL o" FLOAT ".
  5. La afinidad NUMÉRICA se asigna para cualquier otro tipo de datos.

También hay una tabla en la misma página que muestra algunos ejemplos para el mapeo entre los tipos de datos SQLite y sus afinidades determinadas por estas reglas:

Ejemplos de almacenamiento de tipos de datos en SQLite:

Almacenamiento de número con entero SQLite:

Cualquier columna de tipo de datos contiene la palabra "INT", se le asignará una afinidad de tipo INTEGER. Se almacenará en una clase de almacenamiento INTEGER.

Todos los siguientes tipos de datos se asignan como afinidad de tipo INTEGER:

  • INT, INTEGER, GRANDE.
  • INT2, INT4, INT8.
  • TINYINT, PEQUEÑO, MEDIANO INT.

La afinidad de tipo INTEGER en SQLite puede contener cualquier número entero asignado (positivo o negativo) desde 1 byte hasta un máximo de 8 bytes.

Almacenamiento de números con SQLite REAL:

Los números REALES son números con precisión de doble coma flotante. SQLite almacenó números reales como una matriz de 8 bytes. Aquí está la lista de tipos de datos en SQLite que puede usar para almacenar números REALES:

  • VERDADERO.
  • DOBLE.
  • PRECISIÓN DOBLE.
  • FLOTADOR.

Almacenamiento de datos grandes con SQLite BLOB:

Solo hay una forma de almacenar archivos grandes en una base de datos SQLite, y es utilizando el tipo de datos BLOB. Este tipo de datos se utiliza para almacenar archivos grandes como imágenes, archivos (de cualquier tipo), etc. El archivo se convierte en una matriz de bytes y luego se almacena en el mismo tamaño que el archivo de entrada.

Almacenamiento de booleanos SQLite:

SQLite no tiene una clase de almacenamiento BOOLEAN separada. Sin embargo, los valores BOOLEAN se almacenan como INTEGERS con valores 0 (como falso) o 1 (como verdadero).

Almacenamiento de fechas y horas de SQLite:

Puede declarar fechas o fechas en SQLite utilizando uno de los siguientes tipos de datos:

  • FECHA
  • FECHA Y HORA
  • TIMESTAMP
  • HORA

Tenga en cuenta que no hay una clase de almacenamiento DATE o DATETIME separada en SQLite. En cambio, los valores declarados con uno de los tipos de datos anteriores se almacenan en una clase de almacenamiento según el formato de fecha del valor insertado de la siguiente manera:

  • TEXTO : si insertó el valor de la fecha en el formato de la cadena ISO8601 ("AAAA-MM-DD HH: MM: SS.SSS").
  • REAL : si inserta el valor de la fecha en los números de días julianos, el número de días desde el mediodía en Greenwich el 24 de noviembre de 4714 a. C. Entonces el valor de la fecha se almacenaría como REAL.
  • INTEGER como Unix Time, el número de segundos desde 1970-01-01 00:00:00 UTC.

Resumen:

SQLite admite una amplia gama de tipos de datos. Pero, al mismo tiempo, es muy flexible en cuanto a tipos de datos. Puede poner cualquier tipo de valor en cualquier tipo de datos. SQLite también introdujo algunos conceptos nuevos en los tipos de datos, como la afinidad de tipos y las clases de almacenamiento, a diferencia de otros sistemas de administración de bases de datos.