SQLite - Tipo de Dados

O tipo de dados SQLite é um atributo que especifica o tipo de dados de qualquer objeto. Cada coluna, variável e expressão tem tipo de dados relacionado no SQLite.

Você usaria esses tipos de dados ao criar suas tabelas. SQLite usa um sistema de tipo dinâmico mais geral. No SQLite, o tipo de dados de um valor está associado ao próprio valor, não ao seu contêiner.

Classes de armazenamento SQLite

Cada valor armazenado em um banco de dados SQLite tem uma das seguintes classes de armazenamento -

Sr. Não. Classe e descrição de armazenamento
1

NULL

O valor é um valor NULL.

2

INTEGER

O valor é um número inteiro com sinal, armazenado em 1, 2, 3, 4, 6 ou 8 bytes dependendo da magnitude do valor.

3

REAL

O valor é um valor de ponto flutuante, armazenado como um número de ponto flutuante IEEE de 8 bytes.

4

TEXT

O valor é uma string de texto, armazenada usando a codificação do banco de dados (UTF-8, UTF-16BE ou UTF-16LE)

5

BLOB

O valor é um blob de dados, armazenado exatamente como foi inserido.

A classe de armazenamento SQLite é um pouco mais geral do que um tipo de dados. A classe de armazenamento INTEGER, por exemplo, inclui 6 tipos de dados inteiros diferentes de comprimentos diferentes.

Tipo de afinidade SQLite

SQLite suporta o conceito de type affinitynas colunas. Qualquer coluna ainda pode armazenar qualquer tipo de dados, mas a classe de armazenamento preferida para uma coluna é chamada deaffinity. Cada coluna da tabela em um banco de dados SQLite3 é atribuída a um dos seguintes tipos de afinidades -

Sr. Não. Afinidade e descrição
1

TEXT

Esta coluna armazena todos os dados usando as classes de armazenamento NULL, TEXT ou BLOB.

2

NUMERIC

Esta coluna pode conter valores usando todas as cinco classes de armazenamento.

3

INTEGER

Se comporta da mesma forma que uma coluna com afinidade NUMERIC, com uma exceção em uma expressão CAST.

4

REAL

Se comporta como uma coluna com afinidade NUMERIC, exceto que força os valores inteiros na representação de ponto flutuante.

5

NONE

Uma coluna com afinidade NONE não prefere uma classe de armazenamento a outra e nenhuma tentativa é feita para forçar os dados de uma classe de armazenamento para outra.

Afinidade SQLite e nomes de tipo

A tabela a seguir lista vários nomes de tipo de dados que podem ser usados ​​ao criar tabelas SQLite3 com a afinidade aplicada correspondente.

Tipo de dados Afinidade
  • INT
  • INTEGER
  • TINYINT
  • SMALLINT
  • MEDIUMINT
  • BIGINT
  • BIG INT NÃO ASSINADO
  • INT2
  • INT8
INTEIRO
  • CHARACTER(20)
  • VARCHAR(255)
  • CARÁTER VARIÁVEL (255)
  • NCHAR(55)
  • CARÁTER NATIVO (70)
  • NVARCHAR(100)
  • TEXT
  • CLOB
TEXTO
  • BLOB
  • nenhum tipo de dados especificado
NENHUM
  • REAL
  • DOUBLE
  • DUPLA PRECISÃO
  • FLOAT
REAL
  • NUMERIC
  • DECIMAL(10,5)
  • BOOLEAN
  • DATE
  • DATETIME
NUMÉRICO

Boolean Datatype

O SQLite não possui uma classe de armazenamento Booleana separada. Em vez disso, os valores booleanos são armazenados como inteiros 0 (falso) e 1 (verdadeiro).

Tipo de dados de data e hora

O SQLite não tem uma classe de armazenamento separada para armazenar datas e / ou horas, mas o SQLite é capaz de armazenar datas e horas como valores TEXT, REAL ou INTEGER.

Sr. Não. Classe de armazenamento e formato de data
1

TEXT

Uma data em formato como "AAAA-MM-DD HH: MM: SS.SSS"

2

REAL

O número de dias desde o meio-dia em Greenwich em 24 de novembro de 4714 AC

3

INTEGER

O número de segundos desde 01/01/1970 00:00:00 UTC

Você pode escolher armazenar datas e horas em qualquer um desses formatos e converter livremente entre os formatos usando as funções integradas de data e hora.