1 / 32

Exercice #1

Exercice #1. Retrouvez le numéro, le nom et le lieu de chaque projet ainsi que le numéro du département qui les contrôle.  NUMÉRO, NOM, LIEU, DNUM ( PROJET ) SELECT * FROM PROJET. Exercice #2. Retrouvez le nom des départements qui sont contrôlés par « Pierre St-Jean ».

claude
Download Presentation

Exercice #1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Exercice #1 • Retrouvez le numéro, le nom et le lieu de chaque projet ainsi que le numéro du département qui les contrôle. • NUMÉRO, NOM, LIEU, DNUM( PROJET ) • SELECT * FROM PROJET

  2. Exercice #2 • Retrouvez le nom des départements qui sont contrôlés par « Pierre St-Jean ». • DÉPARTEMENT.NOM, ( DEPARTEMENT |X|NAS_DIR = NAS  EMPLOYE.NOM = ‘ST-JEAN’  EMPLOYE.PRÉNOM = ‘PIERRE’ EMPLOYE )

  3. Exercice #2 • Retrouvez le nom des départements qui sont contrôlés par « Pierre St-Jean ». • SELECT NOM FROM DEPARTEMENT WHERE NAS_DIR IS ( SELECT NAS FROM EMPLOYÉ WHERE NOM LIKE ‘ST-JEAN’ AND PRÉNOM LIKE ‘PIERRE’ )

  4. Exercice #3 • Retrouvez les nom et prénom de tous les employés ayant un prénom composé. (Le trait d’union sépare les prénoms composés ) •  NOM, PRÉNOM (PRÉNOM LIKE ‘%-%’ (EMPLOYE) ) • SELECT NOM, PRÉNOM FROM EMPLOYÉ WHERE PRÉNOM LIKE ‘%-%’

  5. Exercice #4 • Retrouvez les nom et prénom des employés ayant un deuxième prénom. (Ex. : John B Smith ) •  NOM, PRÉNOM ( NOM_MI  ‘ ’ (EMPLOYE) ) • SELECT NOM, PRÉNOM FROM EMPLOYÉ WHERE NOM_MI IS NOT NULL

  6. Exercice #5 • Déterminez ce que serait le salaire de chaque employé du département « CONCEPTION » si celui-ci était doublé. Retrouvez les nom, prénom et le nouveau salaire. •  EMPLOYE.NOM, PRÉNOM, SALAIRE*2 (EMPLOYE |X|DNO = NUMÉRO  DEPARTEMENT.NOM = ‘CONCEPTION’ DEPARTEMENT) • SELECT E.NOM, PRÉNOM, SALAIRE*2 FROM EMPLOYÉ E, DEPARTEMENT D WHERE DNO = NUMÉRO AND D.NOM = ‘CONCEPTION’

  7. Exercice #6 • Retrouvez le nom de tous les dépendants qui sont nés le même jour que l’employé de qui ils dépendent. • DÉPENDANT.NOM ( EMPLOYE |X|NAS = ENAS  DÉPENDANT.DATE_N = EMPLOYE.DATE_N DÉPENDANT ) • SELECT D.NOM FROM EMPLOYÉ E, DÉPENDANT D WHERE NAS = ENAS AND E.DATE_N = D.DATE_N

  8. Exercice #7 • Retrouvez les nom et prénom de toutes les femmes qui travaillent sur le projet numéro 7. ( ‘F’ = Féminin ) •  EMPLOYE.NOM, PRÉNOM( EMPLOYE |X|NAS = ENAS  SEXE = ‘F’  PNUM = 7 TRAVAILLE_SUR ) • SELECT NOM, PRÉNOM FROM EMPLOYÉ, TRAVAILLE_SUR WHERE NAS = ENAS AND SEXE = ‘F’ AND PNUM = 7

  9. Exercice #8 • Pour tous les départements ayant plus de 5 femmes, retrouvez le nom de ces départements ainsi que le nombre de femmes qui y travaillent. • NB_F_DEPT DNAME COUNT NAS( EMPLOYE |X|DNO = NUMÉRO  SEXE = ‘F’ DEPARTEMENT ) •  COUNT_NAS > 5 (NB_F_DEPT) • SELECT D.NOM, COUNT(*) FROM EMPLOYÉ, DEPARTEMENT D WHERE DNO = NUMÉRO AND SEXE = ‘F’ GROUP BY D.NOM HAVING COUNT(*) > 5

  10. Exercice #9 • Pour chaque employé travaillant sur plus de deux projets, retrouvez le NAS, le nom, le prénom et le nombre total d’heures travaillées de ceux qui ont travaillé moins de 50 heures. • EMP_PROJSENAS COUNT ENAS, SUM HEURES(TRAVAILLE_SUR) •  NAS, NOM, PRÉNOM, SUM_HEURES( EMPLOYE |X|COUNT_ENAS > 2  SUM_HEURES < 50  ENAS = NAS EMP_PROJS )

  11. Exercice #9 • Pour chaque employé travaillant sur plus de deux projets, retrouvez le NAS, le nom, le prénom et le nombre total d’heures travaillées de ceux qui ont travaillé moins de 50 heures. • SELECT NAS, NOM, PRÉNOM, SUM( HEURES ) FROM EMPLOYÉ , TRAVAILLE_SUR WHERE NAS = ENAS GROUP BY NAS, NOM, PRÉNOM HAVING SUM( HEURES ) < 50 AND COUNT(*) > 2

  12. Exercice #10 • Retrouvez le numéro des départements qui ont plus de 5 employés. • NB_EMP_DEPT(DNO, NB_EMP) DNO COUNT NAS( DEPARTEMENT |X|DNO = NUMÉRO EMPLOYE ) •  DNO (NB_EMP > 5 NB_EMP_DEPT )

  13. Exercice #10 • Retrouvez le numéro des départements qui ont plus de 5 employés. • a) Sans utiliser l’instruction HAVING • SELECT NUMÉRO FROM DEPARTEMENT WHERE ( SELECT COUNT(*) FROM EMPLOYÉ WHERE DNO = NUMÉRO ) > 5 • b) En utilisant l’instruction HAVING • SELECT NUMÉRO FROM DEPARTEMENT, EMPLOYÉ WHERE NUMÉRO = DNO GROUP BY NUMÉRO HAVING COUNT(*) > 5

  14. Exercice #11 • Listez les noms des employés qui ont au moins un dépendant du même sexe qu'eux. •  EMPLOYE.NOM ( EMPLOYE |X|NAS = ENAS  DÉPENDANT.SEXE = EMPLOYE.SEXEDÉPENDANT ) • SELECT NOM, PRÉNOM FROM EMPLOYÉ E WHERE EXIST ( SELECT * FROM DEPENDANT WHERE NAS = ENAS AND SEXE = E.SEXE )

  15. Exercice #12 • Trouvez les noms des employés qui ne sont pas directement supervisés par "Albert Einstein". • NAS_AE NAS( NOM = ‘EINSTEIN’ PRÉNOM =‘ALBERT’EMPLOYE) • EMP_NAS_AE  NOM, NAS_AE (NAS_AE X EMPLOYE ) • EMP_NAS_SUP  NOM, NAS_SUP ( EMPLOYE ) •  NOM ( EMP_NAS_SUP - EMP_NAS_AE )

  16. Exercice #12 • Trouvez les noms des employés qui ne sont pas directement supervisés par "Albert Einstein". • SELECT NOM,PRÉNOM FROM EMPLOYÉ WHERE NAS_SUP IS NOT ( SELECT NAS FROM EMPLOYE WHERE NOM LIKE ‘EINSTEIN’ AND PRÉNOM LIKE ‘ALBERT’ )

  17. Exercice #13 • Retrouvez les noms des employés qui travaillent sur aucun projet. • TRAV_ENAS  ENAS, NOM ( TRAVAILLE_SUR |X|NAS=ENAS EMPLOYE ) • EMP_NAS_NOM  NAS, NOM( EMPLOYE ) •  NOM ( EMP_NAS_NOM – TRAV_NAS )

  18. Exercice #13 • Retrouvez les noms des employés qui travaillent sur aucun projet. • SELECT NOM,PRÉNOM FROM EMPLOYÉ WHERE NOT EXIST ( SELECT * FROM TRAVAILLE_SUR WHERE NAS = ENAS )

  19. Exercice #14 • Pour chaque employé, retrouvez les nom et prénom des employés ainsi que leur nombre de dépendants. • NB_F_DEPT NOM, PRÉNOM COUNT NAS( EMPLOYE |X|ENAS = NAS DÉPENDANT ) • SELECT E.NOM, PRÉNOM, COUNT(*) FROM EMPLOYÉ E, DÉPENDANT WHERE NAS = ENAS GROUP BY E.NOM, PRÉNOM

  20. Exercice #15 • Recherchez les noms des employés du département “ Recherche ” qui ont travaillé moins de 10 heures sur le projet numéro 5. • EMP_D_RECH  NAS, EMPLOYE.NOM ( • EMPLOYE |X|NUMÉRO = NAS  DEPARTEMENT.NOM = ‘RECHERCHE’ DEPARTEMENT ) •  NOM( EMP_D_RECH |X|NAS = ENAS  HEURES < 10  PNUM = 5 TRAVAILLE_SUR )

  21. Exercice #15 • Recherchez les noms des employés du département “ Recherche ” qui ont travaillé moins de 10 heures sur le projet numéro 5. • SELECT E.NOM, PRÉNOM FROM EMPLOYÉ E, DEPARTEMENT D, TRAVAILLE_SUR WHERE DNO= NUMÉRO AND NAS = ENAS AND D.NOM = ‘Recherche’ AND PNUM = 5 AND HEURES < 10

  22. Exercice #16 • Listez les noms des employés qui travaillent sur au moins un projet ayant pour lieu “ Houston ”. • P_HOUSTON  ENAS, PNUM ( PROJET |X|NUMÉRO = PNUM  NOM = ‘Houston’ TRAVAILLE_SUR ) •  NOM, PRÉNOM ( P_HOUSTON |X|NAS = ENASEMPLOYE )

  23. Exercice #16 • Listez les noms des employés qui travaillent sur au moins un projet ayant pour lieu “ Houston ”. • SELECT E.NOM, PRÉNOM FROM EMPLOYÉ E WHERE EXIST ( SELECT * FROM PROJET P, TRAVAILLE_SUR WHERE ENAS = NAS AND PNUM = NUMÉRO AND LIEU LIKE ‘Houston’ )

  24. Exercice #17 • Listez le nom de chaque projet avec le nom du département qui le contrôle ainsi que le nombre d’employés qui travaille dessus. • P_NB_EMPL( NUMÉRO, NOM, DNUM, NB_EMPL) NUMÉRO, NOM, DNUM COUNT ENAS( PROJET |X|NUMÉRO = PNUM TRAVAILLE_SUR ) •  P_NB_EMPL.NOM, DEPARTEMENT.NOM, NB_EMPL( P_NB_EMPL |X| DNUM = DEPARTEMENT.NUMÉRO DEPARTEMENT )

  25. Exercice #17 • Listez le nom de chaque projet avec le nom du département qui le contrôle ainsi que le nombre d’employés qui travaille dessus. • SELECT P.NOM, D.NOM, COUNT(*) FROM PROJET P, DEPARTEMENT D, TRAVAILLE_SUR WHERE DNUM = D.NUMÉRO AND PNUM = P.NUMÉRO GROUP BY P.NOM, D.NOM

  26. Exercice #18 • Retrouvez le nom et le lieu de chaque département ainsi que le nombre de projet qu’il contrôle. • DEPT_NB_PROJ(DNUM, DNOM, NB_PROJ)  DEPARTEMENT.NUMÉRO, DEPARTEMENT. NOM COUNT PROJET.NUMÉRO ( DEPARTEMENT |X| DEPARTEMENT.NUMÉRO = DNUM PROJET) •  DNOM, DLIEU, NB_PROJ( DEPT_NB_PROJ |X|DNUM=DNUMÉRO LIEU_DEPT )

  27. Exercice #18 • Retrouvez le nom et le lieu de chaque département ainsi que le nombre de projet qu’il contrôle. • SELECT D.NOM, DLIEU, COUNT(*) FROM PROJET P, DEPARTEMENT D, LIEU_DEPT WHERE DNUM = D.NUMÉRO AND DNUMÉRO = D.NUMÉRO GROUP BY D.NOM, DLIEU

  28. Exercice #19 • Retrouvez le nom et le lieu de chaque département ainsi que le nombre d’employés qu’il contienne. • DEPT_NB_EMPL(DNUM, DNOM, NB_EMPL) NUMÉRO, DEPARTEMENT. NOM COUNT NAS ( DEPARTEMENT |X| NUMÉRO = DNO EMPLOYE ) •  DNOM, DLIEU, NB_EMPL( DEPT_NB_EMPL |X| DNUM=DNUMÉROLIEU_DEPT )

  29. Exercice #19 • Retrouvez le nom et le lieu de chaque département ainsi que le nombre d’employés qu’il contienne. • SELECT D.NOM, DLIEU, COUNT(*) FROM EMPLOYE, DEPARTEMENT D, LIEU_DEPT WHERE DNO = NUMÉRO AND DNUMÉRO = NUMÉRO GROUP BY D.NOM, DLIEU

  30. Exercice #20 • Pour chaque département ayant plus de 10 employés, retrouvez leur nom et leur lieu ainsi que le nombre de projet qu’il contrôle. • DEPT_NB_EMPL(DNUMÉRO, DNOM, NB_EMPL) NUMÉRO, DEPARTEMENT. NOM COUNT NAS ( DEPARTEMENT |X| NUMÉRO = DNO EMPLOYE ) • DEPT_NB_PROJ(DNUM, DNOM, NB_PROJ) DNUMÉRO, DNOM COUNT PROJET.NUMÉRO ( DEPT_NB_EMPL |X| DNUMÉRO = DNUM NB_EMPL > 10 PROJET) • (suite)

  31. Exercice #20 •  DNOM, DLIEU, NB_PROJ( DEPT_NB_PROJ |X|DNUM=DNUMÉRO LIEU_DEPT )

  32. Exercice #20 • Pour chaque département ayant plus de 10 employés, retrouvez leur nom et leur lieu ainsi que le nombre de projet qu’il contrôle. • SELECT D.NOM, DLIEU, COUNT(*) FROM PROJET P, DEPARTEMENT D, LIEU_DEPT WHERE DNUM = D.NUMÉRO AND DNUMÉRO = D.NUMÉRO AND ( SELECT COUNT(*) FROM EMPLOYE WHERE DNO = D.NUMÉRO) > 10 • GROUP BY D.NOM, DLIEU

More Related