|
1-ma’ruza. Ma’lumotlar bazasining maqsadi, vazifalari va asosiy tushunchalari. Rеja
|
bet | 76/101 | Sana | 20.12.2023 | Hajmi | 1,17 Mb. | | #124746 |
Bog'liq SanjarBirlashtirish amali. Ikki munosabatlarni birlashtirish amalini amalga oshirish uchun bir vaqtning o'zida operandalarning o'ziga xos munosabatlaridan biriga mos keladigan ikkita SELECT operatoridan foydalanish kerak va bu ikkita asosiy SELECT operatorlariga maxsus UNION operatorini qo'llashingiz kerak. Yuqorida aytilganlarning barchasini hisobga olgan holda, SQL tilining semantikasidan foydalangan holda birlashma qanday ishlashini yozamiz:
SELECT 1-jadval atributlar ro’yxati
FROM 1-jadval
UNION
SELECT 2-jadval atributlar ro’yxati
FROM 2-jadval
Shuni ta'kidlash kerakki, birlashtirilgan ikkita munosabatlar uchun atribut nomlari ro'yxatlari mos keladigan turlarning atributlariga murojaat qilishi kerak va ular ketma-ket tartibda ro'yxatga olinishi kerak. Agar ushbu talab bajarilmasa, sizning so'rovingiz bajarilmaydi va kompyuterda xato haqida xabar paydo bo'ladi.
Shunisi qiziqki, bu munosabatlardagi sifatlarning nomlari boshqacha bo'lishi mumkin. Bunday holda, birinchi SELECT bayonotida ko'rsatilgan atribut nomlari paydo bo'lgan munosabatlarga tayinlanadi.
Bundan tashqari, siz UNION-dan foydalanish barcha takroriy kortejlarning paydo bo'lishidan avtomatik ravishda chiqarib tashlashni anglatishini bilishingiz kerak. Shuning uchun, agar siz yakuniy natijada barcha takrorlanadigan chiziqlarni saqlab qo'yishingiz kerak bo'lsa, UNION operatori o'rniga UNION ALL operatorini qo’llash kerak. Bunday holda, ikkita munosabatni birlashtirish operatsiyasi quyidagicha bo'ladi:
SELECT 1-jadval atributlar ro’yxati
FROM 1-jadval
UNION ALL
SELECT 2-jadval atributlar ro’yxati
FROM 2-jadval
Kesishma amali. kesishish.
SQLda kesishma va ikkita munosabatlar farqining ishlashi shunga o'xshash tarzda amalga oshiriladi. Shunday qilib, biz kalitlar yordamida kesishuv operatsiyasini amalga oshirish usulini tahlil qilamiz.
Ushbu usul ikkita SELECT konstruktsiyalarining ishtirokini nazarda tutadi, ammo ular bir xil emas (birlashma sifatida), ulardan biri, xuddi "subkonstruktsiya", "kichik tikl" kabi. Ushbu operator odatda ostki so’rov deb nomlanadi.
Shunday qilib, aytaylik, bizda ikkita jadval mavjud (R1 va R2), taxminan quyidagicha aniqlanadi:
R1 (kali, …) va
R2 (kalit, …);
Ushbu operatsiyani yozishda biz IN maxsus variantidan foydalanamiz
|
| |