Ichki qo'shilish va tashqi qo'shilish o'rtasidagi farq

Ichki qo'shilish va tashqi qo'shilish o'rtasidagi farq
Ichki qo'shilish va tashqi qo'shilish o'rtasidagi farq

Video: Ichki qo'shilish va tashqi qo'shilish o'rtasidagi farq

Video: Ichki qo'shilish va tashqi qo'shilish o'rtasidagi farq
Video: IKKINCHISIGA TURMAYDI. IKKINCHI ALOQAGA QACHON HARAKAT QILISH KERAK? 2024, Iyul
Anonim

Ichki qo'shilish va tashqi qo'shilish

Ichki birlashma va tashqi birlashma - bu ma'lumotlar bazalari uchun so'rovlarni qayta ishlashda ishlatiladigan SQL birlashma usullaridan ikkitasi. Ular qo‘shma gaplar turkumiga kiradi (boshqa ikkitasi chap va o‘ng qo‘shma). Biroq, maxsus vaziyatlar uchun ishlatilishi mumkin bo'lgan Self Join mavjud. Qo'shilishning maqsadi ikkita jadvalga umumiy qiymatlar yordamida maydonlarni birlashtirishdir. Ushbu birlashmalar ma'lumotlar bazasidagi bir nechta jadvallardagi yozuvlarni birlashtiradi. U boshqa jadval sifatida saqlanishi mumkin boʻlgan natijalar toʻplamini yaratadi.

Inner Join nima?

Eng koʻp qoʻllaniladigan SQL Join operatsiyasi ichki birlashma hisoblanadi. Bu ilovalarda qo'llaniladigan birlashmaning standart turi sifatida ko'rib chiqilishi mumkin. Ichki birlashma ikkita jadvalni birlashtirish uchun birlashma-predikatdan foydalaning. Ikkala jadvalni A va B deb hisoblasak, qo'shilish-predikat A va B qatorlarini solishtirib, predikatni qanoatlantiradigan barcha juftlarni aniqlaydi. Natijani yaratish uchun A va B jadvallarining barcha qanoatlangan satrlarining ustun qiymatlari birlashtiriladi. Buni birinchi navbatda barcha yozuvlarning kesishgan birikmasini (kartezian mahsuloti) olish va keyin faqat qo'shilish-predikatini qanoatlantiradigan yozuvlarni qaytarish deb qarash mumkin. Biroq, aslida, Dekart mahsuloti hisoblanmaydi, chunki u juda samarasiz. Buning oʻrniga xesh qoʻshilishi yoki saralash-birlashtirish ishlatiladi.

Outer Join nima?

Ichki qoʻshilishdan farqli oʻlaroq, tashqi birlashma mos yozuvni topa olmasa ham barcha yozuvlarni saqlaydi. Bu shuni anglatadiki, tashqi qo'shilish natijada paydo bo'lishi uchun mos yozuvni topish uchun yozuv kerak. Buning o'rniga, u barcha yozuvlarni qaytaradi, lekin mos kelmaydigan yozuvlar null qiymatlarga ega bo'ladi. Tashqi birikmalar uchta kichik toifaga bo'linadi. Ular chap tashqi birlashma, o'ng tashqi birlashma va to'liq tashqi birikma. Ushbu farqlash mos kelmaydigan yozuvlar topilganda qaysi jadvalning (chap jadval, o'ng jadval yoki ikkala jadval) qatori saqlanishiga asoslanadi. Chap tashqi birlashmalar (shuningdek, oddiy chap qo'shilish deb ham ataladi) chap jadvalning barcha yozuvlarini saqlaydi. Bu shuni anglatadiki, agar raqamlar mos yozuvlar nolga teng bo'lsa ham, u natijalar jadvalidagi yozuvlarga ega bo'ladi, lekin B ning barcha ustunlari uchun nol qiymatlarga ega bo'ladi. Boshqacha qilib aytganda, chap jadvaldagi barcha qiymatlar o'ngdan mos keladigan qiymatlar bilan qaytariladi. jadval (yoki nol qiymatlar mos kelmasa). Agar chap jadvaldagi bir nechta satrlardagi qiymatlar o'ng jadvaldagi bitta qatorga mos kelsa, o'ngdagi jadval kerak bo'lganda takrorlanadi. O'ng tashqi birlashma chap tashqi birlashmaga deyarli o'xshaydi, lekin jadvallarni davolash hurmatga sazovor. Bu shuni anglatadiki, natijada o'ng jadvalning barcha satrlari kamida bir marta mos keladigan chap jadval qiymatlari (va mos kelmaydigan o'ng qiymatlar uchun null qiymatlar) bo'ladi. To'liq tashqi birlashma chap va o'ng tashqi birlashmalarga qaraganda kengroqdir. Bu chap va o'ng tashqi tomonlarni bir-biriga qo'shish effektini birlashtiradi.

Ichki qo'shilish va tashqi qo'shilish o'rtasidagi farq nima?

Inner Join natijada tengsiz qatorlarni saqlamaydi, lekin tashqi birlashma kamida bitta jadvaldagi barcha yozuvlarni saqlaydi (qaysi tashqi birlashma ishlatilganiga qarab). Shunday qilib, natijalar jadvalidagi mos kelmaydigan satrlarda hech qanday ma'lumotga ega bo'lmaslik xatti-harakati istalmagan, siz har doim tashqi birlashmalardan birini ishlatishingiz kerak (ichki birlashma o'rniga). Hech qanday moslik topilmasa, ichki birlashma natija bermasligi mumkin. Ammo tashqi qo'shilish har doim, hatto mos keladigan qatorlar bo'lmasa ham, natijaviy jadval hosil qiladi. Ichki birlashma har doim qiymatlari bo'lgan jadvallarni qaytaradi (agar qaytarilsa). Ammo tashqi birlashmalar null qiymatli jadvallarga olib kelishi mumkin.

Tavsiya: