SQLite
 sql >> Database >  >> RDS >> SQLite

Come funziona Typeof() in SQLite

Il typeof() di SQLite La funzione consente di determinare il tipo di dati di un'espressione.

Un'espressione può essere uno dei seguenti tipi di dati:

  • nulla
  • intero
  • reale
  • testo
  • blob

Esempio

Ecco un esempio da dimostrare.

SELECT typeof('Avocado');

Risultato:

text

Eccone altri:

SELECT 
  typeof(12),
  typeof(X'12'),
  typeof(1.23),
  typeof(NULL);

Risultato:

typeof(12)  typeof(X'12')  typeof(1.23)  typeof(NULL)
----------  -------------  ------------  ------------
integer     blob           real          null        

Esempio di database

SQLite utilizza un sistema di tipi dinamici, al contrario della tipizzazione statica come quella utilizzata nella maggior parte degli altri sistemi di gestione di database relazionali.

In SQLite, il tipo di dati di un valore è associato al valore stesso, non al suo contenitore. Ciò significa che una colonna può contenere dati di vario tipo. Ad esempio, una riga potrebbe contenere del testo in quella colonna, un'altra riga potrebbe contenere un numero intero.

Ecco un esempio che dimostra questo concetto.

Prendi la seguente tabella chiamata Prodotti :

ProductId   ProductName     Price     
----------  --------------  ----------
1           Homer's Widget  10.0      
2           Peter's Widget  20.75     
3           Bob's Widget    15.0      
4           777                       

In questa tabella, i dati nell'ultima riga sembrano essere diversi dagli altri.

Vediamo cosa è il typeof() la funzione ritorna.

SELECT 
  ProductId,
  typeof(ProductName),
  typeof(Price)
FROM Products;

Risultato:

ProductId   typeof(ProductName)  typeof(Price)
----------  -------------------  -------------
1           text                 real         
2           text                 real         
3           text                 real         
4           integer              null         

Come previsto, l'ultima riga restituisce tipi di dati diversi per NomeProdotto e Prezzo colonne.

Espressioni

Il typeof() può essere utile per vedere quale tipo di dati potrebbe restituire una determinata espressione.

SELECT 
 typeof(1),
 typeof(1 + 1.5),
 typeof(1 + NULL);

Risultato:

typeof(1)   typeof(1 + 1.5)  typeof(1 + NULL)
----------  ---------------  ----------------
integer     real             null