7-Amaliy mashg’ulot Mavzu: UNION, INTERSECT va MINUS standart so‘zlaridan foydalanish Ishdan maqsad: Berilgan predmet soha ma`lumotlar bazasidan foydalanib UNION, INTERSECT va MINUS standart so`zlaridan foydalanishni o`rganish. Masalani qo`yilishi: Predmet soha ma`lumotlar bazasi shakllantirilgandan so`ng ob`yektlardagi ma`lumotlarni birlashtirish maqsadida UNION, INTERSECT va MINUS ob`yektlargagi standat so`zilaridan foydalanish. Barcha ma`lumotlarni yuqoridagi standart so`zlar orqali birlashtiradigan so`rvlar tashkil etish. Uslubiy ko`rsatmalar: Agar select operatorida from suzidan keyin 1 ta jadval emas 2 ta jadval ishlatilsa, bunda surovni natija tashkil qiluvchi jadval 1 jadvali xar bir satri bilan 2-jadvalni xar bir satriga ulashdan (kombinatsiyadan) yaratiladi. Bu amal jadvallarni birlashtirish deyiladi. Rеlyatsion Mbda axborotlarni ortiqchaligini normallashtirish yo`li bilan kamaytiriladi. Jadvallar ustida har xil amallar bеrish mumkin. Bu amallarni tartiblab ishlab chiqqan odam Kodd hisoblanadi. Amallarga quyidagilar kiradi: - birlashtirish(UNION); - kеsishuv(INTERSECT); - ayirma(MINUS); UNION (Birlashtirish). R va S munosabatlarni birlashtirish RUS ko`rinishida bеrilib, bu amalni natijasi R munosabatga tеgishli bo`lgan yoki S munosabatga tеgishli bo`lgan yoki ikkalasiga ham tеgishli bo`lgan kortеjlar to`plamidir. Bu amallarni bajarayotganda bir xil Natijani tartibi ham opеrandlar tartibiga tеng bo`ladi. tartibda bo`lishi kеrak. AUB 9.1 – rasm. Union birlashtirish amali Venn diagrammasidagi tasviri INTERSECT(kesishuv). R va S munosabatlarni ayirmasi R∩S ko`rinishida yoziladi va R va S ob`yektga tegishli bo`lgan kortejlar to`plamiga aytiladi. Bu erda kortejlar har ikki ob`yektga ham bir xil ko`rinishda bo`lishi shart. Bu amalni bajarganda ham opеrandlarni tartibi bir xil bo`lishi kеrak. A∩B 9.2 – rasm. Union birlashtirish amali Venn diagrammasidagi tasviri MINUS(Ayirma) yoki EXCEPT. R va S munosabatlarni ayirmasi R-S ko`rinishida yoziladi va undagi kortеjlar to`plami R munosabatga tеgishli, lеkin S munosabatga tеgishli bo`lmagan kortеjlardir. Bu amalni bajarganda ham opеrandlarni tartibi bir xil bo`lishi kеrak. A/B 9.3 – rasm. Except (Minus) birlashtirish amali Venn diagrammasidagi tasviri UNION ifodasi bir yoki bir nechta SQL so‘rovlar natijasini birlashtirishga imkon beradi. Ikki yoki undan ortiq jadvallar jamlanganda ularning chiqish ustunlari jamlash uchun o‘zaro muvofiq bo‘lishi kerak. Bu shuni bildiradiki, xar bir so‘rov bir xil sondagi ustunlarni ko‘rsatib, bu ustunlar mos tartibda kelishi va xar biriga mos tiplarga ega bo‘lishi kerak. Sonli maydonlar bir xil tipga va kattalikka ega bo‘lishi kerak. Simvolli maydonlar bir xil sondagi simvollarga ega bo‘lishi kerak. Moslik ta’minlovchi yana bir shart bo‘sh (NULL) qiymatlar jamlanma ixtiyoriy ustunida man etilgan bo‘lishi kerak. Bu qiymatlar boshqa jamlovchi so‘rovlarda xam man etilgan bo‘lishi kerak. Bundan tashqari UNION operatoridan, xamda jamlovchi so‘rov agregat funksiyalardan so‘rovlardagi kabi foydalanishingiz mumkin siz ostki so‘rovlarda SELECT operatorida emas. Siz individual natijani tartiblash uchun ORDER BY operatoridan foydalanishingiz mumkin. UNION ifodasi bir yoki bir necha SQL so‘rovlar natijasini birlashtirishga imkon beradi. INTERSECT – bu operator ikki jadvalni taqqoslab ikkisida ham mavjud bo’lgan elementni chop etadi. Masalan A to’plamda 1, 2 va 3 ; B da esa 3, 4 va 5 bo’lsin. U holda: SELECT * FROM A INTERSET SELECT * FROM B buyrug’ining natijasida 3 soni chop etiladi. MINUS – birinchi jadvalda mavjud va ikkinchisida yo’q bo’lgan elementlarni chiqaradi. Yuqoridagi ifodada intersect o’rniga minus operatorini yozsak, natijada ekranga 1 va 2 soni chiqariladi. UNION ALL- (Bir nechta so'rovlarni bitta SQL-buyruqqa birlashtirish va shunga mos ravishda so'rovlar natijalarini birlashtirish uchun UNION kalit so'zidan foydalaniladi. UNION bilan qo'shilgan so'rovlar bir xil miqdordagi ustunlarni chiqarishi kerak va ustunlar ma'lumotlari turlari mos bo'lishi kerak. Natijalarni birlashtirishda takroriy satrlar avtomatik ravishda o'chiriladi; takroriy satrlarning o'chirilishining oldini olish uchun UNION so'zining o'rniga UNION ALL ifodasini ishlatiladi. Va nihoyat, bog'langan so'rov satrlarini ORDER BY jumlasi yordamida buyurtma qilish mumkin. Ishni bajarish tartibi Intersect, Minus operatorlari MySQLda ishlamaydi. Shuning uchun bu laboratoriya ichini Open Server dasturida bajaramiz. 1. Zavod va kon xodimlari jadvallarini ko’ramiz; So`rov: SELECT * FROM xodimlar; Natija: 9.4 – rasm.xodimlar jadvalidagi ma’lumotlarni ko’rish So`rov: SELECT *FROM ishchi; Natija: 9.5 – rasm. ishchij advalidagi ma’lumotlarni ko’rish 2. Bu ikki jadvalni UNION yordamida birlashtiramiz. So`rov: SELECT * FROM ishchi UNION SELECT * FROM xodimlar; Natija: 9.6 – rasm. Ishchi va xodimlar jadvallarini Union operatori orqali birlashtirish natijasi 3. Bu ikki jadvalni UNION ALL yordamida birlashtiramiz. So`rov: SELECT * FROM ishchi UNION ALL SELECT * FROM xodimlar; Natija: 9.7 – rasm. Ishchi va xodimlar jadvallarini Union operatori orqali birlashtirish natijasi 4. INTERSECT yordamida jadvallar kesishmasini topamiz; So`rov: SELECT *FROM ishchi INTERSECT SELECT *FROM xodimlar; Natija: id FISH lavozimi 3 Nazrullayev Boyitish ishlari Oybek menejeri maosh 10000000 6 Duvlonov Bunyod 7 Shobotayev Shahzod Ekologiya va atrof 10000000 muhit ishlara Loyihalash ishlari 9000000 muhandisi 9.8 – rasm. ishchiv a xodimlar jadvallarini Inresect operatori qo’llanilishi natijasi 5. MINUS yordamida 1-jadvalimizdan ikkinchisini ayirish amalini bajaramiz: SELECT *FROM ishchi MINUS SELECT *SELECT xodimlar; Natija: id FISH Lavozimi maosh 1 Eshbotayev Tegirmon 7000000 Sardor mashinisti 2 Abirov Dilshod Labaratori 9000000 ya mu 4 Soliyev Elmurod Xavsizlik 7000000 ishlari 5 Muhammadiyev Begzod Gruz 8000000 mashinisti 9.9– rasm. ishchi va xodimlar jadvallarini Inresect operatori qo’llanilishi natijasi