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:
- Si el tipo de columna declarado tiene la string «INT», entonces se le asigna una afinidad de entero.
- Si el tipo de columna declarado tiene alguna de las strings como «TEXT», «VARCHAR» o «CLOB», entonces esa columna tiene afinidad con TEXT.
- Si el tipo de columna declarado tiene la string «BLOB» o si no se proporciona ningún tipo, la columna tiene afinidad BLOB.
- Si el tipo de columna declarado tiene strings como «FLOA» o «DOUB», entonces la columna tiene afinidad REAL.
- 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