mysql union comprehensive tutorial with union examples
Овај водич објашњава МиСКЛ УНИОН команду, њене типове, Унион вс Унион Алл и примере за комбиновање података из 2 или више упита:
МиСКЛ УНИОН се користи за комбиновање резултата из више СЕЛЕЦТ упита у један скуп резултата. Такође је могуће имати све сложене упите / операције у СЕЛЕЦТ упитима и извршити УНИОН са осталим СЕЛЕЦТ изразима да би се добио комбиновани резултат.
најбоље средство за чишћење нежељених датотека за Виндовс 10
Подразумевана карактеристика изјаве УНИОН била би уклањање дупликата уноса или редова из резултујућег скупа редова, међутим, пружа начине за дохватање дупликата записа такође помоћу клаузуле УНИОН АЛЛ.
Шта ћете научити:
- Разумевање УНИЈЕ Кроз теорију скупова
- Који проблем решава МиСКЛ УНИОН
- МиСКЛ УНИОН вс УНИОН АЛЛ
- Закључак
Разумевање УНИЈЕ Кроз теорију скупова
Операција УНИОН могла би се врло добро разумети из принципа СЕТ теорије.
Претпоставимо да имамо табеле А и Б представљене низовима доле и да имају неке податке који се преклапају (или могу бити и потпуно неповезани) - УНИОН ће садржати комбинацију података из обе табеле.
Погледајмо пример где скупови А и Б имају неке заједничке елементе. УНИОН ће садржати све вредности из скупа А и Б са изостављеним дупликатима.
Сада, шта ако су скупови А и Б дисјунктни и не садрже никакве заједничке елементе? И овде ће УНИЈА вратити исти резултат.
Разговарајмо о сценарију где постоје елементи који се преклапају између скупова и желимо да се дуплиране вредности такође појаве у скупу резултата.
МиСКЛ пружа начин да се то уради помоћу опције УНИОН АЛЛ, као што је приказано на доњој слици.
Који проблем решава МиСКЛ УНИОН
МиСКЛ УНИОН се користи када имате сличне податке у 2 или више табела и желите да видите комбиновани приказ података садржаних у обе табеле, а не да покрећете СЕЛЕЦТ изразе за појединачне табеле.
На пример - Претпоставимо да постоје 2 табеле - Запослени и Ученик. И радите на бази података о људима која само жели да има име, старост и датум рођења за све запослене и студенте.
Без УНИОН-а, морат ћете извршити засебне СЕЛЕЦТ упите за обје табеле, а затим извршити жељено израчунавање са добивеним скупом резултата.
Синтакса МиСКЛ УНИОН
Упити у наставку вратит ће УНИОН од 2 или више од 2 СЕЛЕЦТ израза.
SELECT {column1}, {column2} FROM {table1} UNION [ALL | DISTINCT] SELECT {column3}, {column4} FROM {table2} UNION [ALL | DISTINCT] SELECT ...
Покушајмо да видимо различите компоненте синтаксе
- Видимо да је могуће комбиновати више СЕЛЕЦТ упита са УНИОН да би се добио резултујући ред.
- Назив колоне и типови података: Важно је схватити да колоне које желимо да комбинујемо треба да имају исти или компатибилни тип података. На пример: ако имате колону1 као СТРИНГ, онда би и колона3 требало да буде СТРИНГ (или СТРИНГ компатибилна).
- Имена и позиције ступаца одређују се из прве наредбе СЕЛЕЦТ у УНИОН упиту. На пример, у горњој синтакси: колона1 и колона2 су именоване као колоне заглавља у скупу резултата, а вредности колоне3 и колоне4 мапирају се у колону1 и колону2, респективно.
- Резултати УНИОН упита подразумевано уклањају двоструке уносе. На пример, у овом случају, ако постоји дупликат уноса који се тачно подудара и има исте вредности за колону1 и колону2, ти редови ће бити изостављени из скупа резултата.
Ако се желе дупликати, онда можемо да користимо опцију ‘СВЕ’ заједно са УНИОН-ом.
Употреба ДИСТИНЦТ подразумевано се подразумева. Имајте на уму да би се могло и експлицитно навести да би се имало више читљивости.
Погледајмо пример примера упита УНИОН.
Претпоставимо да постоје 2 табеле - запослени и студент - свака од којих има личне податке.
CREATE TABLE employee (id INT PRIMARY KEY, name VARCHAR(100), age INT, dob DATE, department VARCHAR(100)); CREATE TABLE student (id INT PRIMARY KEY, name VARCHAR(100), age INT, dob DATE, department VARCHAR(100));
Сада унесите неке лажне податке у обе ове табеле као што је приказано доле:
INSERT INTO employee values (1,'Darren', 32, '1988-05-20', 'ENGINEERING'), (2,'Abhishek', 28, '1992-05-20', 'ACCOUNTING'), (3,'Amit', 30, '1990-09-20', 'ENGINEERING'), (4,'Steven', 40, '1980-05-21', 'HUMAN RESOURCES'), (5,'Kartik', 20, '2000-05-12', 'TRAINEE'); ---------------------------------------------- INSERT INTO student values (1,'Akash', 22, '1998-05-17', 'COMPUTER'), (2,'Ian', 26, '1994-06-18', 'COMPUTER'), (3,'Shirley', 19, '2001-11-20', 'MECHANICAL'), (4,'Joana', 21, '1999-05-21', 'ELECTRONICS'), (5,'Kartik', 20, '2000-05-12', 'COMPUTER');
Као што видите горе, намерно смо додали ред који има исте атрибуте за име, старост и датум рођења.
Погледајмо сада како можемо комбинирати податке у ове 2 табеле помоћу УНИОН наредби. Упитат ћемо корисничко име и старост из обје табеле.
Једноставна УНИЈА
Упит:
SELECT name, age FROM employee UNION SELECT name, age FROM student;
У резултату ћете видети 9 записа (што значи да је горњи упит изоставио дупликат).
Излаз:
име | старост |
---|---|
Иан | 26 |
Даррен | 32 |
Абхисхек | 28 |
Амит | 30 |
Стевен | 40 |
Картик | двадесет |
Акасх | 22 |
Схирлеи | 19 |
Јоана | двадесет један |
УНИЈА СА УНИОН АЛЛ
Коришћење клаузуле УНИОН са АЛЛ осигураће да се прикажу и дупликати уноса.
Упит:
SELECT name, age FROM employee UNION ALL SELECT name, age FROM student;
Излаз:
име | старост |
---|---|
Иан | 26 |
Даррен | 32 |
Абхисхек | 28 |
Амит | 30 |
Стевен | 40 |
Картик | двадесет |
Акасх | 22 |
Схирлеи | 19 |
Јоана | двадесет један |
Картик | двадесет |
УНИЈА са условом
Додајмо услове у изјаве СЕЛЕЦТ где желимо податке о запосленима млађим од 30 година и студентима млађим од 25 година.
Упит:
SELECT name, age FROM employee where age <30 UNION SELECT name, age FROM student where age < 25;
Излаз:
име | старост |
---|---|
Амит | 30 |
Абхисхек | 28 |
Картик | двадесет |
Акасх | 22 |
Схирлеи | 19 |
Јоана | двадесет један |
Као што видите горе, скуп резултата укључује комбиновани резултат са појединачним потврђеним СЕЛЕЦТ условима.
Наручивање резултата УНИОН-а
Резултати упита УНИОН су подразумевано неуређени.
Да би се наметнуо поредак по колони која постоји у резултирајућем скупу, на крају наредбе УНИОН може се одредити клаузула ОРДЕР БИ.
Користимо исте податке о запосленима / студентима и наредијмо да резултати УНИОН-а расту у низу према узрасту.
SELECT name, age FROM employee UNION SELECT name, age FROM student ORDER BY age asc
Излаз:
име | старост |
---|---|
Схирлеи | 19 |
Картик | двадесет |
Јоана | двадесет један |
Акасх | 22 |
Иан | 26 |
Абхисхек | 28 |
Даррен | 32 |
Стевен | 40 |
Горњи скуп резултата поредан је према вредностима узраста у порасту. Такође можемо користити псеудониме ступаца да бисмо се позвали на колоне у одредби ОРДЕР БИ.
На пример: - Упит попут доњег такође ће дати исти резултат.
SELECT name as customer_name, age as customer_age FROM employee UNION SELECT name, age FROM student ORDER BY customer_age asc
Постоји још један начин да се користи клаузула ОРДЕР БИ тако што се само помиње позиција колоне уместо имена колоне.
На пример: У горњем УНИОН упиту одабиремо име и старост, што подразумева да су ове колоне на позицијама 1 и 2, респективно.
Дакле, да бисмо НАРУЧИЛИ ПО старости, можемо једноставно одредити положај уместо стварног имена колоне.
Стога ће и доњи упит дати исти резултат.
SELECT name, age FROM employee UNION SELECT name, age FROM student ORDER BY 2 asc
МиСКЛ УНИОН вс УНИОН АЛЛ
МиСКЛ пружа 2 варијанте УНИОН тј. УНИОН ДИСТИНЦТ и УНИОН АЛЛ
Имајте на уму да се ДИСТИНЦТ подразумевано подразумева, чак и ако није наведен.
Главна разлика између њих две је УНИОН АЛЛ омогућава комбиновање и враћање дупликата редова, док УНИОН само враћа комбиноване редове уклањајући дупликате.
Доња табела објашњава детаље:
Параметар | УНИЈА | УНИОН АЛЛ |
---|---|---|
Дефиниција | Еквивалентан је УНИОН ДИСТИНЦТ - игнорише дуплиране редове података док враћа резултат | Приказује све редове, укључујући дупликате |
Синтакса | СЕЛЕЦТ {цолумнЛист} ИЗ {табле1} УНИЈА СЕЛЕЦТ {цолумнЛист} ИЗ {табле2} | СЕЛЕЦТ {цолумнЛист} ИЗ {табле1} УНИОН АЛЛ СЕЛЕЦТ {цолумнЛист} ИЗ {табле2} |
Захтеви за подацима | Подаци који се комбинују треба да имају сличне типове података и да се преузимају истим редоследом када се преузимају из више табела | Исто као и УНИОН |
Често постављана питања
П # 1) Да ли је Унион бржи од ЈОИН?
Одговор: УНИОН и ЈОИНс се користе у практично две различите сврхе.
Технички гледано, УНИОН је много бржи од ЈОИН (посебно за велике скупове података) јер УНИОН само спаја редове података из појединачних СЕЛЕЦТ израза.
П # 2) Шта је УНИОН АЛЛ оператор?
Одговор: Слично као и УНИОН, оператор УНИОН АЛЛ такође враћа УНИОН између 2 СЕЛЕЦТ упита, али разлика је у томе што садржи и дупликате редова / уноса.
П # 3) Која је разлика између УНИОН и ЈОИН?
Одговор: И УНИОН и ЈОИН се користе за комбиновање података из 2 или више табела. Али постоји огромна разлика у погледу добијеног скупа резултата и начина прикупљања података.
Сличности и разлике између ЈОИН и УНИОН наведене су у доњој табели:
УНИЈА | ПРИДРУЖИТИ |
---|---|
Комбинује податке из више табела | Комбинује податке из више табела |
Не захтева ниједан посебан услов за упоређивање или комбиновање података | ЈОИН ради под условима ЈОИН који је потребан за потврду података који долазе у скупу резултата |
Подаци из различитих табела узимају се као различити редови скупа резултата | Подаци из различитих табела комбинују се у један ред - за један ред у скупу резултата може да садржи 2 колоне из табеле1, 3 колоне из табеле 2 итд., У зависности од услова ПРИДРУЖИ и упита СЕЛЕЦТ |
САВЕЗИ су једноставни и јасни | ПРИДРУЖИВАЊА захтевају сложене услове и у зависности од потреба могу се користити више врста спајања попут ИННЕР / ОУТЕР итд. |
Закључак
У овом упутству научили смо о коришћењу МиСКЛ УНИОН за комбиновање података из 2 или више СЕЛЕЦТ израза.
Изјава УНИОН је заиста корисна за прикупљање сличних података из великих скупова различитих табела и затим извршавање анализе комбинованих података.
Команда УНИОН такође подржава клаузулу АЛЛ која омогућава и доношење дупликата записа.
Препоручено читање
- Шта је МиСКЛ и зашто се користи?
- Разлика између СКЛ Вс МиСКЛ Вс СКЛ Сервер (са примерима)
- Унутрашње спајање против спољашњег спајања: Тачна разлика са примерима
- МиСКЛ ЈОИН Туториал: Унутрашњи, спољашњи, попречни, леви, десни и сопствени
- МиСКЛ Водич за креирање погледа са примерима кода
- МиСКЛ Водич за креирање табела са примерима
- Водич за изјаву о ажурирању МиСКЛ - Синтакса упита и ажурирање примера
- 40 најбољих питања и одговора за интервју за МиСКЛ (2021 питање)