Académique Documents
Professionnel Documents
Culture Documents
Objectifs
Note: dans la commande précédente, remplacez <username> par le nom d'utilisateur qui vous
est assigné pour l’atelier, par exemple, l'étudiant devra taper NomEtudiant
Vous n'avez pas besoin de mot de passe. Sinon, la commande aurait demandé l'option finale -
p et l'insertion ultérieure du mot de passe.
Si les erreurs ne se sont pas produites la connexion serait établie. Maintenant, Vous pouvez
interagir avec le SGBD et passer aux étapes suivantes de l'exercice.
Autre alternative :
Vous pouvez utiliser la ligne de commande ou l’interface graphique pour cet atelier.
Une fois la connexion établie, comme décrit au point précédent, pour créer la base de données
dbj_NomEtudiant, opérez depuis l'invite de commande comme décrit ci-dessous (n'oubliez
pas de remplacer j par le numéro qui vous a été assigné pour l'exercice):
Maintenant, Il est possible d'interagir avec le SGBD pour faire fonctionner sur la base des
données créées et procéder aux points suivants de l'exercice.
Pour écrire des instructions SQL, vous pouvez procéder directement à partir de la ligne de
commande (en tapant Entrée pour envoyer des commandes SQL au SGBD) ou utiliser
n'importe quel éditeur de texte.
Si vous choisissez la deuxième option, une fois que vous avez écrit le code, enregistrez-le sur
un fichier, par exemple pour les personnes, personne.sql, et appelez le script ainsi créé par
MySQL en utilisant la commande
source personne.sql
Si le fichier ne se trouve pas directement à l'emplacement depuis lequel vous avez lancé
mysql, remplacez le nom du fichier par le chemin relatif. Notez que chaque fois que la
commande source est utilisée, toutes les instructions contenues dans le fichier sont exécutées.
Pour vérifier que vous avez réellement créé les tables, exécutez la requête suivante
Université Ibn Tofeil Module Système d’information & Bases de données
Ecole Nationale des Sciences Appliquées Responsable : Prof. H. Chaoui
Kenitra
qui interroge (sur les attributs table_name et table_schema) la table prédéfinie tables t du
catalogue (schema_information) qui stocke les informations sur toutes les tables de la base de
données. Aussi, vu le nom d'une table il est possible d'obtenir ses attributs (nom et type) avec
la commande
describe <nom-table>;
source remplirSQL-db.sql
7. Trouvez la relation qui montre pour chaque enfant les parents respectifs (Père,
Mère, Fils);
Pour écrire et exécuter les requêtes SQL relatives aux interrogations, procédez comme au
point précédent.
5. Trouvez le revenu des personnes qui sont parents d'au moins 2 enfants.
Comment se généralisent les deux solutions au cas où l'on veut trouver le revenu de
personnes ayant au moins 3, 4, 5, ... enfants?
5. Trouver la relation qui montre les couple de frères (deux personnes sont frères et
sœurs si elles ont un parent en commun)
OBJECTIFS
• Configuration MySQL
Architecture client-serveur
Serveurs MySQL : logiciels qui opèrent directement sur les bases de données.
Dans les applications réelles, ils sont hébergés dans des machines dédiées (serveurs) capables
de gérer de nombreuses requêtes provenant des applications.
Connecteurs : sont des bibliothèques utilisées par les développeurs pour utiliser et intégrer les
services proposés par le SGBD dans leurs logiciels.
Applications:
• Gérer les bases de données (par exemple, créer ou modifier des bases de données, des tables,
des valeurs d'insertion, etc ..)
• Notificateur
• Utilitaires
INSTALLATION
Windows: https://dev.mysql.com/downloads/windows/installer/8.0.html
2- MySQL Tutorial:
• Workbench: http://dev.mysql.com/doc/workbench/en/
Remarque : dans la commande précédente, remplacez le nom d'utilisateur qui vous a été
attribué pour l'exercice par <nom d'utilisateur>, par exemple, l'étudiant avec le nom
d'utilisateur etud1 devra taper : mysql -h ws02 -u etud1
L'utilisateur qui vous sera attribué n'a pas besoin de mot de passe. Sinon, la commande aurait
nécessité l'option -p finale et la saisie ultérieure du mot de passe.
Si aucune erreur ne s'est produite, la connexion a été établie. Il est maintenant possible
d'interagir avec le SGBD et de procéder aux points suivants :
L'utilisateur a le droit de créer des bases de données db_votreNom. Il dispose de tous les
droits possibles sur ces bases de données (création de tables, peuplement, modification,
requête).
Une fois la connexion établie, comme décrit au point précédent, pour créer la base de données
db_votreNom, opérer depuis l'invite de commande comme décrit ci-dessous
Il est maintenant possible d'interagir avec le SGBD pour opérer sur la base de données créée
et passer aux prochains points de l'exercice.
• Genre (« M » ou « F ») ;
Pour écrire des instructions SQL, vous pouvez procéder directement à partir de la ligne de
commande (en tapant Entrée pour soumettre des commandes SQL au SGBD), ou utiliser
n'importe quel éditeur de texte. Si vous choisissez la deuxième option, une fois que vous avez
écrit le code, enregistrez-le dans un fichier, par exemple personnes.sql, et appelez le script
créé par MySQL à l'aide de la commande : sources personnes.sql.
Si le fichier ne se trouve pas directement à l'emplacement à partir duquel vous avez démarré
mysql, remplacez le nom du fichier par le chemin relatif. Notez qu'à chaque utilisation de la
commande source, toutes les instructions contenues dans le fichier sont exécutées.
Pour vérifier que vous avez bien créé les tables, exécutez la requête suivante
qui interroge (sur les attributs table_name et table_schema) les tables prédéfinies du catalogue
(information_schema) qui stocke des informations sur toutes les tables de la base de données.
Aussi, étant donné le nom d'une table il est possible d'obtenir ses attributs (nom et type) avec
la commande :
describe <nom-table> ;
Pour remplir la base de données, copiez le fichier contenusSQL-db.sql qui représente le script
de remplissage des tables et exécutez la commande
source contenusSQL-db.sql
7. Trouvez la relation qui montre les parents respectifs (Père, Mère, Fils) pour chaque enfant ;
Université Ibn Tofeil Module Système d’information & Bases de données
Ecole Nationale des Sciences Appliquées Responsable : Prof. H. Chaoui
Kenitra
Pour écrire et exécuter les instructions SQL relatives aux requêtes, procédez comme au point
précédent. En créant un scripte.
5. Trouvez les revenus des personnes qui sont parents d'au moins 2 enfants.
Comment généralisez-vous les deux solutions au cas où vous voulez trouver les revenus des
personnes ayant au moins 3, 4, 5, ... enfants ?
5. Trouvez la relation montrant des paires de frères et soeurs (deux personnes sont frères et
soeurs si elles ont un parent en commun)
PERSONNES
Nom Revenu Age Genre
'Adam' 25 1 'M'
'Abdoullah' 27 21 ‘M'
'Ismail' 44 40 'M'
'Omar' 11 10 'M’
'Ali' 26 30 ‘M'
'Otmane' 60 20 'M'
'Driss' 79 30 'M’
'Youssef' 50 40 'M’
'Mohammed' 79 30 'M'
'Hamza' 85 35 'M’
'Houda' 79 28 'F'
'Nadia' 50 29 'F'
'FatimaZouhra' 41 30 'F'
'Zeinab' 79 30 F'
'Ghita' 75 87 'F'
'Hiba' 55 42 ‘F’
'Kenza' 30 41 ‘F’
PARENTS
Enfant Parent
'Adam' 'Otmane'
'Adam' 'Hiba'
'Abdoullah' 'Otmane'
'Abdoullah' 'Hiba'
'Ismail' 'Zeinab'
'Ismail' 'Driss'
'Omar' 'FatimaZouhra'
'Omar' 'Ismail'
'Ali' 'Nadia'
'Ali' 'Youssef'
'Otmane' 'Hamza'
'Youssef' 'Ghita'
'FatimaZouhra' 'Houda'
'FatimaZouhra' 'Mohammed
'Hiba' 'Ghita
'Kenza' ‘Nadia’
'Kenza' 'Youssef'
Université Ibn Tofeil Module Système d’information & Bases de données
Ecole Nationale des Sciences Appliquées Responsable : Prof. H. Chaoui
Kenitra
EMPLOYE
Matricule Nom Salaire Service
101 NOM1 60 NO
102 NOM2 40 NO
103 NOM3 40 NO
201 NOM3 40 SU
202 NOM4 50 SU
301 NOM5 70 IS
PROJET
Thème Intitulé Budget Responsable
Alpha Vente 30 202
Beta Inventaire 50 301
Gamma Distribution 18 301
PRATICIPATION
Employé Projet
101 Alpha
101 Beta
103 Alpha
103 Beta
201 Beta
202 Beta
1. Trouver le numéro de Matricule et le nom des employés qui gagnent plus de 50.
3. Trouvez le nom de famille des employés et le nom du service dans lequel ils travaillent.
4. Trouvez les noms des employés qui sont des directeurs de département.
5. Trouvez les noms des projets et les noms de famille des responsables.
6. Trouvez les noms des projets dont le budget est supérieur à 100 et les noms de famille des
employés qui y travaillent.
7. Trouvez les noms des employés qui gagnent plus que leur chef de service.
9. Trouvez les noms des services où travaillent les employés qui gagnent plus de 60.
10. Trouvez les noms des services où tous les employés gagnent plus de 60.
12. Trouvez le numéro de matricule et le nom de famille des employés qui ne travaillent sur
aucun projet.
13. Trouvez le numéro de matricule et le nom de famille des employés travaillant sur plus
d'un projet.
14. Trouvez le numéro de matricule et le nom de famille des employés travaillant sur un seul
projet.
15. Trouvez le salaire moyen des employés qui y travaillent pour chaque service.
16. Trouvez le numéro de matricule et le nom des employés dont le salaire est supérieur d'au
moins 10 % au salaire moyen de leur service.
Université Ibn Tofeil Module Système d’information & Bases de données
Ecole Nationale des Sciences Appliquées Responsable : Prof. H. Chaoui
Kenitra
Objectif :
Cet atelier comporte deux parties. La partie 1contient certaines requêtes à exprimer en SQL
sur une base de donnée existante. La partie II a comme objectif de créer à partir du schéma
logique d’une base de données, et depuis un scripte de création et de chargement de la base de
données et d’exprimer des requêtes de mise à jour, de suppression en utilisant le langage SQL.
Les requêtes SQL sont exécutées dans le software SQL Developer qui permet de se connecter
à la base de données Oracle et soumet des requetes SQL
2- Login
S’authentifier
Connection name :
Username :
Password :
Hostname :
Port :
SID :xe
3- Un exemple d’une machine numéro 23 du réseau avec un Username dbdata23 et come
password orac23
Université Ibn Tofeil Module Système d’information & Bases de données
Ecole Nationale des Sciences Appliquées Responsable : Prof. H. Chaoui
Kenitra
Exprimer la requête SQL à exécuter dans l’espace de travail (Woksheet) et exécuter la requête
/script en cliquant sur « Run script »
La base de données Delivery rassemble des informations sur les activités d'une
entreprise livrant et collectant des marchandises pour diverses entreprises clientes.
La table DELIVERERS contient les données personnelles des livreurs travaillant dans
l'entreprise. Pour chaque livreur, les informations suivantes sont disponibles : code
d'identification (DELIVERERID), nom, prénom, année de naissance, sexe, année où il
a commencé à travailler pour l'entreprise, rue, numéro de maison, ville, code postal de
résidence, le numéro de téléphone et le numéro de téléphone du bureau.
livreur-société telles que le livreur a effectué au moins une livraison ou une collecte
pour la société.
Le tableau PENALITES rapporte les amendes reçues par chaque livreur. Pour chaque
amende, le code amende (PENALTYID), le code livreur, la date de l'amende et le
montant à payer sont mémorisés.
La clé primaire est soulignée, les attributs optionnels sont dénotés par *.
Table DELIVERES
Table COMPANYDEL
1 2 4 8
1 6 9 1
1 8 0 1
1 44 7 5
1 57 5 0
1 83 3 3
2 8 4 4
2 27 11 2
2 104 8 4
2 112 4 8
Table PENALTIES
1 6 12/08/2017 100
2 44 05/05/2018 75
3 27 10/09/2020 100
4 104 08/12/2021 50
5 44 08/12/2017 25
6 8 08/12/2017 25
7 44 30/12/2022 30
8 27 12/11/2021 75
Table COMANTES
COMPANYID DELIVERERID MANDATE
1 6 First
2 27 Second
6- SQL Queries
2. Indiquez les codes d'identification de toutes les entreprises pour lesquelles les
livreurs ont livré ou récupéré des marchandises.
3. Pour chaque livreur dont le nom de famille (nom d'attribut) commence par la lettre
« B », indiquez le nom du livreur et le code d'identification.
5. Indiquez le nom et la ville de résidence des livreurs qui ont reçu au moins une
amende.
6. Pour chaque personne de référence de l'entreprise qui a reçu au moins une amende
après le 31/12/2017 indiquez le nom et les initiales du prénom. Triez le résultat par
ordre alphabétique croissant par rapport au nom de famille.
8. Afficher les codes d'identification des livreurs nés après 1982 ayant effectué au
moins une livraison à une entreprise dont la personne de référence a été désignée pour
la première fois (attribut MANDATE='First'). Trier le résultat par ordre décroissant
des codes d'identification.
9. Indiquez le nom de famille des livreurs vivant à Inglewood ou à Stratford qui ont
livré ou collecté des marchandises pour au moins 2 entreprises clientes.
10. Pour chaque livreur vivant à Inglewood qui a reçu au moins deux amendes,
indiquez le code d'identification du livreur et le montant total (attribut AMOUNT) des
amendes reçues.
11. Pour chaque livreur qui a reçu entre 2 et 4 amendes (c'est-à-dire au moins 2 mais
pas plus de 4 amendes), indiquez le nom de famille et le montant de la plus petite
amende reçue.
12. Pour chaque livreur qui n'habite pas à Stratford et dont le nom de famille (nom
d'attribut) commence par la lettre « B », indiquez le nombre total de livraisons et le
nombre total de collectes.