П`ятниця, 20.06.2025, 23:14
Головна Реєстрація RSS
Вітаю Вас, Гість
Меню сайту
Реклама
Категорії розділу
Архітектура ПК [1]
Архітектура та експлуатація персонального комп'ютера
СПЗ [12]
Системне програмне забезпечення та операційні системи
Комп'ютерна графіка [25]
КСМ [28]
Комп'ютерні системи та мережі
ІСІТО [1]
Інформаційні системи і технології обліку
Бухгалтерський облік [0]
АМтП [10]
Алгоритмічні мови та програмування
Копирайт рерайт [1]
СУБД [18]
Системи управління базами даних
ОКТ практикум [2]
Основи комп'ютерних технологій практикум
Інформатика (практ) [1]
інформатика практикум, практичні заняття
ТіОБВ [61]
Технологія і організація будівельного виробництва
ОСАПр [6]
Основи систем автоматизованого проектування, AutoCAD, ArchiCAD
ТіОБВ (заочники) [1]
Пошук
Статистика


Яндекс.Метрика
Онлайн всього: 1
Гостей: 1
Користувачів: 0
Форма входу
Календар
«  Вересень 2013  »
Пн Вт Ср Чт Пт Сб Нд
      1
2345678
9101112131415
16171819202122
23242526272829
30
Головна » 2013 » Вересень » 05 » SQL урок 12 Комбіновані запити (UNION)
15:57
SQL урок 12 Комбіновані запити (UNION)

У більшості SQL-запитів використовується один оператор, за допомогою якого повертаються дані з однієї або декількох таблиць. SQL також дозволяє виконувати одночасно кілька окремих запитів і відображати результат у вигляді єдиного набору даних. Такі комбіновані запити зазвичай називають поєднаннями або складними запитами.

1. Використання оператора UNION

Запити в мові SQL комбінуються з допомогою оператора UNION. Для цього необхідно вказати кожен запит SELECT і розмістити між ними ключове слово UNION. Обмежень щодо кількості використаного оператора UNION в одному загальному запиті немає. У попередньому розділі ми відзначали, що Access не має можливості створювати повне зовнішнє об'єднання, тепер ми подивимося, як можна цього досягти через оператор UNION.

SELECT *
FROM Sumproduct LEFT JOIN Sellers ON Sumproduct.City = Sellers.City
UNION
SELECT *

FROM Sumproduct RIGHT JOIN Sellers ON Sumproduct.City = Sellers.City

Бачимо, що запит відобразив як всі колонки з першої таблиці - так і з іншого, незалежно від того, чи всі записи мають відповідності в іншій таблиці.

Також варто відзначити, що в багатьох випадках замість UNION ми можемо використати пропозицію WHERE з багатьма умовами, і отримувати аналогічний результат. Однак через UNION запису виглядають більш лаконічними і зрозумілими. Також необхідно дотримуватись певних правил при написанні комбінованих запитів:

  • запит UNION повинен включати два і більше операторів SELECT, відокремлених між собою ключовим словом UNION (тобто якщо в запиті використовується чотири оператора SELECT, то має бути три ключових слова UNION)
  • кожен запит в операторі UNION повинен мати одні й ті ж стовпчики, вирази або статистичні функції, які, до того ж, повинні бути перераховані в однаковому порядку
  • типи даних стовпців повинні бути сумісними. Вони не обов'язково повинні бути одного типу, проте зобов'язані мати подібний тип, щоб СУБД могла їх однозначно перетворити (наприклад, це можуть бути різні числові типи даних або різні типи дати).

2. Включення або виключення рядків що повторюються

Запит з UNION автоматично видаляє всі повторювані рядки з набору результатів запиту (тобто, поводиться як пропозиції WHERE з кількома умовами в одному операторі SELECT). Така поведінка оператора UNION за замовчуванням, але при бажанні ми можемо змінити це. Для цього нам слід використовувати оператор UNION ALL замість UNION.

3. Сортування результатів комбінованих запитів

Результати виконання оператора SELECT упорядковано за допомогою конструкції ORDER BY. При комбінуванні запитів за допомогою UNION тільки одну конструкцію ORDER BY може бути використано, і вона повинна бути проставлена в останньому операторі SELECT. Дійсно, на практиці немає особливого сенсу частину результатів сортувати в одному порядку, а іншу частину - в іншому. Тому кілька контрукцій ORDER BY застосовувати не дозволяється.

Категорія: СУБД | Переглядів: 689 | Додав: Gryzley | Рейтинг: 0.0/0
Всього коментарів: 0
Ім`я *:
Email *:
Код *: