Vous êtes sur la page 1sur 4

TD2, Bases de donnes

Requtes SQL sur une seule table :


1. Afficher le nom et le salaire des employs dont le salaire est entre 1000 et 1500 Euros, tris par
ordre de salaire (et, si galit de salaire, par ordre de nom).
mysql> select nom,salaire from employe
> !here salaire "et!een 1000 and 1500 order "y salaire,nom#
$$$
% nom % salaire %
$$$
% Adam % 1100.00 %
% &arde % 1'50.00 %
% (artin % 1'50.00 %
% (eunier % 1)00.00 %
% *ournier % 1500.00 %
$$$
5 ro!s in set (0.00 sec)
'. Afficher le nom, le salaire et la commission des employs ayant une commission.
mysql> select nom,salaire,comm from employe
> !here comm is not null#
$$$$
% nom % salaire % comm %
$$$$
% +efort % 1,00.00 % )00.00 %
% &arde % 1'50.00 % 500.00 %
% (artin % 1'50.00 % 1-00.00 %
% *ournier % 1500.00 % 0.00 %
$$$$
- ro!s in set (0.00 sec)
). Afficher le nom et la date d.em"auche des employs dont la date d.em"auche est comprise entre
le 1
er
/an0ier et le )1 dcem"re '001, tris par date.
mysql> select nom,date1em"auche from employe
> !here date1em"auche "et!een .'0010101. and .'0011')1. order "y date1em"auche#
$$$
% nom % date1em"auche %
$$$
% +efort % '0010''0 %
% &arde % '0010''' %
% 2upont % '0010-0' %
% +enoir % '0010501 %
% +eclerc % '0010,03 %
% *ournier % '0010304 %
% (artin % '00103'4 %
% +escaut % '0011103 %
% +eroy % '0011115 %
% 2uguet % '0011'0) %
$$$
10 ro!s in set (0.00 sec)
-. Afficher toutes les informations des employs qui n.ont pas la fonction de secrtaire.
mysql> select 6 from employe
> !here fonction 78 .secretaire.#
5. Afficher le nom des directeurs des ser0ices '0 et )0.
mysql> select nom from employe
> !here fonction 8 .directeur. and (num1ser0ice 8 '0 or num1ser0ice 8 )0)#
$$
% nom %
$$
% 2upont %
% +enoir %
$$
' ro!s in set (0.00 sec)
,. 9echercher les employs dont le nom commence par :+E: (ou :le:, :+e:, ;) et les trier par ordre
de longueur de nom (nom"re de caract<res), puis (crit<re secondaire) par ordre alpha"tique.
mysql> select 6 from employe
> !here upper(nom) li=e (.+E>.) order "y length(nom),nom#
$$$$$$$$
$
% numemp % nom % fonction % numemp1sup % date1em"auche % salaire % comm % num1ser
ice %
$$$$$$$$
$
% 4)3 % +eroy % pdg % ?@++ % '0011115 % 5000.00 % ?@++ %
10 %
% -33 % +efort % commercial % ,34 % '0010''0 % 1,00.00 % )00.00 %
)0 %
% ,34 % +enoir % directeur % 4)3 % '0010501 % '450.00 % ?@++ %
)0 %
% 54' % +eclerc % directeur % 4)3 % '0010,03 % '-50.00 % ?@++ %
10 %
% ),3 % +efe0re % secretaire % 30' % '0001'15 % 400.00 % ?@++ %
'0 %
% 544 % +escaut % ingenieur % 5,, % '0011103 % )000.00 % ?@++ %
'0 %
$$$$$$$$
$
5. Afficher le nom et la dure d.em"auche (A ce /our) des employs, tris par dure. Bf. fonction
datediff( ). ?ommer cette derni<re colonne :2ure d.em"auche:, dans le rsultat de la requCte.
4. Afficher le nom, la fonction et le salaire $ la commission 0entuelle des employs, tris par
montant (salaire $ commission). ?ommer cette derni<re colonne :9e0enu mensuel:.
3. Afficher le nom"re d.employs dont la commission est suprieure au quart du salaire.
mysql> select count(6) from employe
> !here comm>salaireD-#
$$
% count(6) %
$$
% ' %
$$
1 ro! in set (0.,1 sec)
10. Afficher les salaires minimum, moyen (arrondi A ' dcimales) et maEimum des employs, ainsi
que le rapport (arrondi A l.entier le plus proche) du salaire maEimum sur le salaire minimum.
9enommer les colonnes affiches respecti0ement :salaire min:, :salaire maE:, :salaire moy:,
:rapport maEDmin:.