Постоје три главне врсте СКЛите спајања.
- КРИСТ ПРИДРУЖИТЕ
- ИННЕР ЈОИН
- ЛИЈЕВО ВАЊСКО ПРИДРУЖИТЕ
Овај водич ће вас брзо провести кроз ове СКЛите придруживања и показати вам како да се придружите записима базе података.
Почнимо са УНУТАРЊИМ ПРИДРУЖИВАЊЕМ, јер је то једноставно и гради нам основу за разумевање других врста ПРИДРУЖИВАЊА.
1: УНУТАРЊЕ ПРИДРУЖИВАЊЕ
ИННЕР ЈОИН делује тако што ствара нову табелу комбиновањем вредности наведених табела. Почиње упоређивањем реда у свакој табели и проналажењем свих подударних парова по наведеном предикату. Затим комбинује одговарајуће парове у један ред.
Општа синтакса за ИННЕР ЈОИН је:
ОДАБЕРИТЕ ступац (е) ИЗ табле1 ИННЕР ЈОИН табле2 ОН табле1.колона = табела2.колона;Погледајмо операцију ЈОИН да бисмо илустровали како она функционише.
Претпоставимо да имате табелу која се зове корисници са пољима: ид, име, старост, узорак језика СКЛ-упит за креирање табеле налази се испод:
СТВОРИ ТАБЕЛУ „корисници“ ("ид" ИНТЕГЕР НИЈЕ НУЛЛ,
„име“ ТЕКСТ НИЈЕ НУЛЛ,
"старост" ИНТЕГЕР НИЈЕ НУЛЛ,
„језички“ ТЕКСТ,
ОСНОВНИ КЉУЧ ("ИД" АУТОИНЦРЕМЕНТ)
);
Такође имамо још једну табелу која се зове редови са пољима ид и роле-СКЛ упитом који су наведени у наставку:
СТВОРИ ТАБЕЛУ "Улоге" ("ид" ИНТЕГЕР НИЈЕ НУЛЛ,
„улога“ ТЕКСТ,
ОСНОВНИ КЉУЧ ("ИД" АУТОИНЦРЕМЕНТ)
)
Сада можемо покренути операцију СКЛите ИННЕР ЈОИН користећи упит приказан у наставку:
СЕЛЕЦТ корисника.ид, корисници.име, Улоге.улога ОД корисника УНУТАРЊЕ ПРИДРУЖИВАЊЕ Улоге О корисницима.ид = Улоге.ид;Горе наведени упит резултираће табелом приказаном доле:
2: ПРЕЛАЗАК
Други тип СКЛ ПРИДРУЖИВАЊА је ПРЕСЕЖНО ПРИДРУЖИВАЊЕ. Овај тип подудара сваки ред из прве табеле са сваким редом у другој табели. Замислите то као картезијски производ јер су резултати скуп редова из табеле 1 који се подударају са сваким редом у табели 2. На пример, ако табле1 има (а) редове, а табле2 (б) редове, резултујућа табела ће имати * б ред.
БЕЛЕШКА: Будите опрезни када користите унакрсна спајања јер они могу довести до огромних сетова столова.
Општа синтакса за цросс јоин је:
СЕЛЕЦТ колона (е) ИЗ табле1 ЦРОСС ЈОИН табле2;Размислите о унакрсном спајању из корисничке табеле са свим редовима табеле улога. Размотрите СКЛ упит у наставку:
СЕЛЕЦТ * ФРОМ усерс ЦРОСС ЈОИН улоге;Покретање горњег упита резултираће табелом као што је приказано доле:
3: ЛЕВИ ВАЊСКИ ПРИДРУЖИТЕ СЕ
Коначно придруживање које ћемо погледати је ВАЊСКО ПРИДРУЖИВАЊЕ. ОУТЕР ЈОИН је продужетак ИННЕР ЈОИН. Попут ИННЕР јоин, изражавамо га под условима као што су ОН, НЕУТРАЛ и УСИНГ. Такође је добро напоменути да СКЛ дефинише три типа ВАЊСКИХ ПРИДРУЖИВАЊА: лијево, десно и потпуно, али СКЛите подржава само ЛИЈЕВО ПРИДРУЖИВАЊЕ.
ЛЕФТ спољни ЈОИН враћа све редове из ЛЕФТ табеле наведене у услову и само редове из других табела у којима је придружени услов тачан.
Размотрите следећи упит.
СЕЛЕЦТ корисника.ид, корисници.име, улоге.улога, корисници.језик ОД корисника ОСТАЛО ПРИДРУЖЕНО Улоге ОН корисника.ид = Улоге.ид;Горе наведени упит резултираће табелом приказаном доле:
Закључак
Овај водич је илустровао како се изводе СКЛ спајања у СКЛите-у и креирају нове табеле са измењеним информацијама. Добро је наставити експериментирати са СКЛ ЈОИН-овима јер они врло добро дођу приликом рада са базама података.
Хвала вам за читање!