Alternativa C - DOUBLE \rightarrow REAL
Explicação Didática
O SQLite possui um sistema de tipos dinâmico e utiliza o conceito de afinidade para determinar como os dados são armazenados internamente. Ao contrário de outros bancos de dados que possuem tipos rígidos, o SQLite classifica os dados em 5 classes fundamentais: NULL, INTEGER, REAL, TEXT e BLOB.
Como funciona a Afinidade no SQLite?
A afinidade é determinada pelo nome do tipo declarado na criação da tabela. O SQLite analisa a primeira palavra-chave do nome do tipo para decidir a classe:
| Palavra-chave no Tipo | Afinidade (Classe Interna) | Exemplo de Declaração |
|---|
| Contém INT | INTEGER | BIGINT, SMALLINT, TINYINT |
| Contém CHAR, CLOB, TEXT | TEXT | VARCHAR, NCHAR, CHARACTER |
| Contém REAL, FLOA, DOUB | REAL | DOUBLE, FLOAT, REAL |
| Contém NUMERIC, DECIMAL | NUMERIC (comportamento misto) | DECIMAL, NUMERIC |
| Nenhum dos acima | NONE (armazena como BLOB) | BOOLEAN, DATE |
Análise das Alternativas
Vamos verificar cada opção com base nas regras acima:
- (A) BIGINT \rightarrow NUMERIC: Incorreto. O termo BIGINT contém "INT", portanto sua afinidade é INTEGER, não NUMERIC.
- (B) CHARACTER \rightarrow BLOB: Incorreto. O termo CHARACTER contém "CHAR", logo sua afinidade é TEXT.
- (C) DOUBLE \rightarrow REAL: Correto. O termo DOUBLE contém "DOUB", o que define a afinidade como REAL (número de ponto flutuante).
- (D) BOOLEAN \rightarrow INTEGER: Incorreto. BOOLEAN não contém nenhuma palavra-chave padrão de afinidade, resultando em afinidade NONE. Embora valores booleanos sejam frequentemente armazenados como inteiros (0 ou 1), a declaração por si só não gera essa afinidade automaticamente.
- (E) DATE \rightarrow DATETIME: Incorreto. DATE não corresponde a nenhum grupo de afinidade padrão, sendo tratado como NONE. Além disso,
DATETIME não é uma classe de armazenamento nativa do SQLite; datas são geralmente armazenadas como TEXT, REAL ou INTEGER.
Portanto, a única correspondência correta entre o tipo declarado e a classe de maior afinidade é a da alternativa C.