Recherchez des données à l'aide de requêtes SQL
Le but de cette activité est de rédiger des requêtes sur une base de données afin de répondre à des questions. La base de données modélise une entreprise, dans laquelle des personnes sont employées dans différents départements.
Contexte
Elle contient 6 tables :
- employees : les employés
- titles : le titre sous lequel un employé est embauché
- salaries : les salaires des employés
- departements : les départements de l'entreprise
- dept_manager : les managers (chefs) de départements
- dept_emp : les employés associés à un département donné
Ces tables sont résumées dans ce schéma :
Note : La base de données originelle a été publiée par MySQL et a été modifiée pour réaliser cet exercice.
Consigne
Vous accéderez à la base de données via cette console interactive.
Il est conseillé de garder une copie des requêtes que vous rédigez sur votre ordinateur, car la mémoire de la console interactive se réinitialise si la page web est rafraîchie.
Pour chaque question, vous fournirez la requête SQL vous ayant permis d'obtenir le résultat, ainsi qu'une capture d'écran de la table renvoyée par votre requête. Si le résultat d'une requête contient beaucoup de ligne, seule une capture d'écran des premières lignes suffit.
Questions
- Affichez toutes les lignes de la table employees, en n'affichant que les noms et prénoms des employés.
- Afficher tous les employés ayant été embauché après le 1er aout 1999 (non compris).
- Dans cette base de données, deux tables ont le même schéma. Réaliser leur union.
- Afficher les différents salaires qu'a eu l'employé dont l'identifiant est 499593 grâce à une jointure.
- Grâce à une jointure, produisez une table indiquant le ou les départements dans lesquels a travaillé l'employé dont l'identifiant est 499902 (la table doit contenir également les dates de début et de fin d'embauche dans chacun des départements).
- En utilisant une agrégation, trouver combien de personnes ont pour nom de famille "Gewali" (le nom de famille est donné dans la colonne last_name de la table "employees").
REPONSES:
- SELECT last_name,first_name FROM employees;
- SELECT * FROM employees WHERE hire_date > '1999-08-01';
- SELECT * FROM dept_emp UNION SELECT * FROM dept_manager;
- SELECT * FROM employees NATURAL JOIN salaries WHERE (salaries.emp_no = 499593);
- SELECT employees.emp_no, departments.dept_no, dept_name, from_date, to_date FROM dept_emp, departments, employees WHERE dept_emp.dept_no = departments.dept_no AND employees.emp_no = dept_emp.emp_no AND employees.emp_no = 499902;
- 6. SELECT DISTINCT last_name, count(*) FROM employees WHERE employees.last_name = 'Gewali';