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

Hvordan Typeof() virker i SQLite

SQLite typeof() funktionen giver dig mulighed for at bestemme datatypen for et udtryk.

Et udtryk kan være en af ​​følgende datatyper:

  • nul
  • heltal
  • rigtig
  • tekst
  • blob

Eksempel

Her er et eksempel til at demonstrere.

SELECT typeof('Avocado');

Resultat:

text

Her er nogle flere:

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        

Databaseeksempel

SQLite bruger et dynamisk typesystem, i modsætning til statisk indtastning som det, der bruges i de fleste andre relationelle databasestyringssystemer.

I SQLite er datatypen for en værdi forbundet med selve værdien, ikke med dens container. Det betyder, at en kolonne kan indeholde data af forskellige typer. For eksempel kan en række have tekst i den kolonne, en anden række kan indeholde et heltal.

Her er et eksempel, der demonstrerer dette koncept.

Tag følgende tabel kaldet 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 denne tabel ser dataene i den sidste række ud til at være anderledes end de andre.

Lad os se hvad typeof() er funktion returnerer.

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 forventet returnerer den sidste række forskellige datatyper for ProductName og Pris kolonner.

Udtryk

typeof() funktion kan være praktisk til at se, hvilken datatype et givet udtryk kan returnere.

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

Resultat:

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

  1. Opgradering af en varchar-kolonne til enum type i postgresql

  2. MariaDB ROUND() vs TRUNCATE()

  3. Forskellen mellem N'String' vs U'String' bogstaver i Oracle

  4. Hvordan kontrollerer man den endelige SQL-parametriserede forespørgsel i PHP med PDO?