Opérateur UNION en SQL

Bonjour à tous, futurs sorciers SQL ! Aujourd'hui, nous allons entreprendre un voyage passionnant à la découverte de l'opérateur UNION en SQL. Ne vous inquiétez pas si vous êtes nouveau dans le domaine de la programmation - je serai votre guide amical, expliquant tout étape par étape. Alors, prenez une tasse de café (ou de thé, si c'est votre préférence), et plongeons dedans !

SQL - UNION Operator

L'Opérateur UNION en SQL

Imaginez que vous préparez une grande fête et que vous avez deux listes d'invités : une pour vos amis et une autre pour votre famille. L'opérateur UNION en SQL est comme combiner ces deux listes en une liste maîtresse, sans aucun doublon. Génial, non ?

En termes SQL, l'opérateur UNION nous permet de combiner les ensembles de résultats de deux ou plusieurs instructions SELECT. Voici la syntaxe de base :

SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;

Souvenez-vous, pour que UNION fonctionne correctement :

  1. Le nombre de colonnes dans chaque instruction SELECT doit être le même.
  2. Les types de données des colonnes correspondantes doivent être compatibles.
  3. L'ordre des colonnes dans chaque instruction SELECT doit être le même.

Voyons quelques exemples pour clarifier cela.

UNION sur un Seul Champ

Supposons que nous avons deux tables : fruits et vegetables. Nous voulons créer une liste de tous les articles.

SELECT name FROM fruits
UNION
SELECT name FROM vegetables;

Cette requête nous donnera une liste unique de tous les fruits et légumes, sans aucun doublon. Si il y a une 'Pomme' dans les deux tables, elle n'apparaîtra qu'une seule fois dans le résultat.

UNION sur Plusieurs Champs

Maintenant, disons que nous voulons inclure les prix ainsi que les noms. Nous pouvons le faire comme suit :

SELECT name, price FROM fruits
UNION
SELECT name, price FROM vegetables;

Cela nous donnera une liste de tous les articles avec leurs prix. Souvenez-vous, l'ordre et le nombre de colonnes doivent correspondre dans les deux instructions SELECT.

UNION avec Clause WHERE

Nous pouvons également utiliser des clauses WHERE avec UNION pour filtrer nos résultats. Par exemple, si nous ne voulons que les articles qui coûtent moins de 5 $ :

SELECT name, price FROM fruits WHERE price < 5
UNION
SELECT name, price FROM vegetables WHERE price < 5;

Cette requête nous donnera une liste de tous les fruits et légumes qui coûtent moins de 5 $.

UNION avec Clause ORDER BY

Que se passe-t-il si nous voulons trier notre liste combinée ? Nous pouvons utiliser ORDER BY, mais il doit venir après la dernière instruction SELECT :

SELECT name, price FROM fruits
UNION
SELECT name, price FROM vegetables
ORDER BY name;

Cela nous donnera une liste alphabétique de tous les fruits et légumes.

UNION avec des Aliases

Parfois, nous pourrions vouloir donner des noms différents à nos colonnes dans la sortie. Nous pouvons le faire en utilisant des aliases :

SELECT name AS item_name, price AS item_price FROM fruits
UNION
SELECT name, price FROM vegetables;

Dans ce cas, la colonne 'name' sera affichée sous le nom 'item_name', et 'price' sous 'item_price' dans le jeu de résultats.

Voici un tableau résumant les méthodes UNION que nous avons discutées :

Méthode Description
UNION de Base Combine les ensembles de résultats de deux ou plusieurs instructions SELECT
UNION sur Un Champ Combine une colonne de plusieurs tables
UNION sur Plusieurs Champs Combine plusieurs colonnes de plusieurs tables
UNION avec WHERE Filtre les résultats avant de les combiner
UNION avec ORDER BY Trie les résultats combinés
UNION avec des Aliases Renomme les colonnes dans la sortie

Souvenez-vous, la pratique rend parfait ! Essayez d'écrire vos propres requêtes UNION, expérimentez avec différentes tables et conditions. Avant de savoir, vous serez un pro de l'UNION !

J'espère que ce tutoriel vous a aidé à démystifier l'opérateur UNION en SQL. Continuez à coder, restez curieux, et n'oubliez pas de vous amuser en cours de route. Après tout, chaque grand programmeur a commencé exactement là où vous êtes maintenant. Bonne requête !

Credits: Image by storyset