Tipos de datos SQLite

SQLite Data Type es una cualidad que define el tipo de datos de cualquier objeto. SQLite es diferente de otros sistemas de bases de datos, utiliza un sistema de tipo dinámico. De otra forma, un valor almacenado en cualquier columna define su tipo de datos, no el tipo de datos de la columna.

Las clases de almacenamiento se pueden usar para definir el formato que usa SQLite para almacenar datos en el disco. SQLite proporciona cinco tipos de datos primarios que se mencionan a continuación:

  • NULL – Es un valor NULL.
  • INTEGER: es un número entero, almacenado en 1, 2, 3, 4, 6 u 8 bytes según el valor.
  • REAL: es un valor de punto flotante, almacenado como un número flotante de 8 bytes.
  • TEXTO: es una string, almacenada utilizando la codificación de la base de datos (UTF).
  • BLOB: es un grupo de datos, almacenado exactamente como se ingresó.

El concepto de afinidad de tipo es compatible con SQLite en las columnas. La clase de almacenamiento considerada para cualquier columna se denomina afinidad. A cada columna de la tabla en la base de datos SQLite se le asigna una de las siguientes afinidades de tipo:

  • TEXTO : esta columna captura todos los datos para NULL, TEXT o BLOB.
  • NUMÉRICO : esta columna captura valores para todas las clases de almacenamiento.
  • INTEGER – Tiene una excepción en una expresión CAST y se comporta de manera similar a una columna con afinidad NUMERICA.
  • REAL : fuerza a los valores enteros a una representación flotante. y se comporta como una columna con afinidad NUMÉRICA.
  • NINGUNA : una columna que no tiene afinidad NINGUNA no elige una clase de almacenamiento sobre otra y no cambia los datos de una clase de almacenamiento a otra.

Nota: SQLite no tiene ninguna clase de almacenamiento diferente para almacenar fechas y/u horas. Por otro lado, TEXT, INT o REAL podrían usarse para almacenar valores de fecha y hora.

Determinación de la afinidad:
las siguientes reglas dentro del orden que se muestra se utilizan para declarar el tipo de columna y la afinidad de cualquier columna:

  1. Si el tipo de columna declarado tiene la string «INT», entonces se le asigna una afinidad de entero.
  2. Si el tipo de columna declarado tiene alguna de las strings como «TEXT», «VARCHAR» o «CLOB», entonces esa columna tiene afinidad con TEXT.
  3. Si el tipo de columna declarado tiene la string «BLOB» o si no se proporciona ningún tipo, la columna tiene afinidad BLOB.
  4. Si el tipo de columna declarado tiene strings como «FLOA» o «DOUB», entonces la columna tiene afinidad REAL.
  5. De lo contrario, la afinidad es NUMÉRICA.

La siguiente tabla muestra que los tipos de datos comunes de SQL se convierten en afinidades mediante las 5 reglas de Determinación de afinidad para un pequeño conjunto de tipos de datos que SQLite puede aceptar:

tipo de datos SQLite Tipo de afinidad
INT
ENTERO
TINYINT
SMALLINT
MEDIUMINT
BIGINT
UNSIGNED BIG INT
INT2
INT8
ENTERO
NUMÉRICO
DECIMAL(10, 5)
BOOLEANO
FECHA
FECHAHORA
NUMÉRICO
FLOTADOR DE PRECISIÓN DOBLE
DOBLE REAL

REAL
CARÁCTER(20)
VARCHAR(255)
CARÁCTER VARIABLE(255)
NCHAR(55)
CARÁCTER NATIVO(70)
NVARCHAR(100) CLOB
DE TEXTO
TEXTO
BLOB
sin tipo de datos especificado
NINGUNA

SQLite proporciona la función typeof() que podría usarse para verificar la clase de almacenamiento de un valor en función de su formato.

Ejemplo 1 :

SELECT typeof(200), typeof(20.0), 
typeof('200'), typeof(x'2000'), typeof(NULL);
tipo de(200) tipo de(20.0) tipo de(‘200’) tipo de(x’2000′) tipo de (NULO)
entero real texto gota nulo

En SQLite, no es necesario declarar un tipo de datos específico para una columna al crear una tabla.

Ejemplo-2:
Vamos a crear una nueva tabla llamada geek_test e insertar valores –

CREATE TABLE geek_test (Item);
INSERT INTO geek_test (Item)
VALUES (1), (2), (10.1), (20.5), ('A'), ('B'), 
(NULL), (x'0010'), (x'0011');

Use la función typeof() para verificar el tipo de datos de cada valor almacenado en la columna Elemento.

SELECT Item, typeof(Item)
FROM geek_test;

Artículo tipo de (elemento)
(1) entero
(2) entero
(10.1) real
(20.5) real
(‘A’) texto
(‘B’) texto
(NULO) nulo
(x’0010′) gota
(x’0011′) gota

Publicación traducida automáticamente

Artículo escrito por khushboogoyal499 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *