You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
44 Annexe A • <strong>Exercices</strong> <strong>et</strong> <strong>solutions</strong><br />
A.9 CHAPITRE 9 - LE LANGAGE SQL AVANCÉ<br />
9.1 Développer, à l’aide des concepts étudiés dans c<strong>et</strong> ouvrage, un mécanisme<br />
qui perm<strong>et</strong> de limiter l’accès à une table par un utilisateur déterminé à des<br />
moments bien déterminés, par exemple du lundi au vendredi, de 9h à 17h.<br />
Solution<br />
On suggère de définir une vue limitant l’accès aux plages horaires désirées.<br />
create view T_CLIENT(NCLI, NOM, ...) as<br />
select NCLI, NOM, ...<br />
from CLIENT<br />
where extract(weekday from current_date) b<strong>et</strong>ween 1 and 5<br />
and extract(hour from current_time) b<strong>et</strong>ween 9 and 17;<br />
revoke select on CLIENT from U_MERCIER:<br />
grand select on T_CLIENT to U_MERCIER;<br />
9.2 Exprimer l’opérateur except à l’aide d’une jointure externe.<br />
Solution<br />
Exemple : liste des numéros des clients qui n’ont pas passé de commande :<br />
select C.NCLI<br />
from CLIENT C left outer join COMMANDE M<br />
on (C.NCLI = M.NCLI)<br />
where NCOM is null;<br />
9.3 Ecrire une requête qui produise les supérieurs hiérarchiques, directs ou<br />
indirects, d’une personne dont on spécifie le numéro (figure 8.2).<br />
9.4 Ecrire une requête qui donne la liste des produits semi-finis <strong>et</strong> matières<br />
premières qui entrent dans la composition du produit de numéro p1 (figure<br />
8.6).<br />
9.5 Ecrire une requête qui donne la liste des matières premières qui entrent dans<br />
la composition du produit de numéro p1 (figure 8.6).<br />
9.6 Ecrire une requête qui calcule le prix d’un produit de numéro spécifié (figure<br />
8.6).<br />
9.7 Ecrire une requête qui donne, pour chaque table, le nombre de colonnes <strong>et</strong> la<br />
longueur maximum des lignes.<br />
9.8 Le catalogue que nous avons décrit (figures 9.3 <strong>et</strong> 9.4) diffère quelque peu<br />
des catalogues proposés par les SGBD. En particulier, les catalogues réels<br />
ont souvent une structure complexe destinée à améliorer les performances.<br />
Ecrire les requêtes qui garnissent les tables de la figure 9.4 à partir du contenu