SQLite Contraintes
Les contraintes sont des règles appliquées aux colonnes de données d'une table. Elles servent à limiter les types de données pouvant être insérés dans une table, garantissant ainsi l'exactitude et la fiabilité des données dans la base de données.
Les contraintes peuvent être au niveau colonne ou au niveau table. Les contraintes au niveau colonne s'appliquent uniquement à une colonne, tandis que les contraintes au niveau table s'appliquent à l'ensemble de la table.
Voici les contraintes couramment utilisées dans SQLite.
Contrainte NOT NULL: Garantit qu'une colonne ne peut pas contenir de valeurs NULL.
Contrainte DEFAULT: Fournit une valeur par défaut pour une colonne lorsqu'aucune valeur n'est spécifiée.
Contrainte UNIQUE: Garantit que toutes les valeurs d'une colonne sont différentes.
Contrainte PRIMARY KEY: Identifie de manière unique chaque ligne/enregistrement dans une table de base de données.
Contrainte CHECK: La contrainte CHECK garantit que toutes les valeurs d'une colonne satisfont certaines conditions.
Contrainte NOT NULL
Par défaut, une colonne peut contenir des valeurs NULL. Si vous ne voulez pas qu'une colonne ait des valeurs NULL, vous devez définir cette contrainte sur cette colonne, en spécifiant que les valeurs NULL ne sont pas autorisées dans cette colonne.
NULL est différent de l'absence de données ; il représente des données inconnues.
Exemple
Par exemple, l'instruction SQLite suivante crée une nouvelle table COMPANY avec cinq colonnes, où les trois colonnes ID, NAME et AGE sont spécifiées pour ne pas accepter de valeurs NULL :
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
Contrainte DEFAULT
La contrainte DEFAULT fournit une valeur par défaut pour une colonne lorsque l'instruction INSERT INTO ne fournit pas de valeur spécifique.
Exemple
Par exemple, l'instruction SQLite suivante crée une nouvelle table COMPANY avec cinq colonnes. Ici, la colonne SALARY est définie par défaut sur 5000.00. Ainsi, lorsque l'instruction INSERT INTO ne fournit pas de valeur pour cette colonne, elle sera définie sur 5000.00.
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL DEFAULT 50000.00 );
Contrainte UNIQUE
La contrainte UNIQUE empêche deux enregistrements d'avoir la même valeur dans une colonne particulière. Dans la table COMPANY, par exemple, vous pourriez vouloir empêcher deux personnes ou plus d'avoir le même âge.
Exemple
Par exemple, l'instruction SQLite suivante crée une nouvelle table COMPANY avec cinq colonnes. Ici, la colonne AGE est définie sur UNIQUE, donc il ne peut pas y avoir deux enregistrements avec le même âge :
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL UNIQUE, ADDRESS CHAR(50), SALARY REAL DEFAULT 50000.00 );
Contrainte PRIMARY KEY
La contrainte PRIMARY KEY identifie de manière unique chaque enregistrement dans une table de base de données. Il peut y avoir plusieurs colonnes UNIQUE dans une table, mais une seule clé primaire. Les clés primaires sont importantes lors de la conception de tables de base de données. Une clé primaire est un ID unique.
Nous utilisons des clés primaires pour référencer des lignes dans une table. Les relations entre les tables peuvent être créées en définissant la clé primaire comme clé étrangère dans d'autres tables. En raison d'une « erreur de codage de longue date », dans SQLite, les clés primaires peuvent être NULL, ce qui diffère des autres bases de données.
Une clé primaire est un champ dans une table qui identifie de manière unique chaque ligne/enregistrement dans une table de base de données. Les clés primaires doivent contenir des valeurs uniques. Une colonne de clé primaire ne peut pas avoir de valeurs NULL.
Une table ne peut avoir qu'une seule clé primaire, qui peut être composée d'un ou plusieurs champs. Lorsque plusieurs champs sont utilisés comme clé primaire, ils sont appelésune clé composite.。
Si une table a une clé primaire définie sur un ou plusieurs champs, alors deux enregistrements ne peuvent pas avoir la même valeur dans ces champs.
Exemple
Nous avons déjà vu divers exemples de création de la table COMAPNY avec ID comme clé primaire :
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
Contrainte CHECK
La contrainte CHECK permet une condition pour vérifier les valeurs lors de la saisie d'un enregistrement. Si la condition est évaluée à faux, l'enregistrement viole la contrainte et ne peut pas être inséré dans la table.
Exemple
Par exemple, l'instruction SQLite suivante crée une nouvelle table COMPANY avec cinq colonnes. Ici, nous ajoutons un CHECK sur la colonne SALARY, donc le salaire ne peut pas être zéro :
CREATE TABLE COMPANY3( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL CHECK(SALARY > 0) );
Suppression de contraintes
Dans SQLite, pour supprimer des contraintes d'une table, vous devez généralement utiliser l'instructionALTER TABLEet spécifier le type de contrainte à supprimer.
Suppression de la contrainte de clé primaire :
ALTER TABLE table_name DROP CONSTRAINT primary_key_name;
Ici,table_nameest le nom de la table sur laquelle vous opérez,primary_key_nameest le nom de la contrainte de clé primaire à supprimer.
Suppression de la contrainte unique :
ALTER TABLE table_name DROP CONSTRAINT unique_constraint_name;
De même,table_nameest le nom de la table,unique_constraint_nameest le nom de la contrainte unique à supprimer.
Suppression de la contrainte de clé étrangère :
ALTER TABLE table_name DROP CONSTRAINT foreign_key_constraint_name;
Ici,table_nameest le nom de la table,foreign_key_constraint_nameest le nom de la contrainte de clé étrangère à supprimer.
Autres extensions