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 :
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 !