Lors de la manipulation des données dans les bases de données, nous avons souvent tendance à utiliser les opérateurs d'ensemble en SQL, pour récupérer les données en fonction de nos besoins en combinant deux ou plusieurs instructions SELECT. Dans cet article sur SQL UNION, je parlerai de l'opérateur UNION utilisé pour récupérer les données dans l'ordre suivant :
- Qu'est-ce que l'opérateur SQL UNION ?
- Syntaxe :
- Syntaxe UNION
- UNION ALL Syntaxe
- Différences entre UNION et UNION ALL
- Exemples SQL UNION :
- Exemple d'opérateur UNION
- Exemple d'opérateur UNION ALL
- UNION avec des alias SQL
- UNION avec clause WHERE
- UNION ALL avec clause WHERE
- UNION avec JOINS
- UNION ALL avec JOINS
Commençons !
Qu'est-ce que l'opérateur SQL UNION ?
Comme son nom l'indique, cet opérateur/clause est utilisé pour combiner les résultats de deux ou plusieurs instructions SELECT. Ici, chaque instruction SELECT utilisée dans l'instruction UNION doit avoir le même nombre de colonnes dans le même ordre. De plus, toutes les colonnes présentes dans les instructions SELECT doivent avoir des types de données similaires.
La clause UNION ne donne que des valeurs uniques en sortie. Juste au cas où vous voudriez des valeurs en double, alors vous devez utiliser la clause UNION ALL.
Passons à autre chose dans cet article sur SQL UNION, laissez-nous comprendre la syntaxe.
Syntaxe SQL UNION
Syntaxe UNION
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1 UNION SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;
UNION ALL Syntaxe
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1 UNION ALL SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;
En poursuivant cet article, laissez-nous comprendre les différences entre UNION et UNION ALL.
Différences entre SQL UNION et UNION ALL
UNION | UNION TOUS |
Combine deux ensembles de résultats ou plus et ne conserve pas les valeurs en double. | Combine deux ensembles de résultats ou plus et conserve les valeurs en double. |
Syntax: UNION | Syntax: UNION ALL |
Ensuite, dans cet article sur SQL UNION, découvrons les différentes manières d'utiliser cet opérateur.
Exemples de SQL UNION et UNION ALL
Pour votre meilleure compréhension, j'examinerai les tableaux suivants pour vous montrer différents exemples.
Tableau des employés
EmpID | Nom | EmpAge | Ville | Code postal | Pays |
1 | Emma | 23 | Berlin | 12109 | Allemagne |
2 | Rahul | 26 | Bombay | 400015 | Inde |
3 | Aayra | 24 | New York | 10014 | États-Unis |
4 | Jean | 32 | Londres | E1 7AE | Royaume-Uni |
5 | Derek | 29 | New York | 10012 | États-Unis |
Tableau des projets
ID de projet | Nom | Jours ouvrés | Ville | Code postal | Pays |
1 | Projet 1 | 10 | Berlin | 12109 | Allemagne |
2 | Projet 2 | 7 | Bombay | 400015 | Inde |
3 | Projet 3 | 20 | Delhi | 110006 | Inde |
4 | Projet 4 | 15 | Bombay | 400015 | Inde |
5 | Projet 5 | 28 | Berlin | 12109 | Allemagne |
Commençons par des exemples.
Exemples SQL UNION
Exemple d'opérateur UNION
Rédigez une requête pour récupérer des villes distinctes à partir de la table Employés et Projets.
SELECT City FROM Employees UNION SELECT City FROM Projects ORDER BY City;
Sortie :
Ville |
Berlin |
Delhi |
Londres |
Bombay |
New York |
Exemple d'opérateur UNION ALL
Écrivez une requête pour récupérer les villes de la table Employés et Projets. Ici, les valeurs en double doivent être incluses.
SELECT City FROM Employees UNION ALL SELECT City FROM Projects ORDER BY City;
Sortie :
Ville |
Berlin |
Berlin |
Berlin |
Delhi |
Londres |
Bombay |
Bombay
|
Bombay |
New York |
New York |
Dans la suite de cet article, voyons comment utiliser la clause UNION avec les alias SQL.
UNION avec des alias SQL
Les alias SQL sont utilisés pour donner un nom temporaire à une table ou une colonne. Alors, écrivons une requête pour répertorier tous les employés et projets uniques.
SELECT 'Employee' AS Type, Name, City, Country FROM Employees UNION SELECT 'Project', Name, City, Country FROM Projects;
Sortie :
Type | Nom | Ville | Pays |
Employé | Emma | Berlin | Allemagne |
Employé | Rahul | Bombay | Inde |
Employé | Aayra | New York | États-Unis |
Employé | Jean | Londres | Royaume-Uni |
Employé | Derek | New York | États-Unis |
Projet | Projet 1 | Berlin | Allemagne |
Projet | Projet 2 | Bombay | Inde |
Projet | Projet 3 | Delhi | Inde |
Projet | Projet 4 | Bombay | Inde |
Projet | Projet 5 | Berlin | Allemagne |
UNION avec clause WHERE
Rédigez une requête pour récupérer les villes indiennes distinctes et leurs codes postaux à partir des tables Employés et Projets.
SELECT City, PostalCode, Country FROM Employees WHERE Country='India' UNION SELECT City, PostalCode, Country FROM Projects WHERE Country='India' ORDER BY City;
Sortie :
Ville | Code postal | Pays |
Delhi | 110006 | Inde |
Bombay | 400015 | Inde |
UNION ALL avec clause WHERE
Écrivez une requête pour récupérer les villes indiennes et leurs codes postaux à partir des tables Employés et Projets, où les valeurs en double sont autorisées
SELECT City, PostalCode, Country FROM Employees WHERE Country='India' UNION ALL SELECT City, PostalCode, Country FROM Projects WHERE Country='India' ORDER BY City;
Sortie :
Ville | Code postal | Pays |
Delhi | 110006 | Inde |
Bombay | 400015 | Inde |
Bombay | 400015 | Inde |
Bombay | 400015 | Inde |
En avançant dans cet article, comprenons comment utiliser les clauses UNION et UNION ALL avec JOINS. Les JOINS en SQL sont des commandes utilisées pour combiner des lignes de deux tables ou plus, en fonction d'une colonne liée entre ces tables.
UNION avec JOINS
L'opérateur SQL UNION peut être utilisé avec SQL JOINS pour récupérer des données à partir de deux tables différentes. Je vais considérer le tableau suivant avec le tableau Employés pour l'exemple.
Tableau des détails du projet
PID | Jours ouvrés | EmpID | Coût du projet |
11 | 12 | 4 | 20000 |
22 | 16 | 3 | 35 000 |
33 | 30 | 1 | 60000 |
44 | 25 | 3 | 45 000 |
55 | 21 | 1 | 50000 |
SELECT EmpID, Name, CostforProject FROM Employees LEFT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION SELECT EmpID, Name, CostforProject FROM Employees RIGHT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID;
Sortie :
EmpID | Nom | Coût du projet |
1 | Emma | 60 000 |
1 | Emma | 50 000 |
2 | Rahul | NULL |
3 | Aayra | 35 000 |
3 | Aayra | 45 000 |
4 | Jean | 20 000 |
5 | Derek | NULL |
UNION ALL avec JOINS
Rédigez une requête pour récupérer EmpID, Name et CostforProject à partir des tables Employees et ProjectDetails, où les valeurs en double sont autorisées.
SELECT EmpID, Name, CostforProject FROM Employees LEFT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION ALL SELECT EmpID, Name, CostforProject FROM Employees RIGHT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID;
Sortie :
EmpID | Nom | Coût du projet |
1 | Emma | 60 000 |
1 | Emma | 50 000 |
2 | Rahul | NULL |
3 | Aayra | 35 000 |
3 | Aayra | 45 000 |
4 | Jean | 20 000 |
5 | Derek | NULL |
4 | Jean | 20 000 |
3 | Aayra | 35 000 |
1 | Emma | 60 000 |
3 | Aayra | 35 000 |
1 | Emma | 50 000 |
Ainsi, j'arrive à la fin de cet article sur SQL UNION. J'espère que vous avez apprécié la lecture de cet article sur SQL UNION. Nous avons vu les différentes manières d'utiliser les commandes UNION et UNION ALL pour vous aider à rédiger des requêtes. Si vous souhaitez en savoir plus sur MySQL et découvrir cette base de données relationnelle open source, consultez notre MySQL DBA Formation certifiante qui vient avec une formation en direct dirigée par un instructeur et une expérience de projet réelle. Cette formation vous aidera à comprendre MySQL en profondeur et vous aidera à maîtriser le sujet.
Vous avez une question pour nous ? Veuillez le mentionner dans la section des commentaires de "SQL UNION" et je vous répondrai.