• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 15/05/2023

Assemblez des tables avec UNION

Vous avez déjà beaucoup avancé dans votre enquête ! Mais le travail n'est pas fini : pour votre article, il faudra encore rechercher des informations dans la base !

Heureusement, grâce au mot clé LIKE, vous savez rechercher efficacement dans des données de type Texte, c'est-à-dire des chaînes de caractères.

Pour vous permettre de rechercher plus vite des noms de société, des adresses ou des intermédiaires, nous allons créer ici une requête qui agira comme un mini moteur de recherche dans toutes les données textuelles de la base !

Découvrez l'union entre 2 tables

Pour cela, nous allons réaliser une union entre plusieurs tables.

L'union, c'est tout simplement “coller” 2 tables l'une à l'autre, en ajoutant les lignes de l'une et les lignes de l'autre :

L'avant et l'après de l'union entre deux tables
Exemple d'union entre deux tables

Voyons ceci en vidéo :

Une union entre 2 tables s'écrit comme ceci :

SELECT "Adresse" AS type, address AS recherche, NULL AS url, id_address AS identifiant FROM address
UNION
SELECT "Société (entité)" AS type, name AS recherche, url AS url, id AS identifiant FROM entity

Pour notre moteur de recherche, nous allons réaliser une union entre 4 tables !

La voici :

SELECT "Adresse" AS type, address AS recherche, NULL AS url, id_address AS identifiant FROM address
UNION
SELECT "Société (entité)" AS type, name AS recherche, url AS url, id AS identifiant FROM entity
UNION
SELECT "Intermédiaire" AS type, name AS recherche, url AS url, id AS identifiant FROM intermediary
UNION
SELECT "Bénéficiaire" AS type, name AS recherche, NULL AS url, id AS identifiant FROM officer

Maintenant que nous avons regroupé toutes les données textuelles de notre base en une table, il faut maintenant rechercher dedans !

Voyons ceci en vidéo !

Voici donc la requête finale !

SELECT
	*
FROM
	(SELECT "Adresse" AS type, address AS recherche, NULL AS url, id_address AS identifiant FROM address
UNION
SELECT "Société (entité)" AS type, name AS recherche, url AS url, id AS identifiant FROM entity
UNION
SELECT "Intermédiaire" AS type, name AS recherche, url AS url, id AS identifiant FROM intermediary
UNION
SELECT "Bénéficiaire" AS type, name AS recherche, NULL AS url, id AS identifiant FROM officer
) AS table_union
WHERE
	lower(recherche) LIKE '%abou%'

À vous de jouer

Contexte

Lorsque vous avez cherché les personnes liées à la société Big Data Crunchers (grâce à la table assoc_officer_entity  ), vous avez trouvé une certaine Ana Nia Garcia. Vous décidez donc d'utiliser votre moteur de recherche pour voir si vous trouvez d'autres infos sur elle, notamment son adresse, pour pouvoir aller l’interroger !

Consignes

Écrivez la requête qui permet de rechercher cette info dans votre moteur de recherche, en faisant attention aux majuscules/minuscules et aux caractères spéciaux.

Vérifiez votre travail

Pour obtenir le résultat :

  • Il faut utiliser la requête utilisée dans ce chapitre, car elle réalise l'union entre les 4 tables qui nous intéressent. 

  • Ensuite, il faut imbriquer cette requête afin d'y rechercher le texte de recherche, à mettre en minuscules et en utilisant   lower(recherche) LIKE '%ana%nia%garcia%'  .

SELECT
    *
FROM
    (SELECT "Adresse" AS type, address AS recherche, NULL AS url,         id_address AS identifiant FROM address
    UNION
    SELECT "Société (entité)" AS type, name AS recherche, url AS url, id AS identifiant FROM entity
    UNION
    SELECT "Intermédiaire" AS type, name AS recherche, url AS url, id AS identifiant FROM intermediary
    UNION
    SELECT "Bénéficiaire" AS type, name AS recherche, NULL AS url, id AS     identifiant FROM officer
    ) AS table_union
WHERE
    lower(recherche) LIKE 'ana%nia%garcia%'

Bravo ! Vous voici parvenu au terme de cette enquête mais il vous reste encore beaucoup de choses à découvrir dans cette base de données. Cela va sans dire que vos prochaines enquêtes seront riches en données pertinentes et utiles grâce à votre maîtrise des requêtes SQL !

En résumé

  • Une union entre 2 tables est le fait d'ajouter les lignes de l'une à la suite des lignes de l'autre.

  • Une union entre 2 tables s'effectue avec UNION.

  • Les 2 tables doivent avoir le même schéma, c'est-à-dire les mêmes colonnes (et les mêmes types de colonnes).

Vous voici parvenu au terme de ce cours ! Félicitations ! Avant de nous quitter, je vous propose de tester vos connaissances dans le quiz clôturant cette partie !

Exemple de certificat de réussite
Exemple de certificat de réussite