Database
 sql >> база данни >  >> RDS >> Database

SQL Union – Изчерпателно ръководство за оператора UNION

Докато обработваме данни в бази данни, ние често сме склонни да използваме операторите set в SQL, за да извличаме данни според нашите изисквания чрез комбиниране на два или повече оператора SELECT. В тази статия за SQL UNION ще обсъдя оператора UNION, използван за извличане на данни в следната последователност:

  • Какво е операторът SQL UNION?
  • Синтаксис:
    1. Синтаксис UNION
    2. UNION ALL Синтаксис
  • Разлики между UNION и UNION ALL
  • Примери за SQL UNION:
    1. Пример за оператор UNION
    2. Пример за оператор UNION ALL
    3. UNION със SQL псевдоними
    4. СЪЮЗ с клауза WHERE
    5. UNION ALL с клауза WHERE
    6. СЪЕДИНЕНИЕ с JOINS
    7. ОБЪЕДИНЯВАЙТЕ ВСИЧКИ със JOINS

Нека започнем!

Какво е операторът SQL UNION?

Както подсказва името, този оператор/ клауза се използва за комбиниране на резултатите от два или повече оператора SELECT. Тук всеки оператор SELECT, използван в оператора UNION, трябва да има същия брой колони в същия ред. Освен това всички колони, присъстващи в изразите SELECT, трябва да имат подобни типове данни.

Клаузата UNION дава само уникални стойности като изход. За всеки случай, ако искате дублиращи се стойности, тогава трябва да използвате клаузата UNION ALL.

Продължавайки в тази статия за SQL UNION, нека разберем синтаксиса.

SQL UNION Синтаксис

Синтаксис UNION

ИЗБЕРЕТЕ колона1, колона2, колона3, ..., колонаN ОТ таблица1UNIONSELECT колона1, колона2, колона3, ..., колонаN ОТ таблица2;

UNION ALL Синтаксис

ИЗБЕРЕТЕ колона1, колона2, колона3, ..., колонаN ОТ Table1UNION ALLSELECT Column1, Column2, Column3, ..., ColumnN ОТ таблица2;

Продължавайки с тази статия, нека разберем разликите между UNION и UNION ALL.

Разлики между SQL UNION и UNION ALL

UNION UNION ALL
Комбинира два или повече набора от резултати и не запазва дублиращите се стойности. Комбинира два или повече набора от резултати и запазва дублиращите се стойности.
Синтаксис: СЪЮЗ
Синтаксис: СЪЮЗ ВСИЧКИ

След това, в тази статия за SQL UNION, нека разберем различните начини за използване на този оператор.

Примери за SQL UNION и UNION ALL

За по-добро разбиране ще разгледам следните таблици, за да ви покажа различни примери.

Таблица на служителите

EmpID Име EmpAge Град Пощенски код Държава
1 Ема 23 Берлин 12109 Германия
2 Рахул 26 Мумбай 400015 Индия
3 Aayra 24 Ню Йорк 10014 САЩ
4 Джон 32 Лондон E1 7AE UK
5 Дерек 29 Ню Йорк 10012 САЩ

Таблица с проекти

ProjectID Име Работни дни Град Пощенски код Държава
1 Проект 1 10 Берлин 12109 Германия
2 Проект 2 7 Мумбай 400015 Индия
3 Проект 3 20 Делхи 110006 Индия
4 Проект 4 15 Мумбай 400015 Индия
5 Проект 5 28 Берлин 12109 Германия

Нека започнем с примери.

Примери за SQL UNION

Пример за оператор UNION

Напишете заявка, за да извлечете различни градове от таблицата „Служители и проекти“.

ИЗБЕРЕТЕ Град ОТ служителиUNIONИЗБЕРЕТЕ Град ОТ проекти ПОРЪЧКА ПО Град;

Изход:

Град

Берлин

Делхи

Лондон

Мумбай

Ню Йорк

Пример за оператор UNION ALL

Напишете заявка за извличане на градове от таблицата „Служители и проекти“. Тук трябва да бъдат включени дублиращи се стойности.

 ИЗБЕРЕТЕ Град ОТ EmployeesUNION ВСИЧКИ ИЗБЕРЕТЕ Град ОТ проекти ПОРЪЧКА ПО Град; 

Изход:

Град

Берлин

Берлин

Берлин

Делхи

Лондон

Мумбай

Мумбай

Мумбай

Ню Йорк

Ню Йорк

По-нататък в тази статия нека разберем как да използваме клаузата UNION с SQL псевдоними.

UNION с SQL псевдоними

Псевдонимите на SQL се използват за придаване на временно име на таблица или колона. Така че, нека напишем заявка, за да изброим всички уникални служители и проекти.

ИЗБЕРЕТЕ 'Служител' КАТО тип, име, град, държаваFROM EmployeesUNIONSELECT 'Проект', име, град, държаваFROM проекти;

Изход:

Тип Име Град Държава
Служител Ема Берлин Германия
Служител Рахул Мумбай Индия
Служител Айра Ню Йорк САЩ
Служител Джон Лондон Великобритания
Служител Дерек Ню Йорк САЩ
Проект Проект 1 Берлин Германия
Проект Проект 2 Мумбай Индия
Проект Проект 3 Делхи Индия
Проект Проект 4 Мумбай Индия
Проект Проект 5 Берлин Германия

СЪЮЗ с клауза WHERE

Напишете заявка, за да извлечете отделните индийски градове и техните пощенски кодове от таблицата „Служители“ и „Проекти“.

ИЗБЕРЕТЕ град, пощенски код, държава ОТ EmployeesWHERE Държава='Индия'UNIONSELECT Град, пощенски код, Държава ОТ проектиWHERE Държава='Индия'ORDER BY City;

Изход:

Град Пощенски код Държава
Делхи 110006 Индия
Мумбай 400015 Индия

СЪЮЗ ВСИЧКИ с клауза WHERE

Напишете заявка за извличане на индийски градове и техните пощенски кодове от таблицата „Служители“ и „Проекти“, където са разрешени дублиращи се стойности

ИЗБЕРЕТЕ град, пощенски код, държава ОТ EmployeesWHERE Държава='Индия'UNION ALLSELECT Град, пощенски код, Държава ОТ проектиWHERE Държава='Индия'ПОРЕД ПО Град;

Изход:

Град Пощенски код Държава
Делхи 110006 Индия
Мумбай 400015 Индия
Мумбай 400015 Индия
Мумбай 400015 Индия

Продължавайки напред в тази статия, нека разберем как да използваме клаузите UNION и UNION ALL с JOINS. JOINS в SQL са команди, които се използват за комбиниране на редове от две или повече таблици въз основа на свързана колона между тези таблици.

СЪЕДИНЕНИЕ с ПРИСЪЕДИНЕНИЯ

Операторът SQL UNION може да се използва с SQL JOINS за извличане на данни от две различни таблици. Ще разгледам следната таблица заедно с таблицата на служителите за примера.

Таблица с подробности за проекта

PID Работни дни EmpID CostforProject
11 12 4 20000
22 16 3 35000
33 30 1 60000
44 25 3 45000
55 21 1 50 000
ИЗБЕРЕТЕ EmpID, Име, CostforProject ОТ Служители LEFT JOIN ProjectDetails ON Employees.EmpID =ProjectDetails.EmpIDUNION SELECT EmpID, Name, CostforProject ОТ Служители НАДЯСНО ПРИСЪЕДИНЕТЕ се ProjectDetails ON Employees.EmpID =ProjectDetails.EmpID;
>

Изход:

EmpID Име CostforProject
1 Ема 60000
1 Ема 50 000
2 Рахул NULL
3 Айра 35000
3 Айра 45000
4 Джон 20000
5 Дерек NULL

СЪЕДИНЕТЕ ВСИЧКИ със СЪЕДИНЕНИ

Напишете заявка за извличане на EmpID, Name и CostforProject от таблицата Employees и ProjectDetails, където са разрешени дублиращи се стойности.

ИЗБЕРЕТЕ EmpID, Име, CostforProject ОТ Служители LEFT JOIN ProjectDetails ON Employees.EmpID =ProjectDetails.EmpIDUNION ALL ИЗБЕРЕТЕ EmpID, Name, CostforProject ОТ Служители НАДЯСНО ПРИСЪЕДИНЕТЕ се към ProjectDetails ON Employees.EmpID =ProjectIDDetails;Изход:  
EmpID Име CostforProject
1 Ема 60000
1 Ема 50 000
2 Рахул NULL
3 Айра 35000
3 Айра 45000
4 Джон 20000
5 Дерек NULL
4 Джон 20000
3 Айра 35000
1 Ема 60000
3 Айра 35000
1 Ема 50 000

С това стигам до края на тази статия за SQL UNION. Надявам се, че ви е харесало да прочетете тази статия за SQL UNION. Видяхме различните начини за използване на командите UNION и UNION ALL, за да ви помогнем да пишете заявки. Ако искате да научите повече за MySQL и да се запознаете с тази релационна база данни с отворен код, вижте нашия MySQL DBA Сертификационно обучение който идва с обучение на живо от инструктор и реален опит с проекти. Това обучение ще ви помогне да разберете MySQL в дълбочина и ще ви помогне да постигнете майсторство по темата.

Имате въпрос към нас? Моля, споменете го в секцията за коментари на „SQL UNION“ и аз ще се свържа с вас.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изчислим общия брой на бягане в червено изместване

  2. Защо оптимизаторът не използва знания за буферен пул

  3. Какво всъщност се случва с това търсене?

  4. Свеждане до минимум на въздействието на DBCC CHECKDB:Ds and DONTs

  5. Проблемът с изгубената актуализация при едновременни транзакции