Tipi di ENUM in SQLite

May 9

Tipi di ENUM in SQLite


Il gestore di database SQLite racchiude una vasta serie di funzionalità in una piccola libreria software - meno di 350KB. Raggiunge questa efficienza anche attraverso compromessi nei suoi tipi di dati; per esempio, sostiene integer, caratteri e campi BLOB ma non ENUM. È possibile aggirare la limitazione ENUM e raggiungere gran parte la stessa funzionalità sfruttando le altre caratteristiche di SQLite e attraverso un'attenta programmazione delle applicazioni.

ENUM Tipo di dati

Quando si crea un enumerato o ENUM, tipo di dati, si definisce un elenco di valori di dati approvati. Ad esempio, una tabella di dati di rating dei film comprende un certo numero di stelle, da zero a quattro - nessun film ottiene un dieci stelle, non importa quanto è buono, e nessuno riceve una valutazione negativa, non importa quanto è fatto male . È possibile utilizzare un ENUM per il campo stelle del tavolo, dandogli i valori dei numeri interi da zero a quattro. Alcuni linguaggi di programmazione, tra cui Java e editori SQL come MySQL e Oracle includono il tipo di dati ENUM, anche se non è una parte dello standard SQL 92.

Vincoli SQL di campo

Anche se SQLite non offre un tipo di dati ENUM, è possibile aggiungere una proprietà chiamata un vincolo di controllo per un campo, in tal modo costringendolo ad accettare i valori da un elenco ristretto. Per esempio, diciamo si imposta un campo di stato e desidera limitare i suoi valori al set di due caratteri abbreviazioni di stato degli Stati Uniti. Quando si crea la tabella in SQLite, è possibile impostare il campo di stato come un tipo CHAR e quindi aggiungere un vincolo di controllo che elenca le abbreviazioni di stato 50. SQLite supporta vincoli di controllo a partire dalla versione 3.3.0; prima di quella versione, SQLite analizzato i vincoli, ma non li rispettare. Se si aggiunge un vincolo a una tabella che contiene già i dati, SQLite non controlla i valori esistenti. Se un utente tenta di aggiungere i valori alla tabella che non sono inclusi nei vincoli, SQLite genera una condizione di errore, bloccando la transazione.

istruzioni SQL

Come un test aggiunto per garantire che le tabelle di dati ottenere i giusti valori, creare istruzioni SQL Select che cercano questi valori. Ad esempio, la seguente istruzione SELECT cerca i record di rating film che hanno un numero errato di stelle:

SELECT COUNT (*) FROM movie_ratings DOVE NON stelle a (0,1,2,3,4)

Esso restituisce un conteggio diverso da zero se trova record con numero di stelle che si trovano al di fuori della gamma di zero a quattro. Utilizzare i test come questo per verificare che le tabelle hanno valori corretti. Se si trova record con dati non corretti, esaminare i vincoli di controllo per i valori mancanti o extra.

programma Logic

Oltre a istruzioni SQL, la logica in programmi applicativi può anche controllare i valori di dati che vanno in database SQLite. Per esempio, come gli utenti digitano informazioni in una maschera di inserimento dati, la logica dello schermo controlla ogni valore e visualizza un messaggio che richiede all'utente di correggere i dati non corretti.