Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2023
- Código
- ce161054
- Banca
- CESPE / CEBRASPE
- Órgão
- SERPRO
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista - Especialização: Tecnologia
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: Certo. No SQLite 3, é perfeitamente possível criar uma tabela com colunas que não possuam um tipo de dado específico atribuído. O SQLite adota tipagem dinâmica (manifest typing) e é flexível quanto a tipos: mesmo que uma coluna seja declarada sem um tipo (ou com tipo ausente), qualquer valor pode ser armazenado nela. Essa característica é intencional e faz parte do design do SQLite, que é descrito como "indulgente" em relação a tipos de dados.
A banca testa o conhecimento sobre o comportamento do SQLite em contraste com bancos relacionais tradicionais (como MySQL ou PostgreSQL), que exigem tipos fixos. No SQLite, é possível criar uma tabela simplesmente com CREATE TABLE t (X, Y, Z); e armazenar números, textos, datas etc. em qualquer uma das colunas, sem restrições.
Portanto, a afirmação está correta.
A alternativa reproduz exatamente a flexibilidade do SQLite: é possível criar colunas sem tipo específico e armazenar qualquer dado nelas. O SQLite permite inclusive que, mesmo quando um tipo é declarado, valores de outros tipos sejam armazenados (com exceção de algumas regras de afinidade).
Afirma que a afirmação é errada, o que não procede. O SQLite, de fato, permite a criação de colunas sem tipo e aceita qualquer tipo de dado. Não há obrigatoriedade de declaração de tipos.
Em bancos relacionais tradicionais, a declaração de tipo é obrigatória e restritiva. O SQLite destoa por sua tipagem dinâmica. Questões do CESPE/CEBRASPE costumam explorar essa diferença. Lembre-se: no SQLite, "tudo vale" – a não ser que a coluna seja declarada com INTEGER PRIMARY KEY (que exige inteiro).
Link permanente: /questoes/ce161054