Dans cette première étape, vous allez configurer l'environnement de la base de données et définir un Common Table Expression (CTE) simple. Les CTEs sont définis à l'aide de la clause WITH et agissent comme une vue temporaire qui n'existe que pour la durée d'une seule requête. Cela rend les requêtes complexes plus faciles à lire et à gérer.
Tout d'abord, ouvrez le terminal depuis votre bureau.
Connectez-vous au serveur MySQL en tant qu'utilisateur root. Dans cet environnement de laboratoire, vous pouvez utiliser sudo pour vous connecter sans mot de passe.
sudo mysql -u root
Une fois connecté, vous verrez l'invite MySQL (mysql>). Maintenant, créez une base de données nommée labex_db et basculez vers celle-ci.
CREATE DATABASE IF NOT EXISTS labex_db;
USE labex_db;
Ensuite, créez une table employees et insérez quelques données d'exemple. Cette table stockera des informations de base sur les employés, y compris leur département et leur salaire.
CREATE TABLE IF NOT EXISTS employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
department VARCHAR(50),
salary DECIMAL(10, 2)
);
INSERT INTO employees (employee_id, first_name, last_name, department, salary) VALUES
(1, 'John', 'Doe', 'Sales', 60000.00),
(2, 'Jane', 'Smith', 'Marketing', 75000.00),
(3, 'Robert', 'Jones', 'Sales', 55000.00),
(4, 'Emily', 'Brown', 'IT', 90000.00),
(5, 'Michael', 'Davis', 'Marketing', 70000.00);
Maintenant que la table est prête, définissons un CTE simple pour sélectionner uniquement les employés du département 'Sales'.
WITH SalesEmployees AS (
SELECT employee_id, first_name, last_name, salary
FROM employees
WHERE department = 'Sales'
)
SELECT * FROM SalesEmployees;
Analysons cette requête :
WITH SalesEmployees AS (...) : Ceci définit un CTE nommé SalesEmployees.
- La requête entre parenthèses sélectionne les employés de la table
employees où le department est 'Sales'.
SELECT * FROM SalesEmployees; : C'est la requête principale qui récupère toutes les données de notre ensemble de résultats temporaire SalesEmployees.
Vous devriez voir la sortie suivante, listant uniquement les employés du département des ventes :
+-------------+------------+-----------+----------+
| employee_id | first_name | last_name | salary |
+-------------+------------+-----------+----------+
| 1 | John | Doe | 60000.00 |
| 3 | Robert | Jones | 55000.00 |
+-------------+------------+-----------+----------+
2 rows in set (0.00 sec)
Cela confirme que votre premier CTE fonctionne correctement. Veuillez rester dans le shell MySQL pour la prochaine étape.