TD de Bases de données : requêtes en SQL
Soit la base de données relationnelle suivante :
SQL> desc service
 Name                   Null?    Type
 ----------- ---- --
 CDSRV                  NOT NULL CHAR(2)
 NOM                    NOT NULL VARCHAR2(25)
 LOCALIS                NOT NULL VARCHAR2(20)
 BATIM                  NOT NULL VARCHAR2(10)
 TLPHN                  NOT NULL CHAR(10)
SQL> desc personnel
 Name                   Null?    Type
 ----------- ---- --
 CDPRS                  NOT NULL CHAR(3)
 NOM                    NOT NULL VARCHAR2(15)
 PRNM                   NOT NULL VARCHAR2(15)
 SX                     NOT NULL CHAR(1)
 DATNAIS                NOT NULL DATE
 QUALIF                 NOT NULL VARCHAR2(25)
 CDSRV                  NOT NULL CHAR(2)
 DATTIT                          DATE
 CDSPR                           CHAR(3)
 TRTMNT                          NUMBER(8,2)
 VACTN                           NUMBER(8,2)
SQL> desc patient
 Name                    Null?    Type
 ------------ ---- --
 CDPAT                   NOT NULL CHAR(3)
 NOM                     NOT NULL VARCHAR2(15)
 PRNM                    NOT NULL VARCHAR2(15)
 SX                      NOT NULL CHAR(1)
 DATNAIS                 NOT NULL DATE
 INSEE                            CHAR(13)
 PROF                    NOT NULL VARCHAR2(25)


SQL> desc consultation
 Name                    Null?    Type
 ------------ ---- --
 CDPAT                   NOT NULL CHAR(3)
 CDPRS                   NOT NULL CHAR(3)
 DATCLT                           DATE

  1. Affichez tous les services (noms et localisation des services).
  2. Quels sont les noms des personnels de qualification 'DOCTEUR'?
  3. Quel est le nombre maximum de consultations pour un membre du personnel?
  4. Nom et qualification des personnes n'ayant pas de supérieur hiérarchique?
  5. Classez les patients selon leur nombre de consultations (nom, prénom, nombre de consultations)
  6. Combien y-a-t'il de service ne possèdant pas de 'CHEF DE SERVICE'?
  7. Liste des services avec leurs employés (nom du service, nom de l'employé) (En utilisant des commandes de formatage vous n'afficherez le service qu'une fois, puis vous compterez le nombre de personne par service).
  8. Affichez la structure hiérarchique de l'hopital : (niveau dans la hiérarchie, nom, prénom, sexe : homme ou femme, date de naissance, nom du service, qualification de l'employé, supérieur : nom et prénom, qualification du supérieur
    1. pour tout l'hopital
    2. pour le service de CARDIOLOGIE
    3. pour le service de CARDIOLOGIE en ne mentionnant que les personnes dont le supérieur est aussi en CARDIOLOGIE
    4. pour tout l'hopital en ne mentionnant pas les subalternes des CHEFs INFIRMIEREs


Florence Bannay 2001-11-30