Vous êtes sur la page 1sur 4

Bases de donnes relationnelles Premire approche dun SGBD relationnel (MySQL) Textes des Travaux pratiques Table des

matires
1 Objectifs et organisation du TP ------------------------------------------------------- 2 1.1 Accs MySQL----------------------------------------------------------------- 2 1.1.1 Sous windows----------------------------------------------------------------- 2 1.1.2 Sous Unix ---------------------------------------------------------------------- 2 2 3 Dcouverte de la base de donnes -------------------------------------------------- 2 Dcouverte de SQL ------------------------------------------------------------------------ 3 3.1 3.2 Du franais au SQL ------------------------------------------------------------ 3 A vous de jouer !---------------------------------------------------------------- 4

Merci de communiquer toute correction ou remarque sur ce document : Philippe.Picouet@enst-bretagne.fr.

Philippe Picouet IASC - Enst Bretagne

Objectifs et organisation du TP

Lobjectif de ce TP est de vous familiariser avec un SGBD, le principe de requte et le langage SQL. Ce TP est ralis sur le SGBD MySQL dont lutilisation est dcrite succinctement dans la suite de cette section. Les coordonnes du compte MySQL (login, password, serveur, base) utiliser dans ce TP vous seront communiques en dbut de sance.
1.1
1.1.1

Accs MySQL
Sous windows

Pour lancer le serveur mysql install sur votre machine, lancer une fentre de commande, puis dplacez vous dans le rpertoire bin de linstallation de Mysql et tapez la commande suivante : mysqld-nt --standalone Puis, dans une autre fentre de commande, lancez linterprteur SQL sur votre base avec votre login mysql mysql u LOGIN p Une fois sous linterprteur SQL, slectionnez la base de travail par la commande use BASE ; Vous pouvez alors crer le schma et les donnes en excutant les commandes incluses dans le fichier preparebase.sql disponible sous : http://perso.enst-bretagne.fr/~picouet/french/sgbd/mysql/preparebase.sql
1.1.2 Sous Unix

Un serveur Mysql est install sur la machine tp-web et accessible partir des machines unix de lcole. Une fois charg les variables denvironnement ncessaire lutilisation de Mysql (SETUP MYSQL), vous pouvez lancer linterprteur par la commande suivante : PROMPT> mysql u LOGIN p h SERVEUR BASE lance un interprteur SQL sur votre base.
2 Dcouverte de la base de donnes

Votre base de donnes contient les deux relations EMP et DEPT (attention, mysql est sensible aux majuscules / minuscules). Pour dcouvrir plus en dtail les attributs de ces deux relations, vous pouvez essayer les commandes suivantes et rflchir sur la signification des attributs et leur utilit (en particulier les attributs , EMPNO, MGR et DEPTNO. Les commandes permettant de connatre les attributs des relations sont : SHOW COLUMNS FROM EMP ; SHOW COLUMNS FROM DEPT;
Philippe Picouet IASC - Enst Bretagne 2

Dcouverte de SQL

3.1

Du franais au SQL

Pour chaque requte en franais, examinez ou testez les diffrentes expressions SQL proposes et justifiez ou informez leur correction. Donner le nom, le numro et le travail des Employs travaillant dans le dpartement n10 o Select ENAME, EMPNO, JOB from EMP; o Select ENAME, MGR, JOB from EMP where DEPTNO = 10; o Select * from EMP where DEPTNO = 10; o Select ENAME, EMPNO , JOB from EMP where DEPTNO = 10; o Select ENAME EMPNO JOB from EMP where DEPTNO = 10; Donner le nom des Employs et leur dpartement daffectation o Select ENAME, DNAME from EMP; o Select ENAME, DNAME from EMP, DEPT; o Select ENAME, DNAME from EMP, DEPT where EMP.EMPNO = DEPT.DEPTNO; o Select ENAME, DNAME from EMP, DEPT where EMP.DEPTNO = DEPT. DEPTNO; Donner le nom des Employs qui sont SALESMAN ou CLERK o Select ENAME from EMP where JOB = SALESMAN or JOB = CLERK; o Select ENAME from EMP where JOB IN (CLERK, SALESMAN); o Select ENAME from EMP where EMPNO in (select EMPNO from EMP where JOB = CLERK) or EMPNO in (select EMPNO from EMP where JOB = SALESMAN); Donner la liste des Employs qui sont SALESMAN et CLERK o Select ENAME from EMP where JOB = SALESMAN and JOB = CLERK; o Select the_clerk.ENAME from EMP the_clerk, EMP the_salesman where the_clerk.JOB = CLERK and the_salesman.JOB = SALESMAN; o Select ENAME from EMP the_clerk, EMP the_salesman where the_clerk.EMPNO = the_salesman.EMPNO and the_clerk.JOB = CLERK and the_salesman.JOB = SALESMAN; o Select the_clerk.ENAME from EMP the_clerk, EMP the_salesman where the_clerk.EMPNO = the_salesman.EMPNO and the_clerk.JOB = CLERK and the_salesman.JOB = SALESMAN; Donner pour chaque Employ, son nom et celui de son suprieur hirarchique o Select the_employee. ENAME, the_employee.MGR from EMP the_employee;
3

Philippe Picouet IASC - Enst Bretagne

o Select the_employee.ENAME, the_chief.ENAME from EMP the_employee, EMP the_chief where the_chief.JOB = MANAGER; o Select the_employee.ENAME, the_chief.ENAME from EMP the_employee, EMP the_chief where the_employee.MGR = the_chief.EMPNO; o Select the_employee.ENAME, the_chief.ENAME from EMP the_employee, EMP the_chief where the_chief.MGR = the_employee.EMPNO; Donner les numros des Employs qui dirigent quelquun o Select MGR from EMP; o Select distinct MGR from EMP; o Select MGR from EMP order by MGR; o Select MGR from EMP where MGR is not null order by DEPTNO; o Select the_employee.MGR from EMP the_employee, EMP the_chief where the_employee.MGR=the_chief.EMPNO;
3.2 A vous de jouer !

Rpondez maintenant la requte suivante (en tentant de ne pas regarder les prcdentes) Donner le nom et le dpartement dappartenance des Employs qui dirigent au moins un autre Employ.

Philippe Picouet IASC - Enst Bretagne

Vous aimerez peut-être aussi