O SQLite
typeof()
A função permite determinar o tipo de dados de uma expressão. Uma expressão pode ser um dos seguintes tipos de dados:
- nulo
- inteiro
- real
- texto
- bolha
Exemplo
Aqui está um exemplo para demonstrar.
SELECT typeof('Avocado');
Resultado:
text
Aqui estão mais alguns:
SELECT
typeof(12),
typeof(X'12'),
typeof(1.23),
typeof(NULL);
Resultado:
typeof(12) typeof(X'12') typeof(1.23) typeof(NULL) ---------- ------------- ------------ ------------ integer blob real null
Exemplo de banco de dados
SQLite usa um sistema de tipo dinâmico, em oposição à tipagem estática como o que é usado na maioria dos outros sistemas de gerenciamento de banco de dados relacional.
No SQLite, o tipo de dados de um valor está associado ao próprio valor, não ao seu contêiner. Isso significa que uma coluna pode conter dados de vários tipos. Por exemplo, uma linha pode ter texto nessa coluna, outra linha pode conter um número inteiro.
Aqui está um exemplo que demonstra esse conceito.
Veja a tabela a seguir chamada Produtos :
ProductId ProductName Price ---------- -------------- ---------- 1 Homer's Widget 10.0 2 Peter's Widget 20.75 3 Bob's Widget 15.0 4 777
Nesta tabela, os dados da última linha parecem ser diferentes dos outros.
Vamos ver o que o
typeof()
função retorna. SELECT
ProductId,
typeof(ProductName),
typeof(Price)
FROM Products;
Resultado:
ProductId typeof(ProductName) typeof(Price) ---------- ------------------- ------------- 1 text real 2 text real 3 text real 4 integer null
Como esperado, a última linha retorna diferentes tipos de dados para o ProductName e Preço colunas.
Expressões
O
typeof()
pode ser útil para ver que tipo de dados uma determinada expressão pode retornar. SELECT
typeof(1),
typeof(1 + 1.5),
typeof(1 + NULL);
Resultado:
typeof(1) typeof(1 + 1.5) typeof(1 + NULL) ---------- --------------- ---------------- integer real null