SQLite Tipos de dados com exemplo: Int, Texto, Numérico, Real, Blob
Tipos de dados em SQLite são diferentes em comparação com outro sistema de gerenciamento de banco de dados. Em SQLite, você pode declarar tipos de dados normalmente, mas ainda pode armazenar qualquer valor em qualquer tipo de dados.
SQLite é digitado menos. Não existem tipos de dados, você pode armazenar qualquer tipo de dados que desejar em qualquer coluna. Isso é chamado de tipos dinâmicos.
Em tipos estáticos, como em outros sistemas de gerenciamento de banco de dados, se você declarou uma coluna com um tipo de dados inteiro, só poderá inserir valores do tipo de dados inteiro. No entanto, em tipos dinâmicos como em SQLite, o tipo da coluna é determinado pelo valor inserido. E então SQLite armazena esse valor dependendo do seu tipo.
SQLite Classes de Armazenamento
In SQLite existem diferentes métodos de armazenamento dependendo do tipo de valor, esses diferentes métodos de armazenamento são chamados de classes de armazenamento em SQLite.
A seguir estão as classes de armazenamento disponíveis em SQLite:
- NULL – esta classe de armazenamento é usada para armazenar qualquer valor NULL.
- INTEGER – qualquer valor numérico é armazenado como um valor inteiro com sinal (pode conter valores inteiros positivos e negativos). Os valores INTEGER em SQLite são armazenados em 1, 2, 3, 4, 6 ou 8 bytes de armazenamento, dependendo do valor do número.
- REAIS – esta classe de armazenamento é usada para armazenar os valores de ponto flutuante e eles são armazenados em um armazenamento de 8 bytes.
- TEXTO – armazena strings de texto. Ele também suporta codificações diferentes, como UTF-8, UTF-16 BE ou UTF-26LE.
- BLOB – usado para armazenar arquivos grandes, como imagens ou arquivos de texto. O valor é armazenado como uma matriz de bytes igual ao valor de entrada.
SQLite Tipo de afinidade
Afinidade de tipo é o tipo recomendado de dados armazenados em uma coluna. No entanto, você ainda pode armazenar qualquer tipo de dados que desejar; esses tipos são recomendados e não obrigatórios.
Esses tipos foram introduzidos em SQLite maximizar a compatibilidade entre SQLite e outro Sistema de gerenciamento de banco de dados.
Qualquer coluna declarada em um SQLite ao banco de dados é atribuída uma afinidade de tipo dependendo do tipo de dados declarado. Aqui o aumento das afinidades de tipo em SQLite:
- TEXTO.
- NUMÉRICO.
- INTEIRO.
- REAL.
- BLOBO.
Veja como SQLite determina a afinidade da coluna a partir do seu tipo de dados declarado:
- A afinidade INTEGER será atribuída se o tipo declarado contiver o corda "INT".
- A afinidade TEXT é atribuída se a coluna contiver em seu tipo de dados uma das seguintes strings “TEXTO","CARACTERESou “CLOB“. Por exemplo, ao tipo VARCHAR será atribuída a afinidade TEXT.
- A afinidade BLOB será atribuída se a coluna não tiver nenhum tipo especificado ou se o tipo de dados for um BLOB.
- A afinidade REAL é atribuída se o tipo contiver uma das seguintes strings “DÚVIDA","REAISou “FLOAT".
- A afinidade NUMERIC é atribuída para qualquer outro tipo de dados.
Há também uma tabela na mesma página mostrando alguns exemplos de mapeamento entre SQLite tipos de dados e suas afinidades determinadas por estas regras:
Exemplos de armazenamento de tipos de dados em SQLite
Armazenando número com SQLite número inteiro
Qualquer coluna do tipo de dados contém a palavra “INT”, será atribuída uma afinidade do tipo INTEGER. Ele será armazenado em uma classe de armazenamento INTEGER.
Todos os seguintes tipos de dados são atribuídos como uma afinidade de tipo INTEGER:
- INT, INTEIRO, BIGINT.
- INT2, INT4, INT8.
- TINYINT, PEQUENO, INT MÉDIO.
Afinidade do tipo INTEGER em SQLite pode conter qualquer número inteiro atribuído (positivo ou negativo) de 1 byte até no máximo 8 bytes.
Armazenando números com SQLite REAIS
Números REAIS são números com precisão de ponto flutuante duplo. SQLite armazenou números reais como uma matriz de 8 bytes. Aqui está a lista de tipos de dados em SQLite que você pode usar para armazenar números REAIS:
- REAL.
- DOBRO.
- DUPLA PRECISÃO.
- FLUTUADOR.
Armazenando grandes dados com SQLite BLOB
Só existe uma maneira de armazenar arquivos grandes em um SQLite banco de dados e está usando o tipo de dados BLOB. Este tipo de dados é usado para armazenar arquivos grandes como imagens, arquivos (de qualquer tipo), etc. O arquivo é convertido em uma matriz de bytes e então armazenado no mesmo tamanho do arquivo de entrada.
Armazenar SQLite Booleanos
SQLite não possui uma classe de armazenamento BOOLEAN separada. No entanto, os valores BOOLEAN são armazenados como INTEIROS com valores 0 (como falso) ou 1 (como verdadeiro).
Armazenar SQLite datas e horas
Você pode declarar data ou data e hora em SQLite usando um dos seguintes tipos de dados:
- INFORMAÇÃO
- DATETIME
- TIMESTAMP
- TIME
Observe que não há classe de armazenamento DATE ou DATETIME separada em SQLite. Em vez disso, quaisquer valores declarados com um dos tipos de dados anteriores são armazenados em uma classe de armazenamento dependendo do formato de data do valor inserido, conforme a seguir:
- TEXTO – se você inseriu o valor da data no formato da string ISO8601 (“AAAA-MM-DD HH:MM:SS.SSS”).
- REAIS – se você inserisse o valor da data nos números dos dias julianos, o número de dias desde o meio-dia em Greenwich em 24 de novembro de 4714 aC, então o valor da data seria armazenado como REAL.
- INTEGER as Unix Hora, o número de segundos desde 1970/01/01 00:00:00 UTC.
Resumo
SQLite suporta uma ampla variedade de tipos de dados. Mas, ao mesmo tempo, é muito flexível quanto aos tipos de dados. Você pode colocar qualquer tipo de valor em qualquer tipo de dados. SQLite também introduziu alguns novos conceitos em tipos de dados, como afinidade de tipo e classes de armazenamento, diferentemente de outros sistemas de gerenciamento de banco de dados.