Vous êtes sur la page 1sur 3

Examen SQL MASTER 2 SIAD Parcours BIMST

Université de LILLE I

Merci de rendre la solution sur un fichier texte qui me sera remis sur ma clef USB et envoyé
par mail à lardeur.francois@gmail.com . Ce fichier sera nommé avec votre nom de famille
et votre prénom. La référence de chaque exercice sera indiquée. Veuillez ne mettre que le
script SQL, le résultat n’est pas utile. De plus, n’oubliez pas d’écrire des requêtes lisibles et
bien indentées.

Première partie
Sur les tables emp et serv du cours :
On considérera que le revenu annuel est la somme du salaire et de la commission.

Questions à 0,25 point (2 points)


1 Combien d'employés ont un revenu annuel supérieur à 30000 et sont directeurs ?
2 Liste des services sans doublon par ordre alphabétique

3 Nom et Prénom des employés séparés par un | embauchés en décembre


Nom et Prénom des employés dont le prénom contient au moins 6 caractères dont un 'D' et
4 un 'A'
Quels sont les numéros des employés n'étant ni DIRECTEUR ni COMPTABLE, travaillant à
5 LILLE, et ayant un salaire entre 10 000 € et 20 000 € ?
6 Somme des salaires par numéro de services arrondis à l'euro supérieur
Sélectionner les employés embauchés le même jour de la semaine que LAVARE, en
7 excluant LAVARE
8 Nombre de lettres cumulé de tous les noms des employés ?
Questions à 0,5 point (5 points)
Liste des employés dont le supérieur du supérieur (N+2) est 1000. Triés par ordre
9 décroissant de ville puis par ordre croissant de nom et prénom.
10 Nom, Prénom et salaire des employés gagnant plus du double du plus petit salaire.
La première lettre de mon emploi est 'V', la deuxième lettre de mon prénom est 'O', mon nom
11 a 6 lettres et je travaille à Paris. Qui suis-je ?
Nombre de jours de différences entre la première date d'embauche et la dernière date
12 d'embauche ?

13 Qui a été embauché entre le 15 du mois et la fin du mois ?


Faire une requête paramétrable qui permet de connaître les numéros d'employés des gens
14 qui ont le même supérieur. Le paramètre sera le numéro du supérieur.
Jean Dupont et moi avons le même supérieur mais mon salaire est inférieur à son salaire et
15 nous n'avons pas le même prénom. Qui suis-je ?
Quelle est la différence d'ancienneté (en années) entre le plus jeune embauché et le plus
16 ancien des employés ?

17 Quels sont les employés qui travaillent dans une ville se terminant par une voyelle

18 Refaire la requête 17 en utilisant un « exists »


Questions à 0,75 point (3 points)
Faire une requête qui donne le nombre de mois (en entier) d’une personne depuis sa
naissance.
19 La date sera entrée au format DD/MM/YYYY . Cette requête est donc paramétrable.
Additionner tous les chiffres du numéro d'un employé (ex : 1603 donne 1+6+0+3=10) et
20 trouver celui qui vaut le nombre de lettres du NOM.
Donner pour tous les employés le nombre de personnes directement gérées.
Par exemple, LEROY est supérieur de 6 personnes et DUMONT est supérieur de 0
21 personne.
22 Dans quelle(s) ville(s) y-a-t-il le plus de supérieurs ?
Année 2015-2016 Page 1/3
Examen SQL MASTER 2 SIAD Parcours BIMST
Université de LILLE I

Deuxième partie
On étudie le système d’information d’un site web permettant le co-voiturage entre villes de France. Cette
application gère des abonnés dont on mémorise le nom, le prénom, le mail et à qui on attribue un identifiant.
Un abonné peut proposer un trajet allant d’une ville A à une ville B à une date donnée (il ne précise pas
l’heure). On mémorise par trajet un nombre de places, le nombre de personnes que l’abonné peut emmener dans
sa voiture. Un abonné peut aussi participer au trajet en tant que passager. Dans ce cas le site lui permet de
signaler sa participation.

On propose de créer les tables suivantes :

ABONNE Table des Abonnés


*ID_ABONNE Numéro de l’abonné sur 5 chiffres
NOM Nom de l’abonné sur 50 caractères, champ obligatoire
PRENOM Prénom de l’abonné sur 50 caractères, champ facultatif
EMAIL Email de l’abonné sur 50 caractères, champ obligatoire

VILLE Tables des villes


*ID_VILLE Numéro de la ville sur 3 chiffres
NOM_VILLE Nom de la ville sur 20 caractères, obligatoire

TRAJET Tables des trajets


*ID_TRAJET Numéro du trajet sur 5 caractères
ID_ABONNE Numéro de l’abonné effectuant le trajet sur 5 chiffres
DATE_TRAJET Date du trajet
NB_PLACES Nombre de places disponibles sur le trajet sur 2 chiffres
ID_VILLE_DEPART Numéro de la ville de départ sur 3 chiffres
ID_VILLE_ARRIVEE Numéro de la ville d’arrivée sur 3 chiffres

PARTICIPATION Tables des participations


*ID_ABONNE Numéro de l’abonné participant au trajet sur 5 chiffres
*ID_TRAJET Numéro du trajet sur 5 caractères

1. Créer les 4 tables en tenant compte des clefs primaires (* devant le nom des colonnes) et des
descriptions données
2. Définir les clefs étrangères sachant :
i. qu’un trajet ne peut concerner qu’un abonné existant, ainsi qu’une ville de départ et
d’arrivée existantes.
ii. Une participation ne peut concerner qu’un abonné existant et un trajet existant.

3. Insérer les données dans ces tables à partir du fichier sql fourni (ScriptExercice2.sql sur moodle)
4. Insérer un nouvel abonné portant votre nom, prénom, mail. Cet abonné propose un trajet le 02/01/2016
avec 4 places au départ de LILLE et à destination de PARIS. Il souhaite participer en tant que passager
au trajet du 18/12/2015 au départ de MARSEILLE et à destination de LILLE.
5. Faire une requête qui indique pour chaque ville le nombre de partants. Pour une ville v, ce nombre sera
0 si aucun trajet ne part de v.
6. Faire une requête qui indique les trajets au départ de Lille pour lesquels il reste de la place avec une
date de trajet comprise entre le 20/12/2015 et le 25/12/2015.
7. Faire une requête qui indique les abonnés qui n’ont jamais proposé de trajet (proposer 2 solutions)
8. L’abonné d’identifiant 5 change d’avis et recule d’une semaine le trajet proposé au départ de lille le 26
décembre 2015 Il veut donc faire son trajet le 10 janvier 2016. Donner l’instruction update qui permet
de faire cette modification, en supposant qu’il n’y a effectivement qu’un seul trajet au départ de LILLE
proposé par cet abonné le 26 décembre 2015.
9. L’abonne VASSEUR se désinscrit. Il faut donc supprimer toutes les informations le concernant. Faire
les requêtes nécessaires. Validez.
10. Le site web ferme. Vider toutes les tables.
Année 2015-2016 Page 2/3
Examen SQL MASTER 2 SIAD Parcours BIMST
Université de LILLE I

Troisième partie (PL/SQL)

Un palindrome est un mot qui peut s’écrire et se lire dans les deux sens. Par exemple SERRES ou KAYAK
peuvent se de lire de gauche à droite ou de droite à gauche.

1. Faire une fonction qui vérifie si un mot ou une phrase est un palindrome. Pour analyser les phrases, on
enlèvera tous les espaces. La fonction retournera OUI si cela est vrai, sinon elle retournera NON.
2. Combien d'employés ont pour nom un palindrome ?
3. La phrase « LA MERE PUCE RECUPERE MAL » est-elle un palindrome ?

Année 2015-2016 Page 3/3

Vous aimerez peut-être aussi