logo

Différence entre Union et Union All

UNION et UNION ALL sont les deux opérateurs SQL les plus essentiels utilisés dans la base de données pour combiner le jeu de résultats de plusieurs tables. Ces opérateurs nous permettent d'utiliser plusieurs requêtes SELECT, de récupérer les résultats souhaités, puis de les combiner dans une sortie finale. . Dans cet article, nous allons voir en quoi ils sont différents les uns des autres. Avant de faire une comparaison, nous discuterons brièvement de ces opérateurs.

Qu’est-ce qu’un opérateur Union ?

L'opérateur Union dans MySQL nous permet de combiner deux ou plusieurs résultats de plusieurs requêtes SELECT en un seul ensemble de résultats. Il a une fonctionnalité par défaut pour supprimer les lignes en double des tableaux. Cette syntaxe d'opérateur utilise toujours le nom de la colonne dans la première instruction SELECT comme nom de colonne de la sortie.

MySQL Le syndicat doit suivre ces règles de base :

  • Le nombre et l'ordre des colonnes doivent être les mêmes dans toutes les requêtes.
  • La position des colonnes correspondantes de chaque requête de sélection doit avoir un type de données compatible.
  • Le nom de la colonne sélectionnée dans les différentes requêtes SELECT doit être dans le même ordre.
  • Le nom de colonne de la première requête SELECT sera le nom des colonnes de la sortie.

REMARQUE : Il faut savoir que Union et Join sont différents.

  1. JOIN combine les données de plusieurs tables différentes, tandis que UNION combine les données de plusieurs tables similaires.
  2. JOIN ajoute la sortie horizontalement, tandis que UNION combine l'ensemble de résultats verticalement.

La représentation visuelle ci-dessous l'explique plus clairement :

Union contre Union Tous

Pour lire plus d'informations sur l'opérateur Union, cliquez ici.

python tuple trié

Qu’est-ce qu’Union All ?

L'opérateur UNION ALL combine deux résultats ou plus de plusieurs requêtes SELECT et renvoie tous les enregistrements dans un seul jeu de résultats. Il ne supprime pas les lignes en double de la sortie des instructions SELECT.

Nous pouvons le comprendre avec la représentation visuelle suivante.

Union contre Union Tous

Opérateur Union vs Union All

Le tableau comparatif suivant explique rapidement leurs principales différences :

SYNDICAT UNION TOUS
Il combine le jeu de résultats de plusieurs tables et renvoie des enregistrements distincts en un seul ensemble de résultats. Il combine le jeu de résultats de plusieurs tables et renvoie tous les enregistrements en un seul ensemble de résultats.
Voici la base syntaxe de l'opérateur UNION :
SELECT liste_colonne FROM table1
SYNDICAT
SELECT liste_colonne FROM table2 ;
Voici la base syntaxe de l'opérateur UNION ALL :
SELECT liste_colonne FROM table1
UNION TOUS
SELECT liste_colonne FROM table2 ;
Il dispose d'une fonctionnalité par défaut pour éliminer les lignes en double de la sortie. Il n'a aucune fonctionnalité permettant d'éliminer les lignes en double de la sortie.
C'est les performances sont lentes car il faut du temps pour rechercher puis supprimer les enregistrements en double. C'est les performances sont rapides car cela n'élimine pas les lignes en double.
La plupart des utilisateurs de bases de données préfèrent utiliser cet opérateur. La plupart des utilisateurs de bases de données ne préfèrent pas utiliser cet opérateur.

Exemple d'Union et d'Union Tous

Comprenons les différences entre les opérateurs Union et Union All à travers un exemple. Supposons que nous ayons une table nommée ' Étudiant ' et ' Étudiant2 ' qui contient les données suivantes :

Tableau : Étudiant

Union contre Union Tous

Tableau : Étudiant2

Union contre Union Tous

L'instruction SQL suivante renvoie le nom distinct des villes à partir des deux tables à l'aide de la requête UNION :

convertir un entier en chaîne en Java
 SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City; 

Après avoir exécuté l'instruction ci-dessus, nous obtiendrons le résultat ci-dessous car l'opérateur Union ne renvoie que les valeurs distinctes.

Union contre Union Tous

Retours d'instruction SQL suivants tous les noms de villes, y compris les doublons à partir des deux tables à l'aide de la requête UNION ALL :

 SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City; 

Après avoir exécuté l'instruction ci-dessus, nous obtiendrons le résultat ci-dessous car l'opérateur Union All renvoie des enregistrements entiers sans éliminer les valeurs distinctes.

Union contre Union Tous