Implanter le Modèle Relationnel suivant :
etudiant(noEtudiant, nomEtudiant, #idGroupe)
groupe(idGroupe,libelleGroupe)
créer un script SQL du type :
INSERT INTO groupe VALUES(1,'S2A1'); -- il id 1
INSERT INTO groupe VALUES(2,'S2A2'); -- id 2
INSERT INTO groupe VALUES(3,'S2bisA1'); -- id 3
INSERT INTO etudiant VALUES(1,'paul',1);
INSERT INTO etudiant VALUES(2,'pierre',2);
INSERT INTO etudiant VALUES(3,'toto',17);
Remarque : les valeurs des clés primaires sont imposées mais il est souhaitable de remplacer par la valeur “NULL” par la suite
Article sur toutes les contraintes (plus compliqué).
Faire ATTENTION à l'ordre de suppression et de création des tables quand il y a une contrainte.
Dans quel ordre faut il supprimer ou créer les tables ?
Supprimer le groupe créé : DELETE FROM groupe WHERE idGroupe=1;
Modifier un enregistrement : UPDATE groupe SET libelleGroupe='1D1' WHERE idGroupe=1;
Conclusion :
Peut on créer une contrainte de type référentielle entre un champ « clé étrangère » d’une table et un champ d’une autre table qui n'est pas une clé primaire ?
Supprimer les 2 mots : “CONSTRAINT fk_etudiant_groupe”, MYSQL donne t'il un nom à cette contrainte ? (vérifier avec la commande SHOW CREATE TABLE etudiant;
)
Un logiciel comme « analyseSI » ou « JMerise » ne sait pas dans quel ordre supprimer ou créer les contraintes sur les clés étrangères, il le fait dans un deuxième temps.
Utiliser les commandes ci dessous pour supprimer puis remettre la contrainte sur la clé étrangère de la table etudiant
Remarques :
l’objectif est d’afficher les étudiants et leur groupe associé :
Ouvrir ce lien sur Wikipédia qui concerne l’algèbre relationnelle
Tester les instructions ci-dessous.
Ajouter en commentaire sous chaque groupe d’instruction le(s) opérateur(s) (Opérateurs relationnels ou ensemblistes) de l'algèbre relationnelle.
Les opérateurs sont dans la liste suivante :
ANNEXE :