Filiere IDD&BD` Module SQL Oracle Mars 03, 2025
QCM : Cochez d’une croix la\les proposition\s correcte\s
(1/2)
1. Donnée semi-structurée :
Un fichier XML
Un fichier JSON :
(1/2)
2. Quelle est la caracteristique principale des donnees non structurees
Elles ne suivent pas un modèle de données prédéfini
3. Dans un modele Entit` e-Relation, qu’est-ce qu’une entit´ e ?´ (1/2)
Un objet ou un concept du monde réel pouvant être stocké
4. Quelle est la fonction principale d’une relation dans un modèle Entite-Relation ?´ (1/2)
Définir un lien entre deux ou plusieurs entités
Exercice de Pratique : Requêtes SQL sur la base de données HR d’Oracle
Please go on to the next page...
Filiere IDD&BD` Module SQL Oracle Mars 03, 2025
Figure 1: Schema HR sous Oracle SQL´
1. Donner la requête qui permet d’afficher la structure de la table EMPLOYEES. Sélectionnez toutes les
données de cette table.
Réponse :
DESC EMPLOYEES;
SELECT * FROM EMPLOYEES;
2. Affichez les details des employ´ es qui travaillent dans le d´ epartement 90, ont un salaire sup´ erieur´ a
6000 et dont le poste est ’IT` PROG’. Triez les resultats par´ last name par ordre croissant.
Réponse :
SELECT * FROM EMPLOYEES
WHERE DEPARTMENT_ID = 90 AND SALARY > 6000 AND JOB_ID = 'IT_PROG'
ORDER BY LAST_NAME ASC;
3. Cette instruction comporte plusieurs erreurs de code. Pouvez-vous les identifier ? (2)
SELECT first_name, last_name
FROM employees
WHERE employee_id = 100
GROUP by first_name;
Page 2 of 4 Please go on to the next page...
Filiere IDD&BD` Module SQL Oracle Mars 03, 2025
Réponse :
SELECT first_name, last_name
FROM employees
WHERE employee_id = 100
GROUP by last_name;
4. Cette instruction comporte des erreurs dans la syntaxe SQL. Pouvez-vous les identifier ? (2)
SELECT department_id, COUNT(*) AS num_employees
FROM employees
HAVING COUNT(*) > 5;
Réponse :
SELECT department_id, COUNT(*) AS num_employees
FROM employees
GROUP BY department_id
HAVING COUNT(*) > 5;
5. (2)
Affichez pour chaque employe le´ employee id, le last name, le salary et le salaire diminue´ de 10 %.
Nommez la colonne ”Reduced Salary”.
Réponse :
SELECT EMPLOYEE_ID, LAST_NAME, SALARY, SALARY * 0.9 AS "Reduced Salary"
FROM EMPLOYEES;
6.
Modifiez la question précédente pour ajouter une colonne qui calcule la différence entre le salaire initial
et le salaire diminue de 10 %. Nommez cette colonne ”Salary Différence”.
Réponse :
7. Affichez les noms des departements et le nombre d’employ´ es dans chaque d´ epartement, o´u` (3)
le nombre d’employes est sup´ erieur´ a 5.` Triez les resultats par le nombre d’employ´ es de´
maniere d`ecroissante.´
Réponse :
Page 3 of 4 Please go on to the next page...
Filiere IDD&BD` Module SQL Oracle Mars 03, 2025
SELECT D.DEPARTMENT_NAME, COUNT(E.EMPLOYEE_ID) AS NUM_EMPLOYEES
FROM EMPLOYEES E
JOIN DEPARTMENTS D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
GROUP BY D.DEPARTMENT_NAME
HAVING COUNT(E.EMPLOYEE_ID) > 5
ORDER BY NUM_EMPLOYEES DESC;
8. Creez une instruction afin d’afficher une nouvelle colonne qui contient le´ first name, last name (3) et
salary de tous les employes travaillant dans le d´ epartement 80. S´ eparez les donn´ ees par´ des virgules.
Nommez la colonne obtenue ”EMPLOYEE INFO”.
Réponse :
SELECT FIRST_NAME || ', ' || LAST_NAME || ', ' || SALARY AS "EMPLOYEE INFO"
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 80;
Page 4 of 4