sql >> Databasteknik >  >> RDS >> SQLite

Hur Typeof() fungerar i SQLite

SQLite typeof() funktionen låter dig bestämma datatypen för ett uttryck.

Ett uttryck kan vara en av följande datatyper:

  • null
  • heltal
  • riktigt
  • text
  • blobb

Exempel

Här är ett exempel att visa.

SELECT typeof('Avocado');

Resultat:

text

Här är några fler:

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

Resultat:

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

Databasexempel

SQLite använder ett dynamiskt typsystem, i motsats till statisk typning som det som används i de flesta andra relationsdatabashanteringssystem.

I SQLite är datatypen för ett värde associerad med själva värdet, inte med dess behållare. Detta innebär att en kolumn kan innehålla data av olika typer. Till exempel kan en rad ha text i den kolumnen, en annan rad kan innehålla ett heltal.

Här är ett exempel som visar detta koncept.

Ta följande tabell som heter Produkter :

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

I den här tabellen verkar uppgifterna i den sista raden vara annorlunda än de andra.

Låt oss se vad typeof() är funktion returnerar.

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

Resultat:

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

Som förväntat returnerar den sista raden olika datatyper för Produktnamn och Pris kolumner.

Uttryck

typeof() funktion kan vara praktisk för att se vilken datatyp ett givet uttryck kan returnera.

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

Resultat:

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

  1. Hur man distribuerar MySQL på Ubuntu och helt hanterat

  2. Hur man säkrar Galera Cluster - 8 tips

  3. Hanterar datum och tid istället för datetime

  4. Hur man skapar ett säkert inloggningsskript i PHP och MySQL