Uploaded by rustamshukurov16

7-Amaliy mashg'ulot

advertisement
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
Download