SQLite - Contraintes
Les contraintes sont les règles appliquées sur les colonnes de données d'une table. Ceux-ci sont utilisés pour limiter le type de données qui peuvent entrer dans une table. Cela garantit l'exactitude et la fiabilité des données de la base de données.
Les contraintes peuvent être au niveau de la colonne ou du niveau de la table. Les contraintes au niveau de la colonne ne s'appliquent qu'à une seule colonne, tandis que les contraintes au niveau de la table sont appliquées à l'ensemble du tableau.
Voici les contraintes couramment utilisées disponibles dans SQLite.
NOT NULL Constraint - Garantit qu'une colonne ne peut pas avoir la valeur NULL.
DEFAULT Constraint - Fournit une valeur par défaut pour une colonne lorsque aucune n'est spécifiée.
UNIQUE Constraint - Garantit que toutes les valeurs d'une colonne sont différentes.
PRIMARY Key - Identifie de manière unique chaque ligne / enregistrement dans une table de base de données.
CHECK Constraint - Garantit que toutes les valeurs d'une colonne remplissent certaines conditions.
Contrainte NOT NULL
Par défaut, une colonne peut contenir des valeurs NULL. Si vous ne voulez pas qu'une colonne ait une valeur NULL, vous devez définir une telle contrainte sur cette colonne en spécifiant que NULL n'est plus autorisé pour cette colonne.
Un NULL n'est pas la même chose qu'aucune donnée, mais représente plutôt des données inconnues.
Exemple
Par exemple, l'instruction SQLite suivante crée une nouvelle table appelée COMPANY et ajoute cinq colonnes, dont trois, ID et NAME et AGE, spécifie de ne pas accepter 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 à 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 appelée COMPANY et ajoute cinq colonnes. Ici, la colonne SALARY est définie sur 5000,00 par défaut, donc dans le cas où l'instruction INSERT INTO ne fournit pas de valeur pour cette colonne, alors par défaut, cette colonne 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 des valeurs identiques dans une colonne particulière. Dans le tableau COMPANY, par exemple, vous souhaiterez peut-être empêcher deux personnes ou plus d'avoir le même âge.
Exemple
Par exemple, l'instruction SQLite suivante crée une nouvelle table appelée COMPANY et ajoute cinq colonnes. Ici, la colonne AGE est définie sur UNIQUE, de sorte que vous ne pouvez pas 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 plus de colonnes UNIQUE, mais une seule clé primaire dans une table. Les clés primaires sont importantes lors de la conception des tables de base de données. Les clés primaires sont des ID uniques.
Nous les utilisons pour faire référence aux lignes du tableau. Les clés primaires deviennent des clés étrangères dans d'autres tables, lors de la création de relations entre tables. En raison d'une «surveillance du codage de longue date», les clés primaires peuvent être NULL dans SQLite. Ce n'est pas le cas avec d'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 constituée d'un ou de plusieurs champs. Lorsque plusieurs champs sont utilisés comme clé primaire, ils sont appeléscomposite key.
Si une table a une clé primaire définie sur un ou plusieurs champs, vous ne pouvez pas avoir deux enregistrements ayant la même valeur que ce ou ces champs.
Exemple
Vous avez déjà vu plusieurs exemples ci-dessus où nous avons créé une table COMPANY avec un 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
);
CHECK Contrainte
CHECK Constraint permet à une condition de vérifier la valeur saisie dans un enregistrement. Si la condition est évaluée à false, l'enregistrement enfreint la contrainte et n'est pas entré dans la table.
Exemple
Par exemple, le SQLite suivant crée une nouvelle table appelée COMPANY et ajoute cinq colonnes. Ici, nous ajoutons une colonne CHECK with SALARY, afin que vous ne puissiez pas avoir de SALARY Zero.
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 la contrainte
SQLite prend en charge un sous-ensemble limité d'ALTER TABLE. La commande ALTER TABLE dans SQLite permet à l'utilisateur de renommer une table ou d'ajouter une nouvelle colonne à une table existante. Il n'est pas possible de renommer une colonne, de supprimer une colonne ou d'ajouter ou de supprimer des contraintes d'une table.