Académique Documents
Professionnel Documents
Culture Documents
EXERCICE 1
Soit la table suivante :
NomMed PrenomMed CodeMed NomHopital AdrHopital TelHopital
Ben Saleh Amine M10 Sahloul Sousse 73425001
Amari Lotfi M15 Charles Nicole Tunis 71236147
Kaibi Henda M27 Fatouma Bourguiba Monasir 73260871
1. Donner une description détaillée des colonnes de cette table.
2. En déduire le script SQL de création de cette table.
EXERCICE 2
Une compagnie aérienne gère ses données comme suit :
Un avion a un numéro d’immatriculation et un type. Chaque type d’avion est décrit par son
nom, son poids, sa capacité et son rayon d’action.
Un technicien de la compagnie a un nom, un matricule, une adresse, un numéro de téléphone,
un salaire et est expert sur un ou plusieurs types d’avions.
Un pilote est décrit par les mêmes attributs qu’un technicien. De plus il doit passer un examen
médical annuel.
Chaque avion doit également passer un certain nombre de tests de bon fonctionnement ; chaque
test a un numéro qui l’identifie, un nom et une valeur minimale (seuil à atteindre)
Ces données de la compagnie seront stoquées dans la base de données AirLineDb.
1. Elaborer le MCD correspondant à cette description
2. En déduire le MLD correspondant
3. Dégager les tables correspondantes à chaque table.
4. Ecrire les scripts SQL d’implémentation de cette base de données dans le SGBD MySQL.
EXERCICE 3
On souhaite créer une base de donnée concernant une entreprise. Une première étude a mis en
évidence trois relations. Pour chacune des relations, la clé est soulignée.
EMPLOYE(NumEmp, Nom, Prenom, Adresse, Telephone, Qualification)
En considérant les possibilités offertes par ce schéma, répondre aux questions suivantes :
1. Un employé peut-il avoir plusieurs qualifications ?
2. Un employé peut-il faire plusieurs projets en même temps ?
3. Une personne peut-elle être responsable de plusieurs services ?
4. Un service peut-il avoir plusieurs responsables ?
1. La commande « SELECT »
L'affichage des données d'une ou plusieurs tables se fait grâce au mot-clé SELECT.
La syntaxe de la commande SELECT en SQL est la suivante :
Soit une expression obtenue à l'aide des fonctions statistiques SUM (somme), AVG
doublons après une projection mise en œuvre par l'ordre SELECT suivi d'une liste d'attributs.
La clause FROM désigne les relations concernées par la requête. Chaque nom de relation peut
être suivi d'un alias (variables synonymes pour chaque relation). Cet alias permet parfois des
économies d'écritures, mais il permet surtout de lever des ambiguïtés sur les noms d'attributs
(plusieurs relations qui possèdent le même nom d'attribut). Des exemples de définition d'alias
La clause WHERE, optionnelle, spécifie les critères de sélection. La condition logique de niveau
tuple est une expression logique spécifiant les prédicats de restriction ou de jointure à satisfaire
par la réponse. On peut également insérer dans la clause WHERE, une nouvelle instruction
SELECT (requête imbriquée) ce qui permet de travailler sur un ensemble de tuples restreints
Lorsque ces critères portent sur des fonctions de groupe, on utilise la clause HAVING.
La clause GROUP BY partitionne la relation en groupes. La liste des attributs spécifiés dans
La clause ORDER BY permet de trier les résultats obtenus selon un tri ascendant (ASC) ou
descendant (DESC). On veillera à choisir des colonnes de tri présent dans les attributs du
SELECT.
Cette instruction SQL permet d'afficher tous les tuples de la table VOITURE :
Remarque : la requête ne porte que sur un seul champ, cela équivaut à une projection de la table
VOITURE sur ce champ. On peut ajouter autant d’attributs que l’on désire afficher.
SELECT DISTINCT Marque FROM Voiture;
Cette instruction SQL permet d'afficher le contenu du champ Marque des tuples
de la table VOITURE, sans répétition de Marque, c'est-à-dire sans doublon de
Marque.
Cette instruction SQL permet d’affiche les tuples de la table VOITURE dont la Puissance
est inférieure ou égale à 6 chevaux et dont le prix est supérieur ou égal à 20 000 € :
Cette instruction SQL permet d’affiche les tuples de la table VOITURE dont la Puissance
est inférieure ou égale à 6 chevaux ou dont le prix est supérieur ou égal à 20 000 € :
Cette instruction SQL permet d’affiche les tuples de la table VOITURE dont la Puissance
n’est égale à 6 chevaux :
Cette instruction SQL permet d’afficher les tuples de la table VOITURE dont le Prix est compris
entre 25 000€ et 40 000€ :
BETWEEN min AND max : permet de récupérer les données dont les valeurs sont comprises entre
min et max (bornes incluses).
SELECT * FROM VOITURE
Cette instruction SQL permet d’afficher tous les tuples de la table VOITURE dont le Marque
commence par ‘Ren’, dont la couleur est soit noire, bleue ou jaune, et dont le prix n’est pas inconnu
(donc connu) :
SELECT *
FROM Chambre;
2. Les numéros des chambres avec TV
SELECT Num_Chambre
FROM Chambre
WHERE Confort = ′TV′;
3. Les numéros des chambres et leurs capacités
SELECT SUM(Nbr_Pers)
FROM CHAMBRE;
5. Le prix par personne des chambres avec TV.
SELECT Num_Chambre
FROM CHAMBRE
WHERE Prix<=80000 OR (Confort=’bain’ AND Prix<=’120000’) ;
8. Les noms, prénoms et adresse des clients dont les noms commencent par « AR ».
SELECT COUNT(Num_Chambre)
FROM CHAMBRE
WHERE Prix BETWEEN 85000 AND 120000;
10. Les noms des clients n’ayant pas fixé la date de départ
SELECT C.Nom
FROM RESERVATION R, Client C
WHERE Date_Dep is Null AND R.Num_client = C.Num_Client ;