Докато обработваме данни в бази данни, ние често сме склонни да използваме операторите set в SQL, за да извличаме данни според нашите изисквания чрез комбиниране на два или повече оператора SELECT. В тази статия за SQL UNION ще обсъдя оператора UNION, използван за извличане на данни в следната последователност:
- Какво е операторът SQL UNION?
- Синтаксис:
- Синтаксис UNION
- UNION ALL Синтаксис
- Разлики между UNION и UNION ALL
- Примери за SQL UNION:
- Пример за оператор UNION
- Пример за оператор UNION ALL
- UNION със SQL псевдоними
- СЪЮЗ с клауза WHERE
- UNION ALL с клауза WHERE
- СЪЕДИНЕНИЕ с JOINS
- ОБЪЕДИНЯВАЙТЕ ВСИЧКИ със 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“ и аз ще се свържа с вас.