Documente Academic
Documente Profesional
Documente Cultură
Standard ANSI-ISO, Normes SQL-86,89, SQL2-92 SGBDR : Oracle, Sybase, DB2, Ingres, MS SQL Server, MySQL, MS Access ... Mais des diffrences subsistent selon le SGBD utilis.
1
Plan du cours
Requtes de consultation de tables
Projection, Slection, Jointure Tri, Agrgation, Partitionnement
Projection
Syntaxe SQL : SELECT [UNIQUE1] liste_attributs2 FROM Table ;
quivalent AR : liste_attributs R(Table)
1
Permet d'liminer les doublons (on trouvera aussi DISTINCT) 2 On peut mettre une toile * pour demander tous les attributs On peut renommer un attribut en ajoutant AS NomAttribut
Projection - Exemples
Soit la relation tudiants(num, nom, prnom, ge, ville, CodePostal) Afficher toute la relation tudiant. SELECT * FROM tudiants; Donner les noms, les prnoms et les ges de tous les tudiants. SELECT nom, prnom, age FROM tudiants; Donner les numros des tudiants dans une colonne nomme Numro. SELECT #num AS Numro FROM tudiants;
Slection
Syntaxe SQL : SELECT * FROM table WHERE condition; quivalent AR : condition R(Table)
La condition peut tre forme sur des noms d'attributs ou des constantes avec des oprateurs de comparaison : =, >, <, <=, >=, <>1 des oprateurs logiques : AND, OR, NOT des oprateurs : IN, BETWEEN+AND, LIKE, EXISTS, IS _ qui remplace un caractre et % qui remplace une chane de caractres
1
Slection Exemples
Sur la relation tudiants(Num, Nom, Prnom, Age, Ville, CodePostal)
Quels sont tous les tudiants gs de 20 ans ou plus ?
Quels sont tous les tudiants habitant dans les Vosges ? SELECT * FROM tudiant WHERE CodePostal LIKE '88%' ;
Quels sont tous les tudiants dont la ville est inconnue/connue ? SELECT * FROM tudiants WHERE Ville IS NULL ; SELECT * FROM tudiants WHERE Ville IS NOT NULL ;
6
Produit Cartsien
Syntaxe SQL : SELECT * FROM table1 [Alias1], ..., tablen [Aliasn],
quivalent AR : Table1 ... Table n
-Jointure
Syntaxe SQL : SELECT * FROM table1 [Alias1], ..., tablen [Aliasn], WHERE condition;
quivalent AR : Table1 ...
Possibilit de Renommage des tables
Table n
Jointure - Exemples
Soient les relations Produit (prod, nomProd, fournisseur, pu)
DtailCommande (cmd, prod, pu, qte, remise) Quels sont les numros de commande correspondant l'achat d'une table ?
SELECT DtailCommande.cmd FROM Produit, DtailCommande WHERE Produit.prod =DtailCommande.prod AND nomProd LIKE "%table%"; Mme requte, mais avec des alias pour les noms de relation : SELECT dc.num FROM Produit p, DtailCommande dc WHERE p.prod = dc.prod AND nomProd LIKE "%table%";
9
La sous-requte ne doit retourner qu'une colonne ! Les tables de sous-requtes ne sont pas visibles depuis l'extrieur
10
Table1 Table2 :
Table1 - Table2 :
Matire
Maths Sc Nat Sc Phy Franais Sc Hum Anglais Sport
Coef
4 3 3 2 2 1 1
Note
15 9 12 13 11 10 12
14
Matire
Maths Sc Nat Sc Phy Franais Sc Hum Anglais Sport
Coef
4 3 3 2 2 1 1
Note
15 9 12 13 11 10 12
Quelle est la note moyenne pour chaque coefficient ? SELECT coef, Avg(note) as Moyenne FROM Rsultats GROUP BY coef; Coef 1 2 3 4 Moyenne 11 12 10.5 15
SELECT coef
FROM Rsultats GROUP BY coef HAVING count(*)=1;
Coef 4
15
Cration de table
Syntaxe : CREATE TABLE nomTable ( Attribut Domaine [Contraintes ...], ... Attribut Domaine [Contraintes ...], [Contraintes ... ] )
16
17
19