Операторы множеств

Введение в Oracle SQL

Sara Billen

Curriculum Manager

Что такое операторы множеств?

$$

Операторы множеств берут результаты двух и более запросов SELECT и объединяют их в один.

$$

  • JOIN объединяет таблицы
    • По столбцам
  • Операторы множеств объединяют запросы
    • По строкам
Введение в Oracle SQL

Типы операторов множеств

Union

Оператор Union

Все строки без дубликатов

Union All

Оператор Union All

Все строки с дубликатами

Intersect

Оператор Intersect

Строки, возвращаемые обоими запросами

Minus

Оператор Minus

Уникальные строки 1-го запроса, отсутствующие во 2-м

Введение в Oracle SQL

Union

Все строки без дубликатов

Какие города связаны с нашими клиентами?

SELECT City FROM Customer
UNION
SELECT BillingCity FROM Invoice
| City           |
|----------------|
| Lyon           |
| Fort Worth     |
| Vienne         |
| Brussels       |
| Orlando        |
| Copenhagen     |
| Oslo           |
| Rio de Janeiro |
| Boston         |
| ...            |
Введение в Oracle SQL

Union all

Все строки с дубликатами

Какие города связаны с нашими клиентами и как часто они встречаются?

SELECT City from Customer
UNION ALL
SELECT BillingCity from Invoice
| City          |
|---------------|
| Oslo          |
| Prague        |
| Prague        |
| Vienee        |
| Brussels      |
| Copenhagen    |
| Mountain View |
| Mountain View |
| Mountain View |
| ...           |
Введение в Oracle SQL

Intersect

Строки, возвращаемые обоими запросами

Какие треки Майлса Дэвиса включены в плейлист?

(SELECT TrackId from PlaylistTrack)
INTERSECT
(SELECT TrackId from Track
WHERE Composer = 'Miles Davis')
| TrackId |
|---------|
| 612     |
| 600     |
| 614     |
| 604     |
| 605     |
| 598     |
| 617     |
Введение в Oracle SQL

Minus

Уникальные строки 1-го запроса, отсутствующие во 2-м

Кто из исполнителей не сочиняет музыку?

(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   |
| ...                      |                                                                       |
Введение в Oracle SQL

Давайте потренируемся!

Введение в Oracle SQL

Preparing Video For Download...