Изучаем sql



Pdf көрінісі
бет100/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   96   97   98   99   100   101   102   103   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

112
Глава 6. Работа с множествами
Поэтому при применении операций с множествами к реальным табли
цам необходимо соблюдать такие правила:

В обеих таблицах должно быть одинаковое число столбцов.

Типы данных столбцов двух таблиц должны быть одинаковыми
(или сервер должен уметь преобразовывать один тип в другой).
Эти правила позволяют уяснить, что представляет собой «перекрытие
данных» на практике. Чтобы комбинируемые строки двух таблиц счи
тались одинаковыми, каждая пара столбцов комбинируемых таблиц
должна содержать одинаковые строки, числа или даты.
Операции с множествами осуществляются путем помещения 
операто
ра работы с множествами
(
set operator
) между двух выражений 
se
lect
, как показано ниже:
mysql> 
SELECT 1 num, 'abc' str
> UNION
> SELECT 9 num, 'xyz' str
;
+++
| num | str |
+++
| 1 | abc |
| 9 | xyz |
+++
2 rows in set (0.02 sec)
Каждый запрос формирует таблицу, состоящую из единственной стро
ки с числовым и строковым столбцами. Оператор работы с множества
ми, в данном случае 
union
, указывает серверу БД объединить все строки
двух таблиц. Таким образом, конечная таблица включает две строки
и два столбца. Такой запрос называют 
составным запросом 
(
compound
query
), потому что он объединяет несколько независимых запросов.
Как будет показано позже, если для получения окончательного ре
зультата требуется выполнить несколько операций с множествами, со
ставные запросы могут включать 
больше 
двух запросов.
Операторы работы с множествами
Язык SQL включает три оператора работы с множествами, позволяю
щие осуществлять всевозможные операции над множествами, уже упо
мянутые в этой главе. Кроме того, у каждого из этих операторов есть
две разновидности: первая включает дублирующие данные, а вторая
удаляет их (но необязательно 
все
). В следующих разделах даны опреде
ления всех операторов и показано их применение.
Оператор union
Операторы 
union
(объединить) и 
union
all
(объединить все) позволяют
комбинировать несколько таблиц. Разница в том, что если требуется
объединить две таблицы, включая в окончательный результат 
все
их


Операторы работы с множествами
113
строки, даже дублирующие значения, нужно использовать оператор
union
all
. Благодаря оператору 
union
all
в конечной таблице всегда бу
дет столько строк, сколько во всех исходных таблицах в сумме. Эта опе
рация – самая простая из всех операций работы с множествами (с точки
зрения сервера), поскольку серверу не приходится проверять перекры
вающиеся данные. Следующий пример демонстрирует применение опе
ратора 
union
all
для формирования полного множества данных клиен
тов из двух таблиц подтипов клиентов:
mysql> 


Достарыңызбен бөлісу:
1   ...   96   97   98   99   100   101   102   103   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет