Yuqorida ko‘rsatilganlardan foydalanib tanlangan variyantga muvofiq mavzu uchun MySQL da INNERJOIN,LEFTJOIN,RIGHT JOIN, CROSS JOIN, FULL OUTER JOIN va ON standat so‘zilari bilan ishlang.
Bajarilgan ishlar haqida hisobot tayyorlang (1-2-ilovalarga qarang).
Nazorat savollari
SQL tilidagi qanday JOIN larni bilasiz?
INNER JOIN qanday vazifani bajaradi?
LEFT JOIN qanday vazifani bajaradi?
RIGHT JOIN qanday vazifani bajaradi?
CROSS JOIN qanday vazifani bajaradi?
FULL OUTER JOIN qanday vazifani bajaradi?
SQL Join - SQL sintaksisida eng ko'p ishlatiladigan buyruqlardan biri. U oldindan belgilangan mezonlar bo'yicha ma'lumotlar bazalarida ma'lumotlarni qidirish uchun ishlatiladi. Xususan, Join bir nechta ma'lumotlar guruhlarini yagona axborot oqimiga birlashtirish uchun javobgardir.
Va bu haqiqatan ham zarur, chunki 100% hollarda SQL sintaksisini qo'llab-quvvatlaydigan relyatsion ma'lumotlar bazalari tarkibi ko'plab jadvallarga bo'linadi, ulardagi ma'lumotlarni maxsus buyruqlar yordamida filtrlash va umumiy jadvallar pulidan ma'lumot so'rash mumkin.
SQL Join turli xil ma'lumotlar bazasi elementlari va ularning farqlovchi xususiyatlari (teglar, identifikatorlar, nomlar va boshqalar) o'rtasidagi munosabatlarga asoslangan ma'lumotlar bazasini qidirish filtrini o'rnatishga yordam beradi.
SQL ichki Join SQL ma'lumotlar bazalarida qidiruv natijalarini birlashtirishning ushbu rejimi avtomatik ravishda yoqiladi. Agar siz Join turini ataylab belgilamasangiz , u holda Inner ishlaydi Qo'shiling . Uning yordamida siz bir vaqtning o'zida ikkita mezonni (ikkita jadval) belgilashingiz va ular bo'yicha tarkibni filtrlashingiz mumkin.
Ruhda SQL so'rovini yozish kifoya:
TANLASH *
1-jadvaldan
JOIN table-2 ON table-1.parameter=table-2.parameter
WHERE jadvali- 1.parametr IS ' myData '
Aslida, biz birinchi jadvaldan ma'lumotlarni chiqarib, ikkinchi jadvaldagi ma'lumotlar bilan birlashtirishga harakat qilmoqdamiz, shu bilan birga faqat parametr qiymatiga mos keladigan yozuvlarni filtrlaymiz. Birinchi jadvalda u myData ga teng .
Amalda, bu, masalan, musiqa asboblari bo'lgan saytda foydalanish mumkin. Siz ma'lum bir brendning gitaralarini so'rashingiz mumkin, shu bilan birga torlar soni ruhida qo'shimcha shartni tanlashingiz mumkin.
TANLASH *
SevenStringGuitarsdan
SevenStringGuitar.brandId=Ibanez.brandId DA Ibanezga QO'SHILING
Ushbu SQL so'rovi bilan biz "Gitara" toifasidagi barcha Ibanez brend asboblarini 7 torli filtrlashimiz mumkin.
SQL Self Join o'zidan so'rovlar Bir jadvaldagi tarkibni filtrlash kerak bo'lganda Join foydali bo'ladi. Misol uchun, sizda ma'lumotlar bazasida mahsulotlar ro'yxati mavjud. Ularning har biri o'z brendiga ega, ammo bir xil ishlab chiqaruvchi tomonidan etkazib beriladiganlar ham bor. o'zini Join bir jadvaldagi ikkita ma'lumot to'plamini birlashtirish uchun ishlatilishi mumkin.
Misol uchun, siz mahsulot nomi haqida ma'lumot so'rashingiz va parallel ravishda tovar nomi bilan ma'lumotlar bazasiga kirishingiz mumkin. Funktsiyaning natijasi mezonlarga javob beradigan mahsulotlarning yangi ro'yxatining paydo bo'lishi bo'ladi.
Bu holda SQL buyrug'i quyidagicha ko'rinishi mumkin:
TANLASH *
Mahsulotlardan table.product=table.brand mahsulotlarga QO'SHILING
Bunday stsenariy deyarli har qanday ma'lumotlar bazasida foydalidir, chunki bitta jadval ko'pincha ko'p sonli umumiy parametrlarga ega bo'lgan mahsulotlar yoki kontent haqidagi ma'lumotlarni saqlashi mumkin.
SQL Cross Join Ma'lumotlarni filtrlashning eng aniq varianti. U bir vaqtning o'zida bir nechta jadvaldagi elementlarning barcha kombinatsiyalarini hech qanday qo'shimcha ma'lumotga murojaat qilmasdan yig'ishni o'z ichiga oladi (jadvalda id yoki boshqa qatorni ko'rsatish shart emas).
Cross bilan standart SQL so'rovi Join quyidagicha ko'rinishi mumkin:
TANLASH *
1-jadvaldan
CROSS JOIN jadvali-2
Bu ma'lumotlar bazasidan faqat tanlangan jadvallar bo'yicha filtrlangan barcha qatorlarni to'playdigan elementlarning yangi ro'yxatini yaratish uchun etarli.
Olingan ma'lumotlar to'plami Dekart mahsuloti deb ataladi. Sxematik jihatdan, u ko'pincha elementlarning ikki guruhi o'rtasidagi ko'p sonli kesishmalar sifatida tasvirlangan.
Ushbu turdagi JOIN onlayn-do'konlarda tanlangan kiyim xususiyatlariga (rang va o'lcham yoki boshqa parametrlarga) muvofiq barcha mumkin bo'lgan juftlarni ko'rsatish uchun ishlatiladi.
SQL tashqi Join Tashqi Join ichki qismga qarama-qarshidir Qo'shiling . Nomidan ko'rinib turibdiki, tashqi Join nafaqat qidiruvning ichidan, balki tashqaridan ham ma'lumot beradi. Ya'ni, dastur nafaqat oldindan tanlangan mezonlarga muvofiq nuqtalarni qidiradi, balki sizga "ushlash" ni biroz bo'shatishga va ko'proq "erkin" qidiruv natijalarini, shu jumladan jadvaldagi mezonlarga mos keladigan jadval elementlarini taqdim etishga imkon beradi. SQL so'rovi, lekin to'liq emas.
Bu yondashuv qachon kerak bo'lishi mumkin? Masalan, tovarlarni sinchkovlik bilan filtrlash uchun. Agar siz Shesterochka kompaniyasining mahsulotlarini sotib olishga tayyor bo'lsangiz va ular orasida sut borligiga qarshi bo'lmasangiz, lekin ayni paytda siz boshqa ishlab chiqaruvchilardan sut sotib olishni xohlamasangiz, unda bunday filtr sizga mos keladi. Bu sizga qidiruv mezonlaridan biriga imtiyozlar qatorida biror narsa berishga imkon beradi.