Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
les_contraintes_sql [2018/02/01 16:03] johan.belhomme créée |
les_contraintes_sql [2018/02/02 16:51] (Version actuelle) johan.belhomme |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Les Contraintes SQL ====== | + | ======== Les Contraintes SQL ======== |
- | ==== La contrainte PRIMARY KEY ==== | + | ====== La contrainte PRIMARY KEY ====== |
Une clé primaire indique qu'une colonne ou un groupe de colonnes peut être utilisé(e) comme identifiant unique des lignes de la table. Une table a **au plus une** clé primaire. | Une clé primaire indique qu'une colonne ou un groupe de colonnes peut être utilisé(e) comme identifiant unique des lignes de la table. Une table a **au plus une** clé primaire. | ||
- | __Exemple avec une colonne :__ | + | =====Exemple avec une colonne :===== |
- | __Methode 1 :__ | + | ====Methode 1 :==== |
CREATE TABLE exemple ( | CREATE TABLE exemple ( | ||
Ligne 15: | Ligne 15: | ||
); | ); | ||
- | __Methode 2 :__ | + | ====Methode 2 :==== |
CREATE TABLE exemple ( | CREATE TABLE exemple ( | ||
Ligne 23: | Ligne 23: | ||
); | ); | ||
| | ||
- | __Methode 3 :__ | + | ====Methode 3 :==== |
CREATE TABLE exemple( | CREATE TABLE exemple( | ||
Ligne 31: | Ligne 31: | ||
); | ); | ||
| | ||
- | __Exemple avec un groupe de colonnes :__ | + | =====Exemple avec un groupe de colonnes :===== |
CREATE TABLE exemple ( | CREATE TABLE exemple ( | ||
a integer, | a integer, | ||
Ligne 39: | Ligne 40: | ||
); | ); | ||
- | ==== Les contraintes d'intégrité referentielles ==== | + | ====== Les contraintes d'intégrité referentielles ====== |
+ | Une CIF permet de préciser que les valeurs d'une attribut doivent correspondre aux valeurs qui apparaissent dans les enregistrements d'une autre table. Cela sous entend qu'il existe un ordre de creation d'une table. | ||
+ | Dans cette exemple, nous ne pouvons créer SALARIE que lorsque la table SERVICE est déjà créer | ||
- | ==== La contrainte CHECK ==== | + | {{ :references.png?nolink&400 |}} |
+ | SERVICE(Numero_service, Nom_service, Telephone) | ||
+ | SALARIE(Numero_salarie, Nom_salarie, Fonction, Salaire, #Numero_service) | ||
- | ==== La contrainte NOT NULL ==== | + | Le #Numero_service fait reference à Numero_service de la table SERVICE |
+ | ====Methode 1 :==== | ||
- | ==== La contrainte UNIQUE ==== | + | CREATE TABLE SALARIE( |
+ | Numero_salarie serial PRIMARY KEY, | ||
+ | Nom_salarie varchar, | ||
+ | Fonction varchar, | ||
+ | Salaire integer, | ||
+ | Numero_service integer REFERENCES SERVICE (Numero_service) | ||
+ | ); | ||
+ | |||
+ | ====Methode 2 :==== | ||
+ | CREATE TABLE SALARIE( | ||
+ | Numero_salarie serial PRIMARY KEY, | ||
+ | Numero_service integer, | ||
+ | Nom_salarie varchar, | ||
+ | Fonction varchar, | ||
+ | Salaire integer, | ||
+ | FOREIGN KEY (Numero_service) REFERENCES SERVICE (Numero_service) | ||
+ | ); | ||
+ | Il est possible d'ajouter des contraintes à la clé étrangère comme "ON DELETE CASCADE". | ||
+ | Si vous indiquez cette option, lorsque vous supprimerez une ligne de la table parent, le serveur de base de données supprimera également toutes les lignes qui y sont associées (clés externes) dans la table enfant. L'option ON DELETE CASCADE évite d'avoir à saisir un trop grand nombre d'instructions SQL pour procéder à des suppressions. | ||
+ | Exemple : | ||
+ | |||
+ | CREATE TABLE SALARIE ( | ||
+ | Numero_salarie serial PRIMARY KEY, | ||
+ | Numero_service integer, | ||
+ | Nom_salarie varchar, | ||
+ | Fonction varchar, | ||
+ | Salaire integer, | ||
+ | CONSTRAINT id_service FOREIGN KEY (Numero_service) REFERENCES SERVICE (Numero_service) ON DELETE CASCADE | ||
+ | ); | ||
+ | |||
+ | ====== La contrainte CHECK ====== | ||
+ | |||
+ | La contrainte de vérification est utilisée pour limiter la plage de valeurs qui peut être placé dans une colonne. | ||
+ | |||
+ | Par exemple dans ce cas la contrainte CHECK assure que vous ne pouvez pas avoir un exemple avec un numero_exemple inferieur a 18. | ||
+ | |||
+ | ====Exemple : ==== | ||
+ | |||
+ | CREATE TABLE exemple( | ||
+ | id_exemple int, | ||
+ | nom_exemple varchar, | ||
+ | numero_exemple integer CHECK (numero_exemple >= 18), | ||
+ | ville_exemple varchar CHECK (ville_exemple = 'Lannion'), | ||
+ | PRIMARY KEY (id_exemple) | ||
+ | ); | ||
+ | |||
+ | ====== La contrainte NOT NULL ====== | ||
+ | |||
+ | Cette contrainte oblige à saisir une valeur pour l'attribut concerné. | ||
+ | |||
+ | ====Exemple : ==== | ||
+ | |||
+ | CREATE TABLE exemple ( | ||
+ | id_exemple serial PRIMARY KEY, | ||
+ | nom_exemple varchar not null | ||
+ | ); | ||
+ | |||
+ | ====== La contrainte UNIQUE ====== | ||
+ | |||
+ | La contrainte UNIQUE garantit que toutes les valeurs d'une colonne sont différents. (Un PRIMARY KEY a automatiquement la contrainte UNIQUE) | ||
+ | |||
+ | ====Exemple : ==== | ||
+ | |||
+ | CREATE TABLE exemple ( | ||
+ | id_exemple serial PRIMARY KEY, | ||
+ | email_exemple varchar UNIQUE | ||
+ | ); |