Vous êtes sur la page 1sur 3

TD SQL

Exercice 1 :
Soit le schéma relationnel suivant :
Employe (#Num, Nom, Prenom, Age, Salaire, Fonction=>Fonction, Societe=>Societe)
Fonction (#Intitule, SalaireMin, SalaireMax, NbHeures)
Societe (#Nom, Pays, Activite)

1. Ecrivez une requête SQL permettant de sélectionner les noms de tous les directeurs de
France.
2. Écrivez une requête SQL permettant d'afficher le salaire de tous les employés en
francs (sachant que le salaire dans la table est en euros et que un euro vaut 6.55957
franc).
3. Écrivez une requête SQL permettant de vérifier que les salaires de chaque employé
correspondent bien à ce qui est autorisé par leur fonction.
4. Ecrivez une requête SQL permettant le passage aux 35 heures :
 en modifiant le nombre d'heures travaillées pour chaque fonction (ramené à 35
s'il est supérieur à 35),
 et en réajustant les échelles de salaire au pro-rata du nombre d'heures
travaillées avant le passage aux 35 heures.

Exercice 2 :
Soit le schéma relationnel suivant :
Client (NCLI, nom, prenom, localite, categorie,compte)
Produit ( npro,libelle_produit,prix, qstock,
Commande (ncom, npro, ncli, date_com)
Detail (ncom, npro, qcom, prix_achat)
Exprimer en SQL les requêtes suivantes :
1. Afficher la liste des localités dans lesquelles il existe au moins un client.
2. Afficher le numéro, le nom et la localité des clients de catégorie C1 n’habitant pas à
Toulouse.
3. Donner le numéro, le nom et le compte des clients de Poitiers et de Bruxelles dont le
compte est positif.
4. Quelles catégories de clients trouve-t-on à Toulouse ?
5. Afficher le numéro, le nom et la localité des clients dont le nom précède
alphabétiquement la localité où ils résident.
6. Afficher les localités des clients qui commandent le produit de numéro 'CS464'.
7. Quels sont les produits en sapin qui font l'objet d'une commande ?
8. Afficher la valeur totale des stocks (compte non tenu des commandes actuelles).
9. Combien y a-t-il de commandes spécifiant un (ou plusieurs) produit(s) en acier ?
10. Afficher le numéro et le nom des clients qui n’ont pas commandé de produits en sapin.
11. Quels sont les produits (numéro et libellé) qui n'ont pas été commandés en 2015 ?
12. Calculer le montant de chaque détail de commande du client ’C400’.
13. Calculer le montant commandé des produits en sapin.
14. Afficher le total et la moyenne des comptes des clients, ainsi que le nombre de clients,
selon chacune des classifications suivantes : (1) par catégorie, (2) par localité, (3) par
catégorie dans chaque localité.
15. Combien y a-t-il de commandes spécifiant un (ou plusieurs) produit(s) en acier?
16. Créer une table et y ranger les données suivantes relatives aux détails de commande :
numéro et date de la commande, quantité commandée, numéro et prix du produit,
montant du détail.
17. Annuler les comptes négatifs des clients de catégorie C1.
18. Afficher pour chaque localité, les libellés des produits qui y sont commandés.

Exercice 4 :
Soit le schéma relationnel suivant :
Categorie (code_cat, libelle_cat)
Produit (code_prd, nom_prd, #code_cat, prix_achat, prix_vente)
Commande ( num_cmd, date_cmd, date_envoi, client, pays_client)
Details commande (#num_cmd, #code_prd, qte_cmd, prix_vente)
Client (code_client, nom_client, pays_client)

1. afficher le nombre total de produits différents qui appartiennent à la catégorie 2, 3, 4, 5


ou 8.
2. Afficher le montant total commandé (sans tenir compte de la remise) pour toutes les
commandes dont le numéro est supérieur à 150 (nous afficherons également le numéro
de commande).
3. Afficher pour chaque client le délai constaté entre la passation de la commande et
l’envoi des produits, ceci pour les clients livrés en France. Vous ne ferez apparaître
que les clients qui ont un délai >20jours.
4. Afficher la liste des commandes (numéro de commande, date de commande) passées
entre 2011 et 2015 triée par date de la commande.
5. Afficher la liste des produits dont le nom commence par c.
6. Afficher le montant total commandé pour toutes les commandes dont le montant est
<= 10270. (nous afficherons également le numéro de commande).
7. Afficher pour chaque catégorie de produit (libelle_categorie) le nombre total de
produits.
8. Afficher le prix d’achat du produit le moins cher pour l’ensemble des catégories 2, 4 et
5.

Exercice 5 :
Soit le schéma relationnel de la BDD « Ressources_Humaines » suivant :
EMP(EMPNO, nom, fonction, date_Emb, sal, comm, ND)
DEPT(DEPTNO, nom, ville)
Où :
Table Employé «EMP » :
EMPNO : numéro employé ou matricule de l’employé  (clé primaire);
Nom : nom de l’employé ;
Fonction : fonction ou job de l’employé ;
Date_Emb : date d’embauche de l’employé ;
Sal : salaire de l’employé ;
Comm : commission de l’employé ;
ND : numéro de département de l’employé (clé étrangère) ;

Table département « DEPT » :


DEPTNO : numéro du département auquel l’employé est affecté (clé primaire);
Nom : nom du département de l’employé ;
Ville : ville du département

En utilisant les requêtes SQL appropriées, répondre aux questions suivantes :

1- Afficher chaque type de poste (fonction) différents existant dans la table EMP ;
2- Afficher le nom et le salaire des employés dont le salaire est supérieur à 20.000 dhs ;
3- Afficher le nom et le numéro de département de l’employé dont le matricule est 7566 ;
4- Afficher le nom de tous les employés dont la 3ème lettre du nom est A.

Vous aimerez peut-être aussi