Os tipos de dados no SQLite são diferentes em comparação com outro sistema de gerenciamento de banco de dados. No SQLite, você pode declarar tipos de dados normalmente, mas ainda pode armazenar qualquer valor em qualquer tipo de dados.
Neste tutorial, você aprenderá-
- Classes de Armazenamento
- Tipo de afinidade
- Exemplos de armazenamento de tipos de dados em SQLite
SQLite é menos digitado. 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, você só pode inserir valores de tipo de dados inteiro. Porém, em tipos dinâmicos como no SQLite, o tipo da coluna é determinado pelo valor inserido. E então o SQLite armazena esse valor dependendo de seu tipo.
Classes de armazenamento SQLite
No 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 no SQLite.
A seguir estão as classes de armazenamento disponíveis no SQLite:
- NULL - esta classe de armazenamento é usada para armazenar qualquer valor NULL.
- INTEIRO - qualquer valor numérico é armazenado como um valor inteiro com sinal (pode conter valores inteiros positivos e negativos). Os valores INTEGER no SQLite são armazenados em 1, 2, 3, 4, 6 ou 8 bytes de armazenamento, dependendo do valor do número.
- REAL - esta classe de armazenamento é usada para armazenar os valores de ponto flutuante, e eles são armazenados em 8 bytes de armazenamento.
- TEXT - armazena strings de texto. Ele também suporta codificação diferente, 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.
Tipo de afinidade SQLite
A afinidade de tipo é o tipo recomendado de dados armazenados em uma coluna. No entanto, você ainda pode armazenar qualquer tipo de dados como desejar, esses tipos são recomendados e não obrigatórios.
Esses tipos foram introduzidos no SQLite para maximizar a compatibilidade entre o SQLite e outro sistema de gerenciamento de banco de dados.
Qualquer coluna declarada em um banco de dados SQLite é atribuída a uma afinidade de tipo, dependendo do tipo de dados declarado. Aqui está o aumento das afinidades de tipo no SQLite:
- TEXTO.
- NUMÉRICO.
- INTEGER.
- REAL.
- BLOB.
Veja como o SQLite determina a afinidade da coluna a partir de seu tipo de dados declarado:
- A afinidade INTEGER será atribuída se o tipo declarado contiver a string " INT ".
- A afinidade TEXT será atribuída se a coluna contiver em seu tipo de dados uma das seguintes cadeias de caracteres " TEXT ", " CHAR ou" CLOB ". Por exemplo, o tipo VARCHAR será atribuído à afinidade TEXT.
- A afinidade BLOB será atribuída se a coluna não tiver nenhum tipo especificado ou o tipo de dados for um BLOB.
- A afinidade REAL é atribuída se o tipo contiver uma das seguintes cadeias de caracteres " DOUB ", " REAL ou" FLOAT ".
- A afinidade NUMERIC é atribuída a qualquer outro tipo de dados.
Há também uma tabela na mesma página mostrando alguns exemplos de mapeamento entre os tipos de dados SQLite e suas afinidades determinadas por estas regras:
Exemplos de armazenamento de tipos de dados em SQLite:
Armazenando número com inteiro SQLite:
Qualquer coluna de tipo de dados contém a palavra "INT", será atribuída uma afinidade de 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, INTEGER, BIGINT.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUM INT.
A afinidade de tipo INTEGER no SQLite pode conter qualquer número inteiro atribuído (positivo ou negativo) de 1 byte a no máximo 8 bytes.
Armazenando números com SQLite REAL:
Números REAIS são os números com precisão de pontos flutuantes duplos. SQLite armazenou números reais como uma matriz de 8 bytes. Aqui está a lista de tipos de dados no SQLite que você pode usar para armazenar números REAIS:
- REAL.
- EM DOBRO.
- DUPLA PRECISÃO.
- FLUTUADOR.
Armazenamento de grandes dados com SQLite BLOB:
Só existe uma maneira de armazenar arquivos grandes em um banco de dados SQLite, e é 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.
Armazenando Booleanos SQLite:
SQLite não tem 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).
Armazenamento de datas e horas SQLite:
Você pode declarar a data ou hora da data no SQLite usando um dos seguintes tipos de dados:
- ENCONTRO
- DATA HORA
- TIMESTAMP
- TEMPO
Observe que não há classe de armazenamento DATE ou DATETIME separada no 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 da seguinte forma:
- TEXTO - se você inseriu o valor da data no formato da string ISO8601 ("AAAA-MM-DD HH: MM: SS.SSS").
- REAL - se você inseriu 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 como Unix Time, o número de segundos desde 1970-01-01 00:00:00 UTC.
Resumo:
SQLite oferece suporte a 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, ao contrário de outros sistemas de gerenciamento de banco de dados.