|
7-tajriba ishi Mavzu
|
bet | 2/3 | Sana | 16.12.2023 | Hajmi | 29,31 Kb. | | #120085 |
Ma`lumotlarni o`qish. MB dan ma`lumotlarni o`qish SELECT operatori orqali amalga oshiriladi va u so`rov deyiladi. SQL tili birinchi navbatda so`rovlarni bajarishga mo`ljallangan. SQL so`rovlarini qurish uchun qo`llaniladigan SELECT operatori boshqa SQL operatorlariga nisbatan ancha keng imkoniyatli hisoblanadi. Biz bu imkoniyatlarning ba`zi birlarini keltirib o`tamiz.
SELECT operatori. SELECT operatori berilganlar bazasidan ma`lumotlarni o`qiydi va so`rov natijalarini jadval ko`rinishida qaytaradi. Quyida oddiy so`rovlarga oid bir nechta misollarni keltiramiz:
Misol 1. MB dan barcha talabalar ro`yxatini chiqaring.
SELECT fam, ism, oism, guruh FROM atalaba
id
|
fam
|
ism
|
oism
|
guruh
|
1
|
Karimov
|
Salim
|
Xayrievich
|
11-08 ARX
|
…
|
…
|
…
|
…
|
…
|
135
|
Olimova
|
Sevara
|
Qayumovna
|
18-10 TMJ
|
…
|
…
|
…
|
…
|
…
|
5435
|
Abdullaev
|
Dilshod
|
|
16-10 MIIT
|
…
|
…
|
…
|
…
|
…
|
Agar MB ga 5600 ta talaba ma`lumoti kiritilgan bo`lsa, ekranga 5600 ta talabaning kodi, familiyasi, ismi va guruhi ma`lumotlari chaqiriladi.
Misol 2. MB dan barcha talabalar ro`yxatini chiqaring.
SELECT * FROM atalaba
Misol 1 da olingan natija bilan bir xil bo`lgan natijani olamiz.
Misol 3. MB dan ‘12-10 MIIT’ guruhi talabalari ro`yxatini chiqaring.
SELECT fam, ism, oism FROM atalaba WHERE guruh=’12-10 MIIT’
Agar MB ga ‘12-10 MIIT’ guruhining 23 ta talabasi ma`lumoti kiritilgan bo`lsa, ekranga 23 ta talabaning kodi, familiyasi, ismi ma`lumotlari chaqiriladi. Talaba guruhi ma`lumoti chiqarilmaydi, chunki buyruqda guruh atribut qiymatini chiqarish kerakligini ko`rsatmadik.
Misol 4. MB dan ‘12-10 MIIT’ guruhi talabalari ro`yxatini, familiyasini alfavit tartibida tartiblagan holda chiqaring.
SELECT fam, ism, oism FROM atalaba WHERE guruh=’12-10 MIIT’ ORDER BY fam
Agar MB ga ‘12-10 MIIT’ guruhining 23 ta talabasi ma`lumoti kiritilgan bo`lsa, ekranga 23 ta talabaning kodi, familiyasi, ismi ma`lumotlari chaqiriladi. Talaba guruhi ma`lumoti chiqarilmaydi, chunki buyruqda guruh atribut qiymatini chiqarish kerakligini ko`rsatmadik.
Xuddi shu tarzda so`rovlar tuziladi. endi so`rov operatori ifodalari bilan tanishamiz:
SELECT ifodasida SELECT operatori qiymat sifatida qaytaradigan ustunlar ro`yxati vergul bilan ajratilib ko`rsatiladi. Qaytariladigan qiymatlar MB dagi jadval ustunidan olingan qiymat yoki so`rov paytida hisoblanadigan qiymat bo`lishi mumkin. Har bir qaytariladigan qiymatlar uchun so`rov natijalari jadvalida bitta ustun hosil qilinadi.
FROM ifodasida so`rov orqali ma`lumotlari olinadigan jadvallar ro`yxati ko`rsatiladi. Nisbatan murakkabroq so`rovlarda bir necha jadval nomlari bo`ladi.
WHERE ifodasida so`rov natijasi sifatida faqat ayrim qatorlarni chiqarish sharti ko`rsatiladi. Satrlarni saralash uchun izlash shartidan foydalaniladi.
GROUP BY ifodasidan jamlama so`rovlarni hosil qilish maqsadida foydalanamiz. Odatdagi so`rov MB dagi har bir satr uchun so`rov natijasi sifatida bitta satr qaytaradi. Jamlama so`rov esa oldin MBdagi satrlarni aniqlangan alomat bo`yicha guruhlashtiradi. Keyin esa har bir guruhga bitta jamlanma satrni mos qo`yuvchi so`rov natijasini qaytaradi.
HAVING ifodasi GROUP BY ifodasi yordamida tuzilgan guruhlarni biror shartni qanoatlantiruvchilarinigina natija sifatida qaytaradi.
ORDER BY ifodasi bir yoki bir nechta ustunlardagi ma`lumotlar asosida so`rov natijasini tartiblaydi. Agarda bu ifoda ko`rsatilmagan bo`lsa so`rov natijasi tartiblanmagan deyiladi.
Qaytariladigan qiymatlar (DISTING kalitli so`zi). MB da qaysi millat vakillari mavjudligini ko`rmokchi bo`lsak, quyidagicha so`rovni beramiz:
SELECT DISTING millat FROM aumt
So`rov natijalari jadvali 5-10 ta satrdan iborat bo`ladi, MB da esa 5600 ta yozuv mavjud. Nima uchun satr soni kam? Chunki, talabalarning ko`pchiligining millati o`zbek yoki rus. Bu qiymatlar yuzlab va minglab marta takrorlanadi. So`rov natijaviy jadvalining takrorlanadigan satrlarini SELECT operatorida qaytariladigan ustunlari oldidan DISTING kalit so`zini ko`rsatish orqali o`chirish mumkin. Bu so`rov quyidagi tarzda bajariladi. Oldin barcha natijaviy satrlar generatsiya qilinadi, undan keyin esa boshqasini takrorlaydigan ustunlar o`chiriladi. Agarda DISTING kalit so`zi ko`rsatilmagan bo`lsa takrorlanadigan satrlar o`chirilmaydi.
Satrlarni saralash (WHERE ifodasi). MB dagi jadvalning barcha satrlarini chiqaruvchi SQL – so`rovlar MB ni qurish, hisobot tuzish va boshqa ayrim hollardagina qo`llaniladi. Odatda jadvaldan bir nechta satrlarni tanlash va so`rov natijasiga faqatgina ularni chiqarish talab etiladi. Qanday satrlarni chiqarish
kerakligini ko`rsatish uchun WHERE ifodasi ishlatiladi.
WHERE ifodasi WHERE kalit so`zidan va undan keyin keluvchi qanday satrlar o`qilishi lozimligini aniqlovchi izlash shartidan tashkil topadi. Oldingi so`rovda izlash sharti guruh=’12-10 MIIT’ ifodasi edi. Bu holda ATALABA jadvalining barcha satrlari birin-ketin ko`rib chiqiladi va ularning har biriga izlash sharti qo`llaniladi. Agarda izlash shartida ustun nomi uchrasa u holda ustunning qiymati joriy satr uchun ishlatiladi. Izlash shartining har bir satri quyida ko`rsatilgan qiymatlardan biriga ega bo`lishi mumkin.
Agarda izlash sharti TRUE qiymatiga ega bo`lsa, bu satr so`rov natijasiga qo`shiladi.
Agarda izlash sharti FALSE qiymatga ega bo`lsa, u so`rov natijasiga chiqarilmaydi.
Agarda izlash sharti NULL qiymatga ega bo`lsa, satr so`rov natijasiga chiqarilmaydi.
SQL da turlicha so`rovlarni samarali va tartibli tuzish uchun qator izlash shartlari qo`llaniladi. quyida 5 ta asosiy izlash shartlari ko`rib chiqiladi.
Taqqoslash. Bitta ifodaning qiymati ikkinchi ifodaning qiymati bilan taqqoslanadi.
Qiymatni biror diapozonda yotishini tekshirish. Bunda ko`rsatilgan qiymat aniqlangan qiymatlar diapozoniga tushish yoki tushmasligini aniqlaydi. Masalan, bunday izlash sharti 1990 va 1995 yillar oraligida tug`ilgan barcha talabalarni chiqarish.
Biror to`plamga tegishliligini tekshirish. Bunda ifoda qiymati ma`lumot to`plamning biror qiymatiga teng yoki yoki teng emasligi tekshiriladi. Masalan, bunday izlash sharti ’11-10 MIIT’ yoki ‘5-10 ARX’ guruhlari talabalari ro`yxatini chiqarish.
Ko`rsatilgan shablonga muvofiqligini tekshirish. Ustundagi shartli qiymat aniqlangan shablonga mos kelishi yoki kelmasligini aniqlaydi. Masalan, bunday izlash sharti ismi “E” bilan boshlanuvchi talabalarni tanlash uchun qo`llaniladi.
NULL qiymatga tengligini tekshirish. Ustunda NULL qiymat mavjudligini tekshiradi. Masalan, bunday izlash sharti otasi ismi kiritilmagan talabalar ro`yxatini chiqarish uchun ishlatiladi.
Taqqoslash ( , <>, <, <, >, > ). SQL ning nisbatan ko`p tarqalgan izlash sharti bu taqqoslashdir. SQL taqqoslashni amalga oshirish uchun jadvaldagi ma`lumotlarning har bir satri uchun ikkita ifoda qiymatini hisoblaydi va taqqoslaydi. Ifodalar juda oddiy, masalan, bitta ustun nomi va o`zgarmasdan iborat bo`lishi mumkin. Xuddi shunday, nisbatan murakkab ifodalar bu arifmetik ifodalardir.
Qiymatni biror diapazonga tegishlilik shartini tekshirish (BETWEEN). Izlash shartining boshqa ko`rinishi, qiymatning biror diapazonga tegishlilik shartidir. Bunda ma`lumot qiymat 2 ta aniqlangan qiymat orasida yotishligini tekshiriladi. Izlash shartida 3 ta ifoda beriladi. Birinchi ifoda tekshiriladigan qiymatni aniqlaydi. Ikkinchi va uchinchi ifodalar tekshiriladigan diapozonning yuqori va quyi chegaralarini aniqlaydi. Uchala ifodaninig ham tiplari taqqoslanadigan bo`lishi lozim.
Misol 5. 1990 va 1995 yillar oraligida tug`ilgan barcha talabalarni chiqarish.
SELECT *
FROM aumt
WHERE tvaqt BETWEEN ’01.01.1990’ AND ’31.12.1995’
|
| |