13.07.2015 Views

BASE DE DONNEES - Site de Bertrand LIAUDET - Free

BASE DE DONNEES - Site de Bertrand LIAUDET - Free

BASE DE DONNEES - Site de Bertrand LIAUDET - Free

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>BASE</strong> <strong>DE</strong> <strong>DONNEES</strong>TP n° 1 <strong>de</strong> SQL ORACLEseptembre 2006EPF - 3 ème ANNEE<strong>Bertrand</strong> LIAU<strong>DE</strong>TObjectif : Maîtriser le langage SQL et ses opérateurs <strong>de</strong> base.Description du sujet :Soit le schéma <strong>de</strong> base <strong>de</strong> données suivant:EMP(EMPNO, ENAME, JOB, HIREDATE, SAL, COMM, #<strong>DE</strong>PTNO, *MGR)<strong>DE</strong>PT(<strong>DE</strong>PTNO, DNAME, LOC)Les attributs ont la signification suivante :- EMPNO numéro <strong>de</strong> l’employé (un attribut <strong>de</strong> type : NUMBER(4) NOT NULL)- ENAME nom <strong>de</strong> l’employé (un attribut <strong>de</strong> type : VARCHAR2(10))- JOB intitulé du poste occupé (un attribut <strong>de</strong> type : VARCHAR2(9))- HIREDATE date d’embauche (un attribut <strong>de</strong> type : DATE)- SAL salaire <strong>de</strong> l’employé (un attribut <strong>de</strong> type : NUMBER(7, 2))- COMM commission (peut prendre la valeur nulle) (un attribut <strong>de</strong> type : NUMBER(7,2))- MGR chef <strong>de</strong> l’employé (un attribut <strong>de</strong> type : NUMBER(4))- <strong>DE</strong>PTNO numéro <strong>de</strong>s départements <strong>de</strong> l’entreprise (un attribut <strong>de</strong> type : NUMBER(2))- DNAME nom <strong>de</strong>s départements <strong>de</strong> l’entreprise (un attribut <strong>de</strong> type : VARCHAR2(14))- LOC villes où sont situés les départements (un attribut <strong>de</strong> type : VARCHAR2(13))Travail à faire en binôme1- Ecrire <strong>de</strong>s requêtes d’interrogation <strong>de</strong> la BD (voir la suite).2- Reconstruction <strong>de</strong> la BD (voir la suite).EtapesUtiliser SQLPLUSSQLPLUS est le logiciel qui permet d’interpréter les comman<strong>de</strong>s SQL.Il se trouve dans Logiciels / base <strong>de</strong> données / oracleQuand on démarre SQLPLUS :EPF - <strong>BASE</strong> <strong>DE</strong> DONNÉES - septembre 2006 - page 1 - <strong>Bertrand</strong> LIAU<strong>DE</strong>T


Nom d’utilisateur : S4A1 : S=constante. 4 : numéro <strong>de</strong> la sale. A : co<strong>de</strong> <strong>de</strong> A à C : numéro <strong>de</strong>srangées <strong>de</strong> la salle, du tableau au fond. 1 : numéro <strong>de</strong> la machine dans la rangée : <strong>de</strong> 1 à 4, <strong>de</strong> lafenêtre au mur.Mot <strong>de</strong> passe : i<strong>de</strong>mChaîne hôte : LK33 (ou bien LYCEE 60)Préparer l’environnement <strong>de</strong> travail : créer un dossier TP-SGBDDans le dossier, mettre :- Un raccourci vers SQLPLUS- Un raccourci vers le répertoire : e:/applis/oracle9/ora90/bin- Créer un fichier requetes.sql- Créer un raccourci <strong>de</strong> ce fichier- Mettre le fichier requetes.sql (pas le raccourci) dans e:/applis/oracle9/ora90/bin ATTENTION !!!!A la fin <strong>de</strong> la séance, il faut récupérer chez soi le fichier <strong>de</strong> requêtes !!!Fichier requetes.sqlOn y met la réponse aux questions posées, précédée par l’intitulé <strong>de</strong> la question, avec sonnuméro, suivi <strong>de</strong> PAUSE. REM permet <strong>de</strong> mettre <strong>de</strong>s commentaires. TTITLE permet d’afficherun texte.REM -----------------------------------------------------------------------------------REM TP <strong>de</strong> SQLREM -----------------------------------------------------------------------------------PAUSETTITLE '1 : Tous les départements avec leurs attributs :'SELECT etc…;REM -----------------------------------------------------------------------------------PAUSETTITLE '2 : Nombre <strong>de</strong> départements :'Etc…Commenter les affichages à l’écran : TTITLE ‘texte à afficher »Obtenir une pause à l’affichage : PAUSEMettre du commentaire : REM commentaires Exécution d’un fichier <strong>de</strong> requêtes sous SQL +Il suffit <strong>de</strong> taper :@nom_<strong>de</strong>_fichierpour que le fichier <strong>de</strong> requêtes s’exécute.Le fichier <strong>de</strong> requêtes est créé avec un éditeur <strong>de</strong> texte.EPF - <strong>BASE</strong> <strong>DE</strong> DONNÉES - septembre 2006 - page 2 - <strong>Bertrand</strong> LIAU<strong>DE</strong>T


Il faut que le fichier soit dans le répertoire e:/applis/oracle9/ora90/binPour le TP, on a intérêt à avoir <strong>de</strong>ux fenêtres : une pour SQL +, une pour l’éditeur. Tester chaque requête sous SQL +Une fois la requête écrite dans le fichier « .sql », copier la requête sous SQL +.Environnement <strong>de</strong> travailOuvrir <strong>de</strong>ux fenêtres :- une pour SQLPLUS- une pour le fichier <strong>de</strong> requetes (sous bloc-notes) Quelques requêtes utiles <strong>de</strong> SQL +Description d’une table créée : <strong>DE</strong>SC nomTableObtenir la liste <strong>de</strong>s tables, <strong>de</strong>s vues, <strong>de</strong>s in<strong>de</strong>x, etc. : Select * from all_catalog ;Select * from all_in<strong>de</strong>xes;Select * from all_users;Select * from all_views;1- Ecrire <strong>de</strong>s requêtes d’interrogation <strong>de</strong> la BDOn mettra toutes ces requêtes dans le fichier reqtp.sql1. Tous les départements avec leurs attributsAnalyser les résultats. Que constatez-vous ? Comment s’affichent-ils ?2. Tous les employés avec leurs attributsAnalyser les résultats. Que constatez-vous ? Comment s’affichent-ils ?3. Nombre d’employés <strong>de</strong> la sociétéComment pouvez-vous vérifier la véracité du résultat ?4. Tous les employés avec leurs salairesJustifier la présence et l’absence <strong>de</strong> chaque attribut projeté et non-projeté.5. Tous les employés du département 30 avec tous les attributsJustifier la présence et l’absence <strong>de</strong> chaque attribut projeté et non-projeté.6. Tous les employés du département 30Justifier la présence et l’absence <strong>de</strong> chaque attribut projeté et non-projeté.7. Tous les jobs <strong>de</strong> la sociétéComment éviter les doublons ?Comment pouvez-vous vérifier la véracité du résultat ?8. Combien <strong>de</strong> jobs différents dans la sociétéComment pouvez-vous vérifier la véracité du résultat ?9. Tous les managers <strong>de</strong>s départements 20 et 30Comment pouvez-vous vérifier la véracité du résultat ?EPF - <strong>BASE</strong> <strong>DE</strong> DONNÉES - septembre 2006 - page 3 - <strong>Bertrand</strong> LIAU<strong>DE</strong>T


10. Tous les employés ne travaillant pas dans le département 30 et qui soit ont un salaire > à 2800, soitsont manager.11. Tous les numéros <strong>de</strong> département <strong>de</strong>s départements non vi<strong>de</strong>s12. Tous les numéros d’employés <strong>de</strong>s employés qui sont supérieurs hiérarchiques13. Tous les salaires, commissions et totaux (salaire + commission) <strong>de</strong>s ven<strong>de</strong>urs14. Combien <strong>de</strong> ven<strong>de</strong>urs dans la société15. Salaires min, moyen et max <strong>de</strong> la société16. Nombres d'employés et salaires min et moyen <strong>de</strong> chaque profession17. Salaires moyens <strong>de</strong>s ven<strong>de</strong>urs18. Numéro <strong>de</strong>s départements dans lesquels le salaire max dépasse 250019. Nombre d'employés et salaire moyen pour chaque profession20. Quels sont les départements dans lesquels travaillent plus <strong>de</strong> <strong>de</strong>ux personnes et quel est le salairemoyen dans ces départements:2- Reconstruction <strong>de</strong> la BDIl s’agit d’écrire les requêtes qui permettent <strong>de</strong> créer la BD <strong>de</strong>s employés et <strong>de</strong>s départements.Ces requêtes seront enregistrées dans <strong>de</strong>s fichiers <strong>de</strong> la manière suivante :• Récupérez le fichier « Base <strong>de</strong> données <strong>de</strong>s employés et <strong>de</strong>s départements » danshttp://bliau<strong>de</strong>t.free.fr, répertoire Cours d’informatique / EPF / 3 ème année• Décomposez ce fichier en trois fichiers : Dans le fichier tabletp.sql, mettez les requêtes <strong>de</strong> création <strong>de</strong>s tables <strong>de</strong>s employés et <strong>de</strong>sdépartements. Vous pouvez vous servir du polycopié <strong>de</strong> cours. Dans le fichier tupletp.sql, mettez les requêtes qui permettent <strong>de</strong> créer tous les tuples <strong>de</strong> laBD. La liste <strong>de</strong>s valeurs est donnée par l’interrogation <strong>de</strong> la BD. Vous pouvez vous servir dupolycopié <strong>de</strong> cours. Dans le fichier droptp.sql, mettez les requêtes qui permettent <strong>de</strong> détruire les tables <strong>de</strong> la BD.• Sous SQL + : lancer droptp.sql. Comment vérifier que les tables n’existent plus ?• Sous SQL + : lancer tabletp.sql. Comment vérifier que les tables existent et sont vi<strong>de</strong>s ?• Sous SQL + : lancer tupletp.sql. Comment vérifier que les tables existent et sont bien remplies ?• Dans le fichier faitout.sql, mettez les comman<strong>de</strong>s :Lancer fatout.sql. Que constatez-vous. ATTENTION !!!!@droptp.sql@tabletp.sql@tupletp.sqlLes fichiers « .sql » lancés sous SQL + doivent être dans le bon répertoire pour être trouvés par SQL+.Il est probable qu’il faille que ces fichiers soient dans le répertoire : e:/applis/oracle9/ora90/binEPF - <strong>BASE</strong> <strong>DE</strong> DONNÉES - septembre 2006 - page 4 - <strong>Bertrand</strong> LIAU<strong>DE</strong>T


En cas <strong>de</strong> difficulté persistante, on peut toujours faire un copier-coller du contenu <strong>de</strong>s fichiers « .sql »directement dans SQL+.3- Sauvegar<strong>de</strong> <strong>de</strong>s résultats dans un fichier1) Sous SQL + , faire : SPOOL nomfichier avant <strong>de</strong> lancer le fichier <strong>de</strong> requetes2) Quitter SQL + pour obtenir le fichier.4- Pour les plus motivés : écrire les requêtes d’interrogation <strong>de</strong> la BDOn mettra toutes ces requêtes à la suite dans le fichier reqtp.sql21. Nombre <strong>de</strong> départements22. Tous les employés ayant une commission23. Salaires moyens <strong>de</strong> tous les employés en tenant compte <strong>de</strong>s commissions24. Salaires max dans chaque département (défini par son numéro)25. Tous les employés dont le salaire est compris entre 1000 et 200026. Tous les employés qui ne sont pas managers et qui sont embauchés en 1981.27. Tous les employés ayant une commission.28. Tous les salaires, commissions et totaux (salaire + commission)29. Nombre d'employés par département et profession avec le salaire moyen, min et max30. Tous les employés ayant un A en troisième lettre <strong>de</strong> leurs noms31. Tous les employés ayant au moins <strong>de</strong>ux A dans leurs noms32. Quatre <strong>de</strong>rnières lettres du nom <strong>de</strong> chaque employéEPF - <strong>BASE</strong> <strong>DE</strong> DONNÉES - septembre 2006 - page 5 - <strong>Bertrand</strong> LIAU<strong>DE</strong>T

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!