SQLite Tipi di dati: Int, Testo, Numerico, Reale, Blob
โก Riepilogo intelligente
SQLite I tipi di dati funzionano in modo diverso dagli altri database perchรฉ SQLite utilizza tipi dinamiciping, memorizzando qualsiasi valore in qualsiasi colonna. Le classi di archiviazione, l'affinitร di tipo e i nomi dei tipi dichiarati determinano insieme come ogni valore viene fisicamente salvato su disco.

Le sezioni seguenti spiegano come SQLite Il testo tratta i tipi di dati, partendo dalle cinque classi di memorizzazione, passando poi all'affinitร di tipo e alle relative regole di assegnazione, e infine presentando esempi pratici di memorizzazione di numeri interi, numeri reali, BLOB, valori booleani e date.
Tipi di dati in SQLite differiscono da quelli presenti in altri sistemi di gestione di database. SQLiteร possibile dichiarare i tipi di dati normalmente, ma รจ comunque possibile memorizzare qualsiasi valore in qualsiasi tipo di dati.
SQLite รจ senza tipo. Non ci sono tipi di dati fissi; puoi memorizzare qualsiasi tipo di dato desideri in qualsiasi colonna. Questo รจ chiamato tipo dinamicoping.
Nei tipi statici, come in altri sistemi di gestione di database, se si dichiara una colonna con il tipo di dati intero, รจ possibile inserire solo valori di tipo di dati intero. Tuttavia, nei tipi dinamici, come in SQLite, il tipo della colonna รจ determinato dal valore inserito, e quindi SQLite memorizza quel valore a seconda del suo tipo.
SQLite Classi di archiviazione
In SQLite esistono diversi metodi di memorizzazione a seconda del tipo di valore; questi diversi metodi di memorizzazione sono chiamati classi di memorizzazione in SQLite.
Di seguito sono riportate le classi di archiviazione disponibili in SQLite:
- NULL โ questa classe di archiviazione viene utilizzata per archiviare qualsiasi valore NULL.
- INTEGER โ qualsiasi valore numerico viene memorizzato come valore intero con segno (puรฒ contenere valori interi sia positivi che negativi). I valori INTEGER in SQLite vengono archiviati in 1, 2, 3, 4, 6 o 8 byte di spazio di archiviazione a seconda del valore del numero.
- VERO โ questa classe di memoria viene utilizzata per memorizzare i valori in virgola mobile, che occupano 8 byte di spazio di archiviazione.
- TESTO โ memorizza stringhe di testo. Supporta inoltre diverse codifiche come UTF-8, UTF-16BE o UTF-16LE.
- BLOB โ Utilizzato per memorizzare file di grandi dimensioni, come immagini o file di testo. Il valore viene memorizzato come un array di byte, identico al valore di input.
SQLite Tipo di affinitร
L'affinitร di tipo indica il tipo di dati consigliato per l'archiviazione in una colonna. Tuttavia, รจ comunque possibile archiviare qualsiasi tipo di dati a propria discrezione; questi tipi sono consigliati, non obbligatori.
Questi tipi sono stati introdotti in SQLite per massimizzare la compatibilitร tra SQLite e altro sistema di gestione del databases.
Qualsiasi colonna dichiarata in an SQLite Al database viene assegnata un'affinitร di tipo a seconda del tipo di dati dichiarato. Ecco l'elenco delle affinitร di tipo in SQLite:
- TESTO.
- NUMERICO.
- NUMERO INTERO.
- VERO.
- BLOB.
Ecco come SQLite determina l'affinitร di una colonna in base al suo tipo di dati dichiarato:
- L'affinitร INTEGER viene assegnata se il tipo dichiarato contiene il file stringa โINTโ.
- L'affinitร TEXT viene assegnata se la colonna contiene nel suo tipo di dati una delle seguenti stringhe: "TEXT", "CHAR" o "CLOB". Ad esempio, al tipo VARCHAR verrร assegnata l'affinitร TEXT.
- L'affinitร BLOB viene assegnata se per la colonna non รจ specificato alcun tipo o se il tipo di dati รจ un BLOB.
- L'affinitร REAL viene assegnata se il tipo contiene una delle seguenti stringhe: "DOUB", "REAL" o "FLOAT".
- L'affinitร NUMERIC viene assegnata per qualsiasi altro tipo di dati.
Di seguito รจ riportata anche una tabella che mostra alcuni esempi della mappa.ping fra SQLite tipi di dati e le loro affinitร determinate da queste regole:
Esempi di memorizzazione dei tipi di dati in SQLite
Memorizzazione dei numeri con SQLite INTEGER
Se una colonna ha un tipo di dati che contiene la parola "INT", le verrร assegnata l'affinitร di tipo INTEGER e verrร memorizzata in una classe di archiviazione INTEGER.
A tutti i seguenti tipi di dati viene assegnata un'affinitร di tipo INTEGER:
- INT, INTERO, BIGINT.
- INT2, INT4, INT8.
- INTELLIGENZA MINUSCOLA, INTELLIGENZA PICCOLA, INTELLIGENZA MEDIA.
Affinitร di tipo INTEGER in SQLite puรฒ contenere qualsiasi numero intero assegnato (positivo o negativo) da 1 byte fino a un massimo di 8 byte.
Memorizzazione dei numeri con SQLite VERO
I numeri REALI sono numeri con doppia precisione in virgola mobile. SQLite memorizza i numeri reali come un array di 8 byte. Ecco l'elenco dei tipi di dati in SQLite che puoi usare per memorizzare numeri REALI:
- VERO.
- RADDOPPIARE.
- DOPPIA PRECISIONE.
- GALLEGGIANTE.
Memorizzazione di dati di grandi dimensioni con SQLite BLOB
C'รจ solo un modo per archiviare file di grandi dimensioni in un SQLite database, e questo utilizza il tipo di dati BLOB. Questo tipo di dati viene utilizzato per memorizzare file di grandi dimensioni come immagini o file di qualsiasi tipo. Il file viene convertito in un array di byte e quindi memorizzato con le stesse dimensioni del file di input.
Memorizzazione SQLite booleani
SQLite Non dispone di una classe di memorizzazione BOOLEAN separata. Al contrario, i valori BOOLEAN vengono memorizzati come INTEGRI, dove 0 rappresenta falso e 1 rappresenta vero.
Memorizzazione SQLite date e orari
ร possibile dichiarare date o date e orari in SQLite utilizzando uno dei seguenti tipi di dati:
- DATA
- APPUNTAMENTO
- TIMESTAMP
- ORARIO
Nota che non esiste una classe di archiviazione DATE o DATETIME separata in SQLiteInvece, tutti i valori dichiarati con uno dei tipi di dati precedenti vengono memorizzati in una classe di archiviazione a seconda del formato della data del valore inserito, come segue:
- TESTO โ se si inserisce il valore della data nel formato di una stringa ISO8601 (โYYYY-MM-DD HH:MM:SS.SSSโ).
- VERO โ se inserisci il valore della data come numero di giorni giuliani, il numero di giorni trascorsi dal mezzogiorno di Greenwich del 24 novembre 4714 a.C. Il valore della data viene quindi memorizzato come REALE.
- INTEGER - come Unix Ora, il numero di secondi trascorsi dal 1970-01-01 alle 00:00:00 UTC.

