Notion de contraintes

Contrainte de domaine

Lorsque l'on définit une table, on définit également des contraintes sur cette table, qui serviront à contrôler son intégrité, par rapport à des règles que l'on aura fixées.

C'est notamment le cas des contraintes de domaine, qui permettent de vérifier qu'une colonne prend ses valeurs parmi un ensemble déterminé (les chaînes de 10 caractères au plus, les entier de 1 à 1000, etc.).

Question

Exécuter l'instruction suivante et expliquer pourquoi le système renvoie une erreur.

CTRL+C pour copier, CTRL+V pour coller
1
INSERT INTO tEtu (pk_numSecu, k_numEtu, nom, prenom)
2
VALUES ('XXXXXXXXXXXXXXX', 'XXXXXX', 'Dupont', 'Pierre');
INSERT INTO tEtu (pk_numSecu, k_numEtu, nom, prenom)
VALUES ('XXXXXXXXXXXXXXX', 'XXXXXX', 'Dupont', 'Pierre');

Question

Donner un exemple de contrainte qui n'est pas formulée dans la définition de la table tEtu et que l'on aurait pu souhaiter.

Contraintes de clé

Les contraintes de clé se composent de contraintes d'unicité et de contraintes de non nullité. Elles permettent d'assurer que toutes les valeurs d'une colonne seront différentes pour chaque ligne.

Question

Exécuter les trois instructions suivantes (les unes après les autres) et expliquer ce qui se passe.

CTRL+C pour copier, CTRL+V pour coller
1
INSERT INTO tEtu (pk_numSecu, k_numEtu, nom, prenom)
2
VALUES ('1800675001066', 'HGYT67655Y', 'Dupont', 'Pierre');
3
INSERT INTO tEtu (pk_numSecu, k_numEtu, nom, prenom)
4
VALUES ('2810592012232', 'XGB67668', 'Durand', 'Anne');
5
INSERT INTO tEtu (pk_numSecu, k_numEtu, nom, prenom)
6
VALUES ('2810592012232', 'HGYT67655Y', 'Duchemin', 'Aline');
INSERT INTO tEtu (pk_numSecu, k_numEtu, nom, prenom)
VALUES ('1800675001066', 'HGYT67655Y', 'Dupont', 'Pierre');
INSERT INTO tEtu (pk_numSecu, k_numEtu, nom, prenom)
VALUES ('2810592012232', 'XGB67668', 'Durand', 'Anne');
INSERT INTO tEtu (pk_numSecu, k_numEtu, nom, prenom)
VALUES ('2810592012232', 'HGYT67655Y', 'Duchemin', 'Aline');

Question

Explorer le contenu de votre table en exécutant l'instruction suivante, et vérifier vos explications précédentes.

CTRL+C pour copier, CTRL+V pour coller
1
SELECT *
2
FROM tEtu;
SELECT *
FROM tEtu;

Question

Pourrait-on insérer dans la table une seconde personne qui aurait le prénom "Aline" et le nom "Duchemin" ? Pourquoi ?