NEO ::: TEAM
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

NEO ::: TEAM

New Evolution Owner
 
AccueilRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
AliExpress : Nouveaux codes promo (8€, 20€, 30€, 50€…)
Voir le deal

 

 Initiation au SQL / Les requêtes multi-tables

Aller en bas 
AuteurMessage
hou$$am
Fondateur
Fondateur
hou$$am


Nombre de messages : 386
Localisation : Tlemcen-Algeria
Date d'inscription : 04/01/2007

Initiation au SQL / Les requêtes multi-tables Empty
MessageSujet: Initiation au SQL / Les requêtes multi-tables   Initiation au SQL / Les requêtes multi-tables Icon_minitimeJeu 11 Jan - 2:36

# = clé primaire
_ = clé étrangère

Soit 4 tables : Eleves(#RefElv, NomElv, PreElv, VilleElv, ClasseElv), Classes(#NomCla, Niveau), Cours(#RefElv, #NomMat, NbHeure), Matieres(#NomMat).



Requêtes où les données sélectionnées sont dans plusieurs tables
Liste des élèves avec leur niveau.

Code:
SELECT NomElv, PreElv, Niveau
FROM Eleves, Classes
WHERE Eleves.ClasseElv = Classes.NomCla;


Liste des élèves et nom des cours qu'ils suivent pendant plus de 3 heures.

Code:
SELECT NomElv, NomMat
FROM Eleves, Cours
WHERE (Eleves.RefElv = Cours.RefElv) AND (Cours.NbHeure > 3);
(d'abord il faut faire les jointures puis après les sélections)



Requêtes où les données proviennent d'une table mais où la condition de sélection est faite sur une table differente
Liste des élèves de 1ère.

Code:
SELECT NomElv, PreElv
FROM Eleves
WHERE ClasseElv IN (SELECT NomCla FROM Classes WHERE Niveau = '1ère');


Liste des élèves qui font de la Peinture pendant plus de 2 heures.

Code:
SELECT NomElv, PreElv
FROM Eleves
WHERE RefElv IN (SELECT RefElv FROM Cours WHERE (NomMat = 'Peinture') AND (NbHeure > 2));


Liste des élèves habitant Toulon et suivant des cours de Macramé et de niveau BTS.

Code:
SELECT NomElv, PreElv
FROM Eleves
WHERE (VilleElv = 'Toulon')
AND (RefElv IN (SELECT RefElv FROM Cours WHERE (NomMat = 'Macramé')))
AND (ClasseElv IN (SELECT NomCla FROM Classes WHERE (Niveau = 'BTS')));



Ce qu'il ne faut pas faire
Liste des élèves de niveau Terminale.

Code:
SELECT NomElv, PreElv
FROM Eleves, Classes
WHERE (Eleves.ClasseElv = Classes.NomCla) AND (Niveau = 'Terminale');
Voici la bonne méthode :

Code:
SELECT NomElv, PreElv
FROM Eleves
WHERE ClasseElv IN (SELECT NomCla FROM Classes WHERE (Niveau = 'Terminale'));
Revenir en haut Aller en bas
 
Initiation au SQL / Les requêtes multi-tables
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Initiation au SQL / Insertion, Maj & Suppression
» Initiation au SQL / Les Jointures
» Initiation au SQL / En savoir plus !

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
NEO ::: TEAM :: Informatique :: Base de données & Logiciels de Gestions-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser