Opérateurs d'ensembles

Introduction à Oracle SQL

Sara Billen

Curriculum Manager

Qu'est-ce que les opérateurs d'ensembles ?

$$

Les opérateurs d'ensembles prennent le résultat de deux requêtes SELECT ou plus et les combinent en un seul.

$$

  • Les jointures combinent des tables
    • Orienté colonnes
  • Les opérateurs d'ensembles combinent des requêtes
    • Orienté lignes
Introduction à Oracle SQL

Types d'opérateurs d'ensembles

Union

Opérateur Union

Toutes les lignes, sans doublons

Union All

Opérateur Union All

Toutes les lignes, avec doublons

Intersect

Opérateur Intersect

Lignes renvoyées par les deux requêtes

Minus

Opérateur Minus

Lignes distinctes de la 1re requête absentes de la 2e

Introduction à Oracle SQL

Union

Toutes les lignes, sans doublons

Quelles sont toutes les villes associées à nos clients ?

SELECT City FROM Customer
UNION
SELECT BillingCity FROM Invoice
| City           |
|----------------|
| Lyon           |
| Fort Worth     |
| Vienne         |
| Brussels       |
| Orlando        |
| Copenhagen     |
| Oslo           |
| Rio de Janeiro |
| Boston         |
| ...            |
Introduction à Oracle SQL

Union All

Toutes les lignes, avec doublons

Quelles sont toutes les villes associées à nos clients et avec quelle fréquence ?

SELECT City from Customer
UNION ALL
SELECT BillingCity from Invoice
| City          |
|---------------|
| Oslo          |
| Prague        |
| Prague        |
| Vienee        |
| Brussels      |
| Copenhagen    |
| Mountain View |
| Mountain View |
| Mountain View |
| ...           |
Introduction à Oracle SQL

Intersect

Lignes renvoyées par les deux requêtes

Quels morceaux de Miles Davis figurent dans une liste de lecture ?

(SELECT TrackId from PlaylistTrack)
INTERSECT
(SELECT TrackId from Track
WHERE Composer = 'Miles Davis')
| TrackId |
|---------|
| 612     |
| 600     |
| 614     |
| 604     |
| 605     |
| 598     |
| 617     |
Introduction à Oracle SQL

Minus

Lignes distinctes de la 1re requête qui ne sont pas dans la 2e

Quels artistes ne composent pas ?

(SELECT Name FROM Artist)
MINUS
(SELECT Composer FROM Track)
ORDER BY 1 DESC
| Name                     |
|--------------------------|
| Zeca Pagodinho           |
| Youssou N'Dour           |
| Yo-Yo Ma                 |
| Yehudi Menuhin           |
| Xis                      |
| Wilhelm Kempff           |
| Whitesnake               |
| Vinícius E Qurteto Em Cy |
| Vinícius E Odette Lara   |
| ...                      |                                                                       |
Introduction à Oracle SQL

Passons à la pratique !

Introduction à Oracle SQL

Preparing Video For Download...