Daxili Qoşulma vs Xarici Qoşulma
Daxili birləşmə və Xarici birləşmə verilənlər bazası üçün sorğuların işlənməsi zamanı istifadə edilən SQL qoşulma üsullarından ikisidir. Onlar birləşmə bəndləri ailəsinə aiddir (digər ikisi Sol və Sağ Qoşulmalardır). Bununla belə, xüsusi vəziyyətlər üçün istifadə edilə bilən Özünə Qoşulma var. Qoşulmanın məqsədi ümumi dəyərlərdən istifadə edərək sahələri iki cədvələ birləşdirməkdir. Bu birləşmələr verilənlər bazasında çoxlu cədvəllərdən qeydləri birləşdirir. O, başqa cədvəl kimi yadda saxlanıla bilən nəticə dəstləri yaradır.
Inner Join nədir?
Ən çox istifadə edilən SQL Join əməliyyatı Daxili Qoşulmadır. Tətbiqlərdə istifadə olunan standart birləşmə növü kimi qəbul edilə bilər. Daxili birləşmə iki cədvəli birləşdirmək üçün birləşmə predikatından istifadə edin. İki cədvəlin A və B olduğunu fərz etsək, birləşmə-predikat predikatı təmin edən bütün cütləri tapmaq üçün A və B sətirlərini müqayisə edəcək. Nəticə yaratmaq üçün A və B cədvəllərinin bütün razılaşdırılmış sətirlərinin sütun dəyərləri birləşdirilir. Buna əvvəlcə bütün qeydlərin çarpaz birləşməsini (kartezian məhsulu) götürmək və sonra yalnız birləşmə predikatını təmin edən qeydləri qaytarmaq kimi baxmaq olar. Lakin reallıqda Kartezian məhsulu çox səmərəsiz olduğundan hesablanmır. Əvəzində heş birləşmə və ya çeşidləmə-birləşdirmə birləşməsindən istifadə edilir.
Outer Join nədir?
Daxili birləşmədən fərqli olaraq, xarici birləşmə uyğun qeyd tapa bilməsə belə, bütün qeydləri saxlayır. Bu o deməkdir ki, xarici birləşmənin nəticədə görünməsi üçün uyğun rekord tapmaq üçün qeyd lazımdır. Bunun əvəzinə o, bütün qeydləri qaytaracaq, lakin bənzərsiz qeydlər boş dəyərlərə malik olacaq. Xarici birləşmələr üç alt kateqoriyaya bölünür. Onlar sol xarici birləşmə, sağ xarici birləşmə və tam xarici birləşmədir. Bu diferensiasiya uyğun olmayan qeydlər aşkar edildikdə hansı cədvəlin (sol cədvəl, sağ cədvəl və ya hər iki cədvəl) cərgəsinin saxlanmasına əsaslanır. Sol xarici birləşmələr (sadəcə sol birləşmə kimi də tanınır) sol cədvəlin bütün qeydlərini saxlayır. Bu o deməkdir ki, qeydlərə uyğun gələn nömrələr sıfır olsa belə, nəticə cədvəlində hələ də qeydlər olacaq, lakin B-nin bütün sütunları üçün sıfır qiymətləri olacaq. Başqa sözlə, sol cədvəldəki bütün dəyərlər sağdan uyğun qiymətlərlə qaytarılır. cədvəl (və ya uyğun gəlmədikdə null dəyərlər). Sol cədvəldən bir neçə sətirdən olan qiymətlər sağdakı cədvəldən bir sıra ilə uyğunlaşdırılarsa, sağdakı cədvəl tələb olunduğu kimi təkrarlanacaq. Sağ xarici birləşmə sol xarici birləşməyə çox bənzəyir, lakin masaların müalicəsi hörmətlə qarşılanır. Bu o deməkdir ki, nəticə ən azı bir dəfə uyğun sol cədvəl qiymətləri ilə sağ cədvəlin bütün cərgələrinə (və uyğun olmayan sağ dəyərlər üçün null dəyərlərə) malik olacaqdır. Tam xarici birləşmə həm sol, həm də sağ xarici birləşmələrdən daha əhatəlidir. Bu, həm sol, həm də sağ kənarın birləşmiş tətbiq effektinin birləşməsi ilə nəticələnir.
Daxili Qoşulma ilə Xarici Qoşulma arasındakı fərq nədir?
Daxili Qoşulma nəticədə bənzərsiz cərgələri saxlamır, lakin xarici birləşmə ən azı bir cədvəldəki bütün qeydləri saxlayacaq (hansı xarici birləşmənin istifadə olunduğundan asılı olaraq). Beləliklə, nəticə cədvəlində uyğun olmayan sətirlərdə məlumatın olmaması davranışı arzuolunmazdır, siz həmişə xarici birləşmələrdən birini istifadə etməlisiniz (daxili birləşmə yerinə). Heç bir uyğunluq tapılmadıqda daxili birləşmə nəticə verməyə bilər. Lakin xarici birləşmə həmişə uyğun sətirlər olmasa belə, nəticə cədvəli yaradacaq. Daxili birləşmə həmişə dəyərləri olan cədvəlləri qaytaracaq (əgər qaytarılsa). Lakin xarici birləşmələr null dəyərləri olan cədvəllərlə nəticələnə bilər.