Database
 sql >> Base de données >  >> RDS >> Database

SQL Union - Un guide complet sur l'opérateur UNION

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 :
    1. Syntaxe UNION
    2. UNION ALL Syntaxe
  • Différences entre UNION et UNION ALL
  • Exemples SQL UNION :
    1. Exemple d'opérateur UNION
    2. Exemple d'opérateur UNION ALL
    3. UNION avec des alias SQL
    4. UNION avec clause WHERE
    5. UNION ALL avec clause WHERE
    6. UNION avec JOINS
    7. 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.