4-laboratoriya ishi. Har bir talaba o’z mavzusidan kelib chiqib quyida keltirilgan vazifani o’zini ishlayotgan bazasi bo’yicha yoritish kerak



Download 3,6 Mb.
bet10/21
Sana31.05.2023
Hajmi3,6 Mb.
#947040
1   ...   6   7   8   9   10   11   12   13   ...   21

Cross Join


Oʻzaro qoʻshilish yoki oʻzaro qoʻshish bir jadvaldagi har bir satr ikkinchi jadvaldagi har bir satr bilan birlashtirilgan qatorlar toʻplamini yaratadi. Masalan, Buyurtmalar jadvali va Mijozlar jadvaliga qo'shilamiz:

Agar Buyurtmalar jadvalida 3 qator va Mijozlar jadvalida 3 qator bo'lsa, u holda o'zaro bog'lanish natijasi qatorlar bog'langan yoki bog'lanmaganligidan qat'i nazar, 3 * 3 = 9 qatorga teng bo'ladi.

Yashirin o'zaro birlashma bilan siz CROSS JOIN iborasini o'tkazib yuborishingiz va natijada barcha jadvallarni ro'yxatlashingiz mumkin:




Bog'lanishlarda guruhlash
Guruhlash INNER/OUTER JOIN ifodalarida ham ishlatilishi mumkin. Masalan, har bir foydalanuvchi uchun u qilgan buyurtmalar sonini ko'rsatamiz:

Guruhlash mezoni xaridorning identifikatori va ismidir. SELECT bayonoti Buyurtmalar jadvalidagi Id ustunidan foydalanib, mijozning nomini va buyurtmalar sonini tanlaydi.

Bu ICHKI JOIN bo'lganligi sababli, guruhda faqat buyurtmasi bo'lgan xaridorlar bo'ladi.


Agar buyurtmaga ega bo'lmagan mijozlarni ham ko'rsatish kerak bo'lsa, OUTER JOIN ishlatiladi:



Yoki mahsulotlarni buyurtmalarning umumiy miqdori bilan ko'rsating:





UNION
UNION operatori, masalan, ichki birlashma yoki tashqi birlashma, ikkita jadvalni birlashtirishga imkon beradi. Ammo ichki/tashqi birlashmalardan farqli o'laroq, birlashmalar turli jadvallarning ustunlarini emas, balki bir xil turdagi ikkita to'plamni birlashtiradi. Rasmiy ittifoq sintaksisi:



Masalan, bank mijozlari (Mijozlar jadvali) va bank xodimlari (Xodimlar jadvali) uchun ma’lumotlar bazasida ikkita alohida jadval mavjud deylik:




Bu erda ikkala jadval, turli xil ma'lumotlarga ega bo'lishiga qaramay, ikkita umumiy atribut bilan tavsiflanishi mumkinligini ko'rishimiz mumkin - ism (Ism) va familiya (Familiya). Keling, bir vaqtning o'zida ikkala jadvaldan bankning barcha mijozlari va xodimlarini tanlaymiz:

Bunday holda, birinchi jadvaldan ikkita qiymat tanlanadi - mijozning ismi va familiyasi. Ikkinchi jadvaldan Xodimlar, shuningdek, ikkita qiymat tanlanadi - xodimlarning ismi va familiyasi. Ya'ni, birlashtirganda, tanlangan ustunlar soni va ularning turi ikkala tanlov uchun bir xil bo'ladi.

Bunday holda, birlashtirilgan tanlov ustunlari nomlari birinchi tanlov ustunlari nomlariga mos keladi. Va agar biz bir vaqtning o'zida saralashni xohlasak, TARTIBI BY iboralarida birinchi tanlovning ustunlari nomlariga e'tibor qaratishimiz kerak:

Bunday holda, har bir namunada mijoz yoki xodimning ismi va familiyasining birikmasini ifodalovchi bitta ustun mavjud. Ammo mijozlar uchun ustun to'liq ism, xodimlar uchun esa Xodimning nomi deb nomlanadi. Shunga qaramay, birinchi tanlovdagi ustun nomi saralash uchun ishlatiladi va u natijada ham bo'ladi:

Agar bitta tanlovda boshqasidan ko'ra ko'proq ustun bo'lsa, ularni birlashtirib bo'lmaydi. Misol uchun, quyidagi holatda qo'shilish xato bilan muvaffaqiyatsiz bo'ladi:

Bundan tashqari, tegishli ustunlar turiga mos kelishi kerak. Misol uchun, quyidagi misol ma'lumotlar turiga mos kelmasligi sababli bajarilmaydi:

Bunda birinchi tanlovning birinchi ustuni NVARCHAR tipidagi, ya'ni satrni saqlaydi. Ikkinchi namunaning birinchi ustuni - Id INT tipidagi, ya'ni raqamni saqlaydi.

Agar ikkala birlashtirilgan to'plamlar qatorlarida bir xil qiymatlarni o'z ichiga olsa, u holda birlashtirish paytida ikki nusxadagi qatorlar o'chiriladi. Masalan, Mijozlar va Xodimlar jadvallarida bank xodimlari bir vaqtning o'zida uning mijozlari bo'lishlari va ikkala jadvalda ham bo'lishi mumkin. Yuqoridagi misollarda birlashtirilganda, takroriy satrlar olib tashlandi. Agar birlashtirganda hamma narsani, shu jumladan takroriy satrlarni saqlash kerak bo'lsa, buning uchun ALL operatoridan foydalanish kerak:




Xuddi shu jadvaldagi tanlovlarni ham birlashtirishingiz mumkin. Masalan, mijozning hisobidagi summaga qarab, biz unga ma'lum foizlarni undirishimiz kerak:

Bunday holda, agar summa 3000 dan kam bo'lsa, hisobvaraqdagi summaning 10% miqdorida foizlar undiriladi. Hisobda 3000 dan ortiq bo'lsa, foiz 30% gacha oshadi.




Download 3,6 Mb.

Do'stlaringiz bilan baham:
1   ...   6   7   8   9   10   11   12   13   ...   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish