Le gestionnaire de base de données SQLite emballe une fonctionnalité extensive mis dans une petite bibliothèque de logiciels - moins de 350KB . Il réalise cette efficacité en partie grâce à des compromis dans ses types de données , par exemple , il supporte entier , le caractère et les champs BLOB , mais pas ENUM. Vous pouvez contourner la limitation ENUM et d'atteindre une grande partie de la même fonctionnalité en exploitant d'autres caractéristiques de SQLite et à travers la programmation d'applications prudent. Type de données ENUM
Lorsque vous créez un motif énuméré ou ENUM , type de données , vous définissez une liste de valeurs de données approuvées. Par exemple, un tableau de classement des films de données comprend un certain nombre d' étoiles , de zéro à quatre - pas de film obtient une note de dix -star , peu importe comment il est bon, et aucun reçoit une note négative , peu importe à quel point il est . Vous pouvez utiliser un ENUM pour le champ d'étoiles de la table , en lui donnant les valeurs des nombres entiers de zéro à quatre . Certains langages de programmation , y compris Java et les gestionnaires de bases de données SQL telles que MySQL et Oracle notamment le type de données ENUM , même si elle ne fait pas partie de la norme SQL 92 .
SQL Champ Contraintes
< br >
bien SQLite n'offre pas un type de données ENUM , vous pouvez ajouter une propriété appelée une contrainte de vérification sur un champ, ce qui oblige à accepter des valeurs à partir d'une liste restreinte . Par exemple , disons que vous configurez un champ d'état et que vous voulez restreindre ses valeurs à l'ensemble des deux caractères abréviations d'état des États-Unis . Lorsque vous créez la table dans SQLite, vous configurez le domaine de l'Etat comme un type CHAR , puis ajoutez une contrainte de vérification qui énumère les 50 abréviations d'état . SQLite prend en charge les contraintes de partir de la version 3.3.0 ; avant cette version , SQLite analysé contraintes, mais n'a pas fait respecter eux. Si vous ajoutez une contrainte à une table qui contient déjà des données , SQLite ne vérifie pas les valeurs existantes . Si un utilisateur tente d'ajouter des valeurs à la table qui ne sont pas inclus dans les contraintes , SQLite génère une condition d'erreur , le blocage de la transaction.
Instructions SQL
Comme un test supplémentaire pour s'assurer que les tableaux de données obtiennent les bonnes valeurs , de créer des instructions SQL SELECT qui recherchent ces valeurs. Par exemple , l'instruction SELECT suivante recherche les dossiers de notation des films qui ont un nombre incorrect de Etoiles:
SELECT COUNT ( *) FROM movie_ratings où les étoiles NOT IN ( 0,1,2,3,4 ) < br >
il retourne un nombre différent de zéro si elle trouve les enregistrements ayant nombre d'étoiles situées en dehors de la fourchette de zéro à quatre. Utiliser des tests comme celui-ci pour vérifier que les tables ont des valeurs correctes. Si vous trouvez dossiers avec des données incorrectes, d'examiner les contraintes de vérification pour les valeurs manquantes ou supplémentaires .
Logique du programme
En plus des instructions SQL , la logique dans les programmes d' application peut également vérifier les valeurs des données entrant dans les bases de données SQLite . Par exemple , les utilisateurs des informations de type dans un masque de saisie de données, la logique de l'écran teste chaque valeur et affiche un message invitant l'utilisateur à corriger des données erronées .