SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como o Typeof() funciona no SQLite


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