SQLite: tipo di dati

Il tipo di dati SQLite è un attributo che specifica il tipo di dati di qualsiasi oggetto. Ogni colonna, variabile ed espressione ha un tipo di dati correlato in SQLite.

Utilizzeresti questi tipi di dati durante la creazione delle tabelle. SQLite utilizza un sistema di tipi dinamico più generale. In SQLite, il tipo di dati di un valore è associato al valore stesso, non al suo contenitore.

Classi di archiviazione SQLite

Ogni valore memorizzato in un database SQLite ha una delle seguenti classi di archiviazione:

Sr.No. Classe di archiviazione e descrizione
1

NULL

Il valore è un valore NULL.

2

INTEGER

Il valore è un numero intero con segno, memorizzato in 1, 2, 3, 4, 6 o 8 byte a seconda della grandezza del valore.

3

REAL

Il valore è un valore in virgola mobile, memorizzato come numero in virgola mobile IEEE a 8 byte.

4

TEXT

Il valore è una stringa di testo, memorizzata utilizzando la codifica del database (UTF-8, UTF-16BE o UTF-16LE)

5

BLOB

Il valore è un blob di dati, archiviato esattamente come è stato immesso.

La classe di archiviazione SQLite è leggermente più generale di un tipo di dati. La classe di archiviazione INTEGER, ad esempio, include 6 diversi tipi di dati interi di diverse lunghezze.

Tipo di affinità SQLite

SQLite supporta il concetto di type affinitysu colonne. Qualsiasi colonna può ancora memorizzare qualsiasi tipo di dati, ma la classe di archiviazione preferita per una colonna è chiamata proprioaffinity. A ciascuna colonna della tabella in un database SQLite3 viene assegnata una delle seguenti affinità di tipo:

Sr.No. Affinità e descrizione
1

TEXT

Questa colonna memorizza tutti i dati utilizzando le classi di archiviazione NULL, TEXT o BLOB.

2

NUMERIC

Questa colonna può contenere valori che utilizzano tutte e cinque le classi di archiviazione.

3

INTEGER

Ha lo stesso comportamento di una colonna con affinità NUMERICA, con un'eccezione in un'espressione CAST.

4

REAL

Si comporta come una colonna con affinità NUMERICA tranne per il fatto che forza i valori interi nella rappresentazione in virgola mobile.

5

NONE

Una colonna con affinità NONE non preferisce una classe di archiviazione rispetto a un'altra e non viene effettuato alcun tentativo di forzare i dati da una classe di archiviazione a un'altra.

Affinità SQLite e nomi dei tipi

La tabella seguente elenca vari nomi di tipi di dati che possono essere utilizzati durante la creazione di tabelle SQLite3 con l'affinità applicata corrispondente.

Tipo di dati Affinità
  • INT
  • INTEGER
  • TINYINT
  • SMALLINT
  • MEDIUMINT
  • BIGINT
  • UNSIGNED BIG INT
  • INT2
  • INT8
NUMERO INTERO
  • CHARACTER(20)
  • VARCHAR(255)
  • CARATTERE VARIABILE (255)
  • NCHAR(55)
  • PERSONAGGIO NATIVO (70)
  • NVARCHAR(100)
  • TEXT
  • CLOB
TESTO
  • BLOB
  • nessun tipo di dati specificato
NESSUNA
  • REAL
  • DOUBLE
  • DOPPIA PRECISIONE
  • FLOAT
VERO
  • NUMERIC
  • DECIMAL(10,5)
  • BOOLEAN
  • DATE
  • DATETIME
NUMERICO

Tipo di dati booleano

SQLite non dispone di una classe di archiviazione booleana separata. I valori booleani vengono invece archiviati come numeri interi 0 (falso) e 1 (vero).

Tipo di dati data e ora

SQLite non ha una classe di archiviazione separata per la memorizzazione di date e / o ore, ma SQLite è in grado di memorizzare date e ore come valori TEXT, REAL o INTEGER.

Sr.No. Classe di archiviazione e formato della data
1

TEXT

Una data in un formato come "AAAA-MM-GG HH: MM: SS.SSS"

2

REAL

Il numero di giorni trascorsi da mezzogiorno a Greenwich il 24 novembre 4714 a.C.

3

INTEGER

Il numero di secondi trascorsi dall'01-01 1970 alle 00:00:00 UTC

È possibile scegliere di memorizzare date e ore in uno qualsiasi di questi formati e convertire liberamente tra i formati utilizzando le funzioni di data e ora integrate.