Explication détaillée de l'utilisation de WITH dans MySQL

1. Qu'est-ce que la clause WITH
1. Définition
La clause WITH est une structure SQL dans MySQL, également connue sous le nom d'expression de table commune (CTE). Il permet aux développeurs de créer temporairement un jeu de résultats en mémoire, puis de l'exploiter sans affecter l'instruction SQL d'origine.

2. Objectif
L'objectif principal de la clause WITH est de créer un jeu de résultats temporaire qui peut être utilisé plusieurs fois dans des requêtes ultérieures. La clause WITH est principalement utilisée pour résoudre le problème de la complexité élevée des requêtes, car elle peut stocker plusieurs fois l'ensemble de résultats de calcul requis afin que les requêtes ultérieures puissent l'utiliser directement. Cela peut également nous aider à mieux organiser les requêtes SQL complexes, rendant le code plus clair et plus facile à lire.

2. Grammaire et utilisation de la clause AVEC
1. Grammaire
La forme grammaticale de la clause AVEC est la suivante :

WITH cte_name (column_name1, column_name2, ...) AS ( SELECT column1, column2, ... FROM table WHERE condition )
1
Parmi eux, cte_name est le nom de la clause WITH ; column_name1, column_name2, etc. sont les noms de colonnes de l'ensemble de résultats ; SELECT sub La phrase définit le contenu de l'ensemble de résultats ; condition est la condition de filtre de la requête.

2. Exemple d'utilisation
Supposons d'abord que nous ayons une table nommée « employés » avec le contenu suivant :

CREATE TABLE employés (
    employ_id INT PRIMARY KEY,
    prénom VARCHAR(50),
    nom VARCHAR(50),
    salaire INT
);

Ensuite, nous remplissons les données :

INSERT INTO employés (id_employé, prénom, nom, salaire)
VALEURS 
    (1, 'John', 'Doe', 50000),
    (2, 'Jane', 'Doe', 55000),
    (3, 'Jim', 'Smith ', 60000),
    (4, 'Sarah', 'Johnson', 65000),
    (5, 'Tom', 'Brown', 70000);

Nous pouvons maintenant utiliser la clause WITH pour créer un jeu de résultats temporaire pour calculer chaque Salaire mensuel des salariés :

AVEC salaire_mensuel AS (
    SELECT id_employé, prénom, nom, salaire/12 AS salaire_mensuel
    FROM employés
)
SELECT *
FROM salaire_mensuel ;

Après avoir exécuté le code SQL ci-dessus, les résultats suivants seront générés :

 

Dans cet exemple, nous utilisons la clause WITH pour créer un jeu de résultats temporaire nommé « monthly_salary » qui contient l'ID de l'employé, son prénom, son nom et son salaire mensuel. Nous avons ensuite tout sélectionné et généré le résultat final à partir de cet ensemble de résultats.

3. Avantages
Le principal avantage de la clause WITH est qu'elle permet aux développeurs de décomposer et d'abstraire des requêtes complexes pour améliorer la lisibilité et la maintenabilité du code. Par exemple, si vous devez effectuer plusieurs requêtes sur différents champs de la même table, vous pouvez utiliser la clause WITH pour résumer les jeux de résultats de ces requêtes dans une partie indépendante afin d'éviter la duplication de code.

3. Résumé
La clause WITH est une instruction dans MySQL qui peut fournir des tables temporaires pour les requêtes. Cela peut éviter de définir des données à plusieurs reprises dans plusieurs requêtes, améliorer la lisibilité du code et améliorer l'efficacité des requêtes.
 

Guess you like

Origin blog.csdn.net/qq_45443475/article/details/131852423