СКЛ спољно придруживање

Skl Spolno Pridruzivane



Подразумева се да је спајање једна од најпрепознатљивијих карактеристика релационих база података. Спајања нам омогућавају да комбинујемо податке из једне или више табела на основу повезаног услова да бисмо креирали кохерентну операцију података.

У СКЛ-у постоје различити типови спајања, од којих сваки има јединствен начин на који рукује подацима из табела које учествују или резултујућег скупа. Један од најчешћих типова спајања у СКЛ-у је ОУТЕР ЈОИН.







ОУТЕР ЈОИН у СКЛ-у преузима све подударне редове из укључених табела, као и неусклађене редове из једне или обе табеле. То је згодно када имате посла са табелама које садрже НУЛЛ вредности или скупове који недостају.



Хајде да даље истражимо шта ови спојеви раде, како функционишу и како их можемо користити у СКЛ бази података.



Захтеви:

За овај водич ћемо радити са МиСКЛ 8.0 и користити Сакила узорак базе података. Међутим, слободно користите било који други скуп података за који сматрате да је применљив.





Врсте спољних спојева

Постоје три главна типа ОУТЕР ЈОИНС у СКЛ-у. Ове врсте ВАЊСКИХ ЈИНОВА укључују:

  1. Лефт ОУТЕР ЈОИНС

  2. У случају ЛЕФТ ОУТЕР ЈОИНС, спајање преузима све редове из леве табеле и само одговарајуће редове из десне табеле. Ако нема одговарајућих редова из десне табеле, спајање враћа НУЛЛ вредности за колоне у десној табели.



  3. Десни ВАЊСКИ СПОЈОВИ

  4. Ово је слично ДЕСНОМ СПОЉНОМ ПРИДРУЖЕЊУ. Међутим, преузима све редове из десне табеле, али само одговарајуће редове из леве табеле. Ако нема одговарајућих редова из леве табеле, спајање укључује НУЛЛ вредности за колоне у левој табели.

  5. ПУНИ СПОЉНИ СПОЈОВИ

  6. На крају, имамо ПУНЕ СПОЉНЕ СПОЈОВЕ. Овај тип спајања комбинује и ДЕСНИ и ЛЕВИ спољни спој. Као резултат, спајање преузима све редове када постоји подударање у левој или десној табели. Ако нема подударања, спајање враћа НУЛЛ вредности за колоне из табеле без подударања.

Синтакса СКЛ ОУТЕР ЈОИН

Следеће изражава синтаксу СКЛ ОУТЕР ЈОИН-а. Међутим, добро је имати на уму да се синтакса може незнатно разликовати у зависности од циљне базе података.

Следеће је општа структура:

СЕЛЕЦТ колоне
ИЗ табеле1
[ЛЕВО | ДЕСНО | ФУЛЛ] ОУТЕР ЈОИН табле2
ОН табле1.цолумн_наме = табле2.цолумн_наме;

Синтакса ОУТЕР ЈОИН-а у СКЛ-у је прилично разумљива.

Примери:

Хајде да погледамо неке примере употребе о томе како можемо да применимо различите типове ОУТЕР ЈОИНС у СКЛ-у.

Као што смо споменули, за демонстрацију ћемо користити базу података узорака Сакила. У овом случају користимо табеле „купац“ и „плаћање“.

Пример 1: ЛЕФТ ОУТЕР ЈОИН

Почнимо са ОУТЕР ЈОИН-ом. Претпоставимо да желимо да преузмемо све информације о клијентима заједно са њиховим информацијама о плаћању, ако су доступне.

Ово чини ЛЕФТ ОУТЕР ЈОИН применљивим јер желимо све информације о клијенту (лево) и информације о плаћању ако су доступне (десно).

Ако клијент није извршио никакву уплату, спајање ће приказати НУЛЛ вредности за колоне у вези са плаћањем.

Пример је следећи:

СЕЛЕЦТ
ц.цустомер_ид,
ц.фирст_наме,
ц.презиме,
п.износ,
п.паимент_дате
ИЗ
купац ц
ЛЕФТ ОУТЕР ЈОИН плаћање стр
НА
ц.цустомер_ид = п.цустомер_ид;

У датом упиту укључујемо колоне „цустомер_ид“, „фирст_наме“ и „ласт_наме“ из табеле „цустомер“. Такође укључујемо износ и „паимент_дате“ из табеле „паимент“.

Затим вршимо ЛЕФТ ОУТЕР ЈОИН између табела „купац“ и „плаћање“ на основу „цустомер_ид“.

Ово су сви купци (без обзира да ли је плаћање извршено или не) заједно са њиховим детаљима о плаћању (ако их има).

Пример излаза је следећи:

Пример 2: ДЕСНИ СПОЉНИ СПОЈ

Сада, пређимо на ДЕСНИ СПОЉНИ ПРИДРУЖИВАЊЕ. Претпоставимо да желимо да укључимо све информације о плаћању и повезаног купца у овом случају, ако их има.

У овом случају, ако уплату изврши купац, придруживање ће приказати детаље тог клијента. Ако постоји плаћање без придруженог клијента, приказаће се НУЛЛ вредности за колоне у вези са клијентима.

СЕЛЕЦТ
ц.цустомер_ид,
ц.име,
ц.презиме,
п.износ,
п.паимент_дате
ИЗ
купац ц
ДЕСНО СПОЉНО ПРИДРУЖЕЊЕ плаћање стр
НА
ц.цустомер_ид = п.цустомер_ид;

Добијени скуп је следећи:

Пример 3: ПОТПУНО СПОЉНО ПРИДРУЖЕЊЕ

ФУЛЛ ОУТЕР ЈОИН, с друге стране, преузима све информације о клијентима и плаћање. Ово укључује све купце и сва плаћања и приказује НУЛЛ вредности где нема подударања између табела.

СЕЛЕЦТ
ц.цустомер_ид,
ц.име,
ц.презиме,
п.износ,
п.паимент_дате
ИЗ
купац ц
ФУЛЛ ОУТЕР ЈОИН плаћање стр
НА
ц.цустомер_ид = п.цустомер_ид;

Добро је имати на уму да МиСКЛ изворно не подржава ФУЛЛ ОУТЕР ЈОИН. Морате да урадите неку магију џиуџицуа са ЛЕФТ ЈОИН, УНИОН и ДИГХТ ЈОИН. Прилично досадно, могли бисмо додати.

Закључак

У овом водичу смо научили све о ОУТЕР ЈОИНС. Научили смо шта је ОУТЕР ЈОИН у СКЛ-у, типове ОУТЕР ЈОИНС-а и примере како користити ове типове ОУТЕР ЈОИН-ова.