Télécharger la présentation
1
Traduction des opérations sous MySQL
Projection Ex : Select noetud, nometud From Etudiant; Sélection ou restriction From Etudiant Where age < 18 and nometud=‘Martin’; Noetud,nometud Etudiant age < 18 et nometud=‘Martin’ Etudiant …
2
Rappels Tri Union - Syntaxe SQL2 implémentée :
Ex : SELECT nometud FROM Etudiant ORDER BY nometud, age DESC Union - Syntaxe SQL2 implémentée : select ... from R1 where ... Union select ... From R2 where ... … Nometud , age Etudiant R1 R2 U
3
Rappel : Intersection Syntaxe SQL2 pas implémentée :
select … from pilote INTERSECT select … from vol Remplacée par requête imbriquée en SQL de base : ex : select plnom from pilote where nopil in (select nopil from vol) … Pilote Vol U nopil
4
Rappel : Différence Syntaxe SQL2 pas implémentée :
select ... From pilote where ... EXCEPT (ou MINUS) select ... from vol where ... Remplacée par requête imbriquée en SQL de base avec NOT IN : ex : select plnom from pilote where nopil NOT IN (select nopil from vol) … pilote vol _ nopil
5
Expression d’une jointure
… vol.nopil=pilote.nopil pilote vol Dans une requête principale : Ex: SELECT plnom FROM vol, pilote WHERE vol.nopil=pilote.nopil; Avec une requête imbriquée : Ex: SELECT plnom FROM pilote WHERE nopil in (select nopil from vol); Ou avec une nouvelle syntaxe : Ex: SELECT plnom FROM pilote INNER JOIN vol ON pilote.nopil=vol.nopil;
6
Différents types de jointure
(1/2) Équijointure : Jointure avec un test d’égalité (Vol.nopil = Pilote.nopil) Autojointure : Jointure d’une table avec elle-même Thêta-jointure : Jointure avec un opérateur différent de l’égalité (Avion1.capacité > Avion2.capacité) Jointure interne : Contient que les tuples qui "joignent" c-à-d ceux ayant au moins un correspondant dans l’autre table
7
Différents types de jointure
(2/2) Jointure externe : Mécanisme qui permet de conserver les tuples n’ayant pas de correspondant dans l’autre table Jointure externe gauche (LEFT OUTER JOIN) SELECT avion.noav, avnom FROM avion LEFT JOIN vol ON avion.noav=vol.noav; Jointure externe droite (RIGHT OUTER JOIN) SELECT avion.noav, avnom FROM avion RIGHT JOIN vol ON avion.noav=vol.noav; Voir syntaxe Oracle dans le support de cours
8
Expression d’un produit cartésien
Lorsque la clause WHERE est oubliée Ex: SELECT * FROM vol, pilote; Lorsque la jointure s’effectue entre deux champs non clés de même type Ex: SELECT * FROM pilote, avion WHERE plville = loc; pilote pilote X vol vol Nombre total de n-uplets = nbr de n-uplets de Vol X nbr de n-uplets de Pilote pilote pilote X avion avion plville=loc
9
Regroupement ou Agrégat
Calcul répétitif sur des groupes de lignes Ex : SELECT date_com, COUNT(*) FROM commande GROUP BY date_com Règle : Tous les attributs du SELECT qui ne sont pas dans une fonction de groupe doivent être dans le Group by Conseils : Repérer les expressions "pour chaque" ou "par" qui introduisent un traitement répétitif En cas de requête complexe, se représenter le résultat et étudier comment on procèderait manuellement au calcul … Count(*) Date_com commande
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.