Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Clause Union | Sous-Requêtes Imbriquées
SQL Intermédiaire
course content

Contenu du cours

SQL Intermédiaire

SQL Intermédiaire

1. Grouping
2. Sous-Requêtes Imbriquées
3. Joindre des Tables
4. DDL et DML en SQL

book
Clause Union

Nous avons attiré l'attention d'un client qui a besoin de requêtes SQL. Avant de plonger dans les JOINs, apprenons la clause UNION, qui est essentielle pour combiner plusieurs tables.

Voici quelques points importants à connaître lors de l'utilisation de UNION:

  1. Nombre et ordre des colonnes : Toutes les requêtes combinées avec UNION doivent comporter le même nombre de colonnes dans le même ordre;

  2. Types de données : Les colonnes de chaque requête doivent avoir des types de données compatibles;

  3. Lignes uniques : Par défaut, UNION supprime les lignes en double. Utilisez UNION ALL si vous souhaitez conserver les doublons.

Pour une meilleure compréhension de la manière de combiner correctement les tables en utilisant la clause UNION, j'ai introduit une table supplémentaire qui contient des informations sur les contractors.

Il n'y a pas beaucoup d'informations ici, juste le first_name, le last_name et l'email.

Vous pouvez voir que ce tableau présente des similitudes avec la table employees. En utilisant la clause UNION, nous pouvons combiner ces deux tables pour, par exemple, voir une liste de tous les prénoms et noms de famille des employés et des contractuels impliqués dans l'entreprise.

Pour ce faire, nous utiliserons la clause UNION:

12345678
(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
copy

Analysons ce qui se passe :

Nous avons deux requêtes qui retournent chacune trois colonnes avec les mêmes types de données. Nous voulons afficher le Id, le first_name et le last_name de tous les membres de l'entreprise. Nous avons également renommé la colonne Id afin que les deux requêtes aient les mêmes noms de colonnes.

Ensuite, nous utilisons UNION pour combiner les résultats de ces requêtes, en supprimant les doublons (bien qu'il n'y en ait aucun ici).

Enfin, nous trions les résultats par Id en utilisant ORDER BY.

Remarque

Nous trions par Id, qui est une colonne commune dans les deux tables.

Après avoir utilisé UNION, nous obtenons une seule grande requête que nous pouvons manipuler davantage avec des clauses comme ORDER BY.

Nous ne pouvons pas utiliser directement WHERE ou GROUP BY avec des tables combinées en utilisant UNION. Pour appliquer ces clauses, nous devons utiliser une sous-requête dans la section FROM. Voici un exemple de comment procéder :

123456789
SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
copy

L'utilisation d'une sous-requête dans la section FROM offre une plus grande flexibilité ! Cela peut sembler compliqué au début, mais maîtriser cette technique rendra l'écriture de requêtes complexes beaucoup plus facile.

1. Quelles colonnes sont requises lors de l'utilisation de la clause UNION en SQL ?

2. Comment la clause UNION traite-t-elle les lignes dupliquées par défaut ?

Quelles colonnes sont requises lors de l'utilisation de la clause `UNION` en SQL ?

Quelles colonnes sont requises lors de l'utilisation de la clause UNION en SQL ?

Sélectionnez la réponse correcte

Comment la clause `UNION` traite-t-elle les lignes dupliquées par défaut ?

Comment la clause UNION traite-t-elle les lignes dupliquées par défaut ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5
We're sorry to hear that something went wrong. What happened?
some-alt