LABORATORIYA ISHI № 6
Mavzu. Multimedia ma'lumotlar bazasini yaratish. Ma'lumotlar bazasi tuzilishini loyihalash uchun asboblardan foydalanish. MBD yozuvlarini boshqarish.
Ishdan maqsad: Join operatori yordamida jadvallarni yarating va qo'shing.
Mavzu bo’yicha topshiriq:
1. 3 jadval tuzing.
2. Jadvallarga qo'shiling.
Hisobot shakli
1. Adabiyotlar va turli manbalardan foydalangan holda laboratoriya ishi to'g'risida hisobot tuzing.
2. Hisobotga skrinshotlarni joylashtiring.
Nazariy qism
SQL qo'shilish uchun kalit so'z tanlangan iboralarni yaratish uchun ishlatiladi. Join yo'riqnomasi bir nechta jadvallarning ustunlarini bitta jadvalga birlashtirishga imkon beradi. Birlashtirish vaqtinchalik va jadvallarning yaxlitligi buzilmaydi. Join operatorining uch turi mavjud:
inner join;
outer join;
cross join;
O'z navbatida, outer join left, right va full bo'lishi mumkin (outer so'z odatda qoldirilmaydi).
Join konstruktsiyasi quyidagicha:
... join_type join table_name on condition ...
Bu erda join_type - bu join ifodasi turi, table_name - natijaga qo'shiladigan jadval nomi, condition - bu jadvallarga qo'shilish uchun shart.
Join tuzilishi select-ifodadan so'ng darhol joylashgan. Tegishli sonli jadvallarni birlashtirish uchun ketma-ket bir nechta bunday inshootlardan foydalanishingiz mumkin. Jadvalda tashqi kalit bo'lsa, join foydalanish mantiqan to'g'ri keladi (foreign key).
Inner join faqat asosiy jadval yozuvlari va qo'shilgan yozuvlar o'rtasida mos keladigan satrlarni olish uchun kerak.
Amaliy qism
Misol sifatida (DBMS Oracle) ikkita oddiy jadvalni yaratamiz va ular uchun join yordamida SQL iboralarini yaratamiz.
Birinchi jadvalda talabaning identifikatori va uning F_I_O, ikkinchisi - ob'ektning identifikatori, ob'ektning nomi va talabaning identifikatori saqlanadi.
CREATE TABLE t_S_t
(
t_ID NUMBER PRIMARY KEY,
t_F_I_O VARCHAR2(100));
CREATE TABLE t_Predmet
(
t_ID NUMBER PRIMARY KEY,
t_Nazvaniya VARCHAR2(100),
t_S_tID integer);
Inner join operatori yordamida jadvallarni ulashimiz mumkin:
SELECT t_Predmet.t_Nazvaniya, t_S_t.t_F_I_O
FROM t_Predmet
inner join t_S_t on t_S_t.t_ID = t_Predmet.t_S_tID
34-rasm. Inner join operatori yordamida jadvallarni ulash
Left join-da, barcha yozuvlar asosiy jadvaldan tanlanadi, hatto biriktirilgan jadvalda tasodif bo'lmasa ham, ya'ni vaziyat holati qo'shilgan (o'ng) jadvalni hisobga olmaydi. Misol:
SELECT t_Predmet.t_Nazvaniya, t_S_t.t_F_I_O
FROM t_Predmet
left join t_S_t on t_S_t.t_ID = t_Predmet.t_S_tID
35-rasm. Inner join operatori yordamida jadvallarni ulash natijasi
Natijada, barcha narsalar va ularning ma'murlari, ular bo'lsin yoki bo'lmasin, ko'rsatiladi.
Right join, agar ular asosiy (chap) jadvalda mos kelmasa ham, "condition" shartining o'ng tomoniga mos keladigan barcha qatorlarni ko'rsatadi:
SELECT t_Predmet.t_Nazvaniya, t_S_t.t_F_I_O
FROM t_Predmet
right join t_S_t on t_S_t.t_ID = t_Predmet.t_S_tID
36-rasm. Right join dan foydalanish
Olingan jadval ob'ektlar va ularning ma'murlarini ko'rsatadi. Agar administrator ishtirok etmasa, bu yozuv ham ko'rsatiladi. Bu, masalan, agar ob'ekt olib tashlangan bo'lsa, sodir bo'lishi mumkin.
Full Outer join (outer kalit so'zini tushirish mumkin) bir nechta jadvallardan satrlarning barcha mumkin bo'lgan birikmalarini ko'rsatish uchun talab qilinadi. Boshqacha aytganda, bu left va right join natijalarini birlashtiradi.
SELECT t_Predmet.t_Nazvaniya, t_S_t.t_F_I_O
FROM t_Predmet
full join t_S_t on t_S_t.t_ID = t_Predmet.t_S_tID
37-rasm. Natija jadvali
Nihoyat, cross join. Ushbu turdagi join shuningdek, cartesian mahsuloti (ingliz tilida - cartesian mahsuloti) deb ataladi. Men uni oqilona ishlatishni tavsiya etaman, chunki so'rovning bajarilishi vaqti jadvallar va chiziqlar sonining ko'payishi bilan chiziqli emas. Bu erda cross joinga o'xshash so'rovning misoli keltirilgan:
SELECT t_Predmet.t_Nazvaniya, t_S_t.t_F_I_O
FROM t_Predmet, t_S_t
38-rasm. Shunga o'xshash Cross join so'rovining natijasi
Topshiriq: Yaratilgan jadvalda birlashma tuzing, so'rovlardan foydalaning. Hisobot tuzing.
Nazorat savollari.
Ma'lumotlarni birlashtirish uchun qanday buyruqlardan foydalaniladi?
Qanday qilib so'rovlar yaratiladi?
So’rovlarni tuzishga misollar keltiring.
Do'stlaringiz bilan baham: |