Ички кошулуунун жана тышкы кошулуунун ортосундагы айырма

Ички кошулуунун жана тышкы кошулуунун ортосундагы айырма
Ички кошулуунун жана тышкы кошулуунун ортосундагы айырма

Video: Ички кошулуунун жана тышкы кошулуунун ортосундагы айырма

Video: Ички кошулуунун жана тышкы кошулуунун ортосундагы айырма
Video: Аялдыкын жаласа болбу сиздерге кеңеш берет 2024, Ноябрь
Anonim

Ички кошулуу жана тышкы кошулуу

Ички кошулуу жана Сырткы кошулуу - бул маалымат базалары үчүн сурамдарды иштетүүдө колдонулган SQL кошулуу ыкмаларынын экөө. Алар кошулуучу сүйлөмдөрдүн үй-бүлөсүнө кирет (калган экөө Сол жана Оң кошулмалар). Бирок, адистештирилген кырдаалдар үчүн колдонула турган Өзүн-өзү кошулуу бар. Кошулуу максаты - эки таблицага жалпы маанилерди колдонуу менен талааларды бириктирүү. Бул кошулмалар маалымат базасындагы бир нече таблицадагы жазууларды бириктирет. Ал башка таблица катары сактала турган натыйжа топтомдорун түзөт.

Ички кошулуу деген эмне?

Эң көп колдонулган SQL кошулуу операциясы - ички кошулуу. Бул тиркемелерде колдонулган кошулуунун демейки түрү катары каралышы мүмкүн. Ички кошулуу эки таблицаны бириктирүү үчүн join-predicate колдонуңуз. Эки таблица А жана В болсо, анда кошулуу-предикат предикатты канааттандырган бардык жуптарды табуу үчүн A жана B катарларын салыштырат. Натыйжаны түзүү үчүн A жана B таблицаларынын бардык канааттандырылган саптарынын мамыча маанилери бириктирилет. Муну адегенде бардык жазуулардын кайчылаш кошулуусун (декарттык продукт) алып, андан кийин кошулуу-предикатты канааттандырган гана жазууларды кайтаруу катары кароого болот. Бирок, чындыгында, декарттык продукт эсептелбейт, анткени ал өтө натыйжасыз. Анын ордуна хэш кошулуу же сорттоо-бириктирүү кошулуусу колдонулат.

Тышкы кошулуу деген эмне?

Ички кошулуудан айырмаланып, сырткы кошулуу дал келген жазууну таба албаса дагы бардык жазууларды сактайт. Бул тышкы кошулуу натыйжада пайда болушу үчүн дал келген жазууну табуу үчүн жазуу керек дегенди билдирет. Анын ордуна, ал бардык жазууларды кайтарат, бирок дал келбеген жазуулар нөл мааниге ээ болот. Сырткы кошулмалар үч суб категорияга бөлүнөт. Алар сол сырткы кошулуу, оң сырткы кошулуу жана толук тышкы кошулуу. Бул дифференциация дал келбеген жазуулар табылганда кайсы таблицанын (сол таблица, оң таблица же эки таблица) сабы сакталганына негизделет. Сол сырткы кошулмалар (жөн эле сол кошулуу деп да белгилүү) сол таблицанын бардык жазууларын сактайт. Демек, санга дал келген жазуулар нөл болсо да, натыйжа таблицасында дагы эле жазуулар болот, бирок В бардык мамычалары үчүн нөл маанилери болот. Башкача айтканда, сол таблицадагы бардык маанилер оңдон дал келген маанилер менен кайтарылат. таблица (же дал келбеген учурда нөл маанилери). Эгерде сол таблицадагы бир нече саптардагы маанилер оң жактагы таблицадан бир катарга дал келсе, оң жактагы таблица талапка ылайык кайталанат. Оң сырткы кошулуу сол сырткы кошулууга дээрлик окшош, бирок үстөлдөрдүн мамилеси урматталат. Бул натыйжада оң жадыбалдын бардык саптары жок дегенде бир жолу дал келген сол таблицанын маанилери (жана дал келбеген оң маанилер үчүн нөл маанилери) болот дегенди билдирет. Толук сырткы кошулуу сол жана оң тышкы кошулмаларга караганда кеңири. Бул сол жана оң сыртты бириктирүү эффектин айкалыштырууга алып келет.

Ички кошулуу менен сырткы кошулуунун ортосунда кандай айырма бар?

Ички кошулуу натыйжада теңдешсиз саптарды сактабайт, бирок сырткы кошулуу жок дегенде бир таблицадагы бардык жазууларды сактайт (кайсы тышкы бириктирүү колдонулганына жараша). Ошентип, натыйжалар таблицасында дал келбеген саптарда маалымат жок болуу жагымсыз көрүнүш, сиз дайыма тышкы кошулмалардын бирин (ички кошулуунун ордуна) колдонушуңуз керек. Эгерде эч кандай дал келүү табылбаса, ички кошулуу натыйжа бербеши мүмкүн. Бирок сырткы кошулуу, дал келген саптар жок болсо да, ар дайым жыйынтык таблицасын чыгарат. Ички кошулуу ар дайым маанилери бар таблицаларды кайтарып берет (эгер кайтарылса). Бирок сырткы кошулуулар нөл маанилери бар таблицаларга алып келиши мүмкүн.

Сунушталууда: