Ішкі біріктіру және сыртқы қосылу
Ішкі біріктіру және сыртқы біріктіру - дерекқорлар үшін сұрауларды өңдеуде қолданылатын SQL біріктіру әдістерінің екеуі. Олар біріктіру мүшелерінің тобына жатады (қалған екеуі сол және оң жақ қосындылар). Дегенмен, арнайы жағдайларда қолдануға болатын Self Join бар. Қосылу мақсаты – екі кестеге ортақ мәндерді қолданатын өрістерді біріктіру. Бұл біріктірулер дерекқордағы бірнеше кестелердің жазбаларын біріктіреді. Ол басқа кесте ретінде сақтауға болатын нәтиже жиындарын жасайды.
Ішкі біріктіру дегеніміз не?
Ең жиі қолданылатын SQL біріктіру операциясы ішкі біріктіру болып табылады. Оны қолданбаларда қолданылатын біріктірудің әдепкі түрі ретінде қарастыруға болады. Ішкі біріктіру екі кестені біріктіру үшін join-предикатты пайдаланады. Екі кестені A және B деп есептесек, онда біріктіру-предикат предикатты қанағаттандыратын барлық жұптарды табу үшін A және B жолдарын салыстырады. Нәтижені жасау үшін A және B кестелерінің барлық қанағаттандырылған жолдарының баған мәндері біріктіріледі. Оны алдымен барлық жазбалардың айқас біріктіруін (декарттық көбейтінді) алып, содан кейін біріктіру-предикатты қанағаттандыратын жазбаларды ғана қайтару ретінде қарастыруға болады. Дегенмен, шын мәнінде декарттық өнім есептелмейді, себебі ол өте тиімсіз. Оның орнына хэшті біріктіру немесе сұрыптау-біріктіру қосылымы пайдаланылады.
Сыртқы қосылу дегеніміз не?
Ішкі біріктіру сияқты емес, сыртқы біріктіру сәйкес жазбаны таба алмаса да, барлық жазбаларды сақтайды. Бұл сыртқы біріктіру нәтижеде көрінуі үшін сәйкес жазбаны табу үшін жазба қажет екенін білдіреді. Оның орнына ол барлық жазбаларды қайтарады, бірақ сәйкес келмейтін жазбаларда бос мәндер болады. Сыртқы қосылыстар үш ішкі санатқа бөлінеді. Олар сол сыртқы біріктіру, оң жақ сыртқы біріктіру және толық сыртқы біріктіру. Бұл саралау сәйкес келмейтін жазбалар табылған кезде қай кестенің жолы (сол жақ кесте, оң кесте немесе екі кесте) сақталатынына негізделген. Сол жақ сыртқы біріктірулер (жай сол жақ біріктіру деп те белгілі) сол кестенің барлық жазбаларын сақтайды. Бұл дегеніміз, сан сәйкес келетін жазбалар нөл болса да, нәтижелер кестесінде әлі де жазбалар болады, бірақ В барлық бағандары үшін бос мәндер болады. Басқаша айтқанда, сол кестедегі барлық мәндер оң жақтан сәйкес мәндермен қайтарылады. кесте (немесе сәйкес келмеген кезде нөл мәндер). Сол жақ кестедегі бірнеше жолдардың мәндері оң кестенің бір жолымен сәйкес келсе, оң жақтағы кестедегі жол қажетінше қайталанады. Оң жақ сыртқы біріктіру сол жақ сыртқы біріктіруге өте ұқсас, бірақ кестелерді өңдеу құрметке ие. Бұл нәтиже оң жақ кестенің барлық жолдарының сәйкес келетін сол жақ кесте мәндерімен (және сәйкес келмейтін оң мәндер үшін нөлдік мәндер) кемінде бір рет болатынын білдіреді. Толық сыртқы біріктіру сол және оң сыртқы қосылыстарға қарағанда кеңірек. Бұл сол жақ пен оң жақтың сыртқы жағын біріктіру әсерін біріктіруге әкеледі.
Ішкі біріктіру мен сыртқы қосылудың айырмашылығы неде?
Ішкі біріктіру нәтижедегі сәйкес емес жолдарды сақтамайды, бірақ сыртқы біріктіру кем дегенде бір кестедегі барлық жазбаларды сақтайды (қай сыртқы біріктіру пайдаланылғанына байланысты). Сонымен, нәтижелер кестесіндегі сәйкес келмейтін жолдарда ақпарат болмауы қажет емес, әрқашан сыртқы біріктірулердің бірін пайдалану керек (ішкі біріктіру орнына). Сәйкестік табылмаса, ішкі біріктіру нәтиже бермеуі мүмкін. Бірақ сыртқы біріктіру әрқашан нәтижелі кестені жасайды, тіпті сәйкес жолдар болмаса да. Ішкі біріктіру әрқашан мәндері бар кестелерді қайтарады (қайтарылған болса). Бірақ сыртқы біріктірулер нөл мәндері бар кестелерге әкелуі мүмкін.