Увод у врсте придруживања у СКЛ-у

Клаузула за придруживање у СКЛ-у служи за сврху комбиновања редова из две или више табела. Процес комбиновања редова зависи од ступца који је повезан са њима. Четири различите врсте спајања у СКЛ-у су именоване као унутрашње придруживање, лево придруживање, десно придруживање и потпуно придруживање. Пре него што заиста почнемо да користимо било коју врсту спајања, потребан нам је РДБМС или систем за управљање релацијским базама података у који ћемо учитати податке. Један од веома једноставних начина за разумевање придруживања је употреба Веннове дијаграме. Коришћењем Венновог дијаграма олакшава се одмеравање свих могућих и логичних односа између различитих скупова података. Разумејмо ово једно по једно користећи Веннов дијаграм. Касније ћемо схватити разлику између ових помоћу неких практичних примера. Претпоставимо да у нашој бази података постоје два скупа података похрањених у облику Табеле прве и Табеле две. Постоји одређена веза између две табеле која је наведена у облику примарног и концепта страног кључа. Ако се придружите двема табелама које имају неку врсту односа, Веннов дијаграм представљаће сценарио као нешто,

Количина овог преклапања одредиће степен сличности двеју табела, тј. Табеле А и Табеле Б. То значи да је број записа из табеле један, који се подударају са записима из друге табеле, представљен одељем преклапања. Ово је један подскуп података. Добијамо четири различите врсте спајања на основу подскупина података које прикупљамо из две табеле.

Синтакса придруживања:

SELECT column-names FROM table-name1 JOIN table-name2 ON column-name1 = column-name2 WHERE condition

Врсте придруживања у СКЛ-у

  1. Иннер Јоин
  2. Лефт Јоин
  3. Ригхт Јоин
  4. Потпуно се придружите

У наставку детаљно објашњавамо различите врсте придруживања.

1. Унутрашње придруживање

У унутрашњем спајању, бирамо само оне податке који су заједнички у обе табеле. (тј. део 3 овде) Да би се то прецизније, сви записи из обе табеле који се подударају са условима поменутим са придруживањем, бирају се у овом придруживању.

Синтакса унутрашњег придруживања:

SELECT column-names FROM table-name1 INNER JOIN table-name2 ON column-name1 = column-name2 WHERE condition

2. Лево придруживање

У левој заједници одабиремо све податке из леве табеле, а из десне табеле само одабиремо скуп података који се подударају са стањем наведеним са спајањем (овде подручје 1 + 3)

Синтакса леве Придружите се:

SELECT column-names FROM table-name1 LEFT JOIN table-name2 ON column-name1 = column-name2 WHERE condition

3. Ригхт Јоин

У десном придруживању, ми одабиремо све податке из десне табеле, а из леве таблице одабиремо само скуп података који се поклапају са условом наведеним са придруживањем (овде 3 + 2)

Синтакса десног придруживања:

SELECT column-names FROM table-name1 RIGHT JOIN table-name2 ON column-name1 = column-name2 WHERE condition

4. Потпуно се придружите

Потпуно спајање, сви записи формирају и табеле, спајају се и одабиру без обзира на наведени услов са испуњењем или не. (овде 1 + 2 + 3)

Синтакса пуног придруживања:

SELECT column-names FROM table-name1 FULL JOIN table-name2 ON column-name1 = column-name2 WHERE condition

Примери придруживања у СКЛ-у

Размотрите две табеле дате у наставку:

1. Пример ОРДЕР_ДЕТАИЛС

Табела наруџбе садржи детаље наруџбе купца као што су ИД наруџбе, број наручених производа, износ наруџбе, ИД купца који је послао наруџбу и датум када је наруџба била послана. Такву врсту табеле може користити било који веб вебсајт за чување детаља наруџбе.

ОРДЕР_ДЕТАИЛС Табела:

ИД поруџбине Но_оф_Итемс Ордер_Амоунт Идентификација купца Датум поруџбине
123 3 5500 П_1 20.01.2019
234 2 6500 П_12 10.02.2019
345 1 10000 П_13 27.05.2019
456 4 4000 П_14 11.07.2019
567 2 20656 П_1 15.12.2019
678 3 15000 П_11 27.10.2019

2. Пример ЦУСТОМЕР_ДЕТАИЛС

Сада узмимо још једну табелу у којој ће бити смештени детаљи купца како бисмо могли да доставимо наруџбу на њихове одговарајуће адресе. Стога ће табела корисника имати детаље о купцу, као што су ИД клијента (цуст_ид) који ће бити јединствени за сваког купца. Сада се име и презиме чувају у пољу званом - Цуст_Фирст_Наме и Цуст_Ласт_Наме. Остала поља ће сачувати податке као што су ИД е-поште, мобилни број купца, заједно са адресом, Пинцоде-ом, градом и државом. Тако можемо видети да ће наша таблица купаца изгледати као:

Табела ЦУСТОМЕР_ДЕТАИЛС:

Цуст_Ид Цуст_Фирст_Наме Цуст_Ласт_Наме Пин код Адреса Цуст_Мобиле Град Држава Цуст_емаил
П_50 Алице Петер 111111 330 киз стреет 123 Бангалор КА
П_12 Џејмс Дсоуза 155511 Колонија 420 абц 234 Хидерабад АП
П_15 Харри Поттер 123456 551 мг пут 444 Ноида Делхи
П_40 Милеи Паркер 111121 11 стопа пут 224 Бангалор КА
П_10 Херман Бусх 123423 34. улица улице 432 Делхи Делхи
П_18 Дан Смеђе 134523 50. независни пут 145 Гуруграм Хариана
П_20 Џејмс Руссел 111111 Пут од 101 мг 678 Бангалор КА
П_1 Милеи Мадисон 100011 45. распоред кавераппа 987 Цхеннаи ТН

Сада користећи овај пример, разумјет ћемо функционалност спајања. Можемо видети да је однос између две табеле тј. Таблице ОРДЕР_ДЕТАИЛС и таблице ЦУСТОМЕР_ДЕТАИЛС успостављен кључем који има вредност корисничког ИД-а, тј. Цустомер_Ид који је примарни кључ у табели ЦУСТОМЕР_ДЕТАИЛС и страни кључ у ОРДЕР_ДЕТАИЛС табела.

Неколико важних ствари које овде треба напоменути пре него што наставимо су:

  • Нису сви купци у нашој табели ЦУСТОМЕР_ДЕТАИЛС поставили захтев за поруџбину.
  • Нису сви захтеви за наруџбу који се налазе у нашој табели ОРДЕР_ДЕТАИЛС садрже цустомер_ид који је присутан у нашој табели ЦУСТОМЕР_ДЕТАИЛС, што значи да за неке поруџбине нема детаља о купцу.

3. Унутрашње придруживање

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

Упит:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
inner join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Излаз:

Цуст_Фирст_Наме Цуст_емаил Но_оф_Итемс Ордер_Амоунт Датум поруџбине
Милеи 3 5500 20.01.2019
Џејмс 2 6500 10.02.2019
Милеи 2 20656 15.12.2019

4. Лево придруживање

Лево придруживање пружиће вам све записе са леве табеле, тј. Таблице ЦУСТОМЕР_ДЕТАИЛС. Ако нема наруџби купца, вратит ће нулту вриједност за ступце у таблици ОРДЕР_ДЕТАИЛС.

Упит:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
left join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Излаз:

Цуст_Фирст_Наме Цуст_емаил Но_оф_Итемс Ордер_Амоунт Датум поруџбине
Алице НУЛА НУЛА НУЛА
Џејмс 2 6500 10.02.2019
Харри НУЛА НУЛА НУЛА
Милеи НУЛА НУЛА НУЛА
Херман НУЛА НУЛА НУЛА
Дан НУЛА НУЛА НУЛА
Џејмс НУЛА НУЛА НУЛА
Милеи 3 5500 20.01.2019
Милеи 2 20656 15.12.2019

5. Ригхт Јоин

У реду, Јоин ће вам дати све записе из десне табеле тј. ОРДЕР_ДЕТАИЛС табеле. Ако за наруџбу није пронађена ниједна евиденција корисника, она ће вратити нулту вриједност за ступце у таблици ЦУСТОМЕР_ДЕТАИЛС.

Упит:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
right join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Излаз:

Цуст_Фирст_Наме Цуст_емаил Но_оф_Итемс Ордер_Амоунт Датум поруџбине
Милеи 3 5500 20.01.2019
Џејмс 2 6500 10.02.2019
НУЛА НУЛА 1 10000 27.05.2019
НУЛА НУЛА 4 4000 11.07.2019
Милеи 2 20656 15.12.2019
НУЛА НУЛА 3 15000 27.10.2019

6. Потпуно се придружите

Потпуно придруживање пружиће вам све записе наведене из обе табеле.

Упит:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
full join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Излаз:

Цуст_Фирст_Наме Цуст_емаил Но_оф_Итемс Ордер_Амоунт Датум поруџбине
Алице НУЛА НУЛА НУЛА
Џејмс 2 6500 10.02.2019
Харри НУЛА НУЛА НУЛА
Милеи НУЛА НУЛА НУЛА
Херман НУЛА НУЛА НУЛА
Дан НУЛА НУЛА НУЛА
Џејмс НУЛА НУЛА НУЛА
Милеи 3 5500 20.01.2019
Милеи 2 20656 15.12.2019
НУЛА НУЛА 1 10000 27.05.2019
НУЛА НУЛА 4 4000 11.07.2019
НУЛА НУЛА 3 15000 27.10.2019

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

  1. Брже извршење, што значи и брже проналажење жељених колона.
  2. Оптимизовано, читљиво и разумљиво
  3. Повећање перформанси.

Закључак

Као што се види, користимо ЈОИН-ове за додавање и добивање поља из различитих табела.

  • Иннер Јоин дохваћа записе у којима је испуњен дани услов.
  • Лево придруживање пружиће вам све редове са леве табеле, чак и када се наведени услов не подудара.
  • Десно придруживање пружиће вам све редове са леве табеле, чак и када се наведени услови не подударају.
  • Потпуно придруживање враћа све редове када постоји подударање у једној од табела.
  • Упити за придруживање могу се користити с наредбама попут - СЕЛЕЦТ, ИНСЕРТ, УПДАТЕ, ДЕЛЕТЕ.
  • Придруживања се такође слажу са различитим клаузулама попут - ГРУПА ПО, ПОДРАЗУМЕВАЊА, ГДЈЕ, АГРЕГАТНЕ ФУНКЦИЈЕ итд.

Препоручени чланак

Ово је водич за Врсте придруживања у СКЛ-у. Овде смо расправљали о различитим врстама придруживања у СКЛ-у и његовим предностима заједно са примерима. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Предности НоСКЛ-а
  2. СКЛ Алати за управљање
  3. База података у СКЛ-у
  4. Вилдцард у СКЛ-у
  5. Топ 6 врста придруживања у МиСКЛ-у са примерима

Категорија: