O’zbekiston Respublikasi Oliy va o’rta maxsus ta’lim vazirligi Samarqand davlat universiteti
Download 1.26 Mb. Pdf ko'rish
|
RustamovaZ 2-amaliy mashg'ulot
ta’lim vazirligi Samarqand davlat universiteti Raqamli texnologiyalar fakulteti Informatika o’qitish metodikasi yo’nalishi III-bosqich 305-guruh Ma’lumotlar bazasi fanidan
MAVZU :
bog'lash
BAJARDI: Rustamova Z TEKSHIRDI: RASHIDOV A
Microsoft Access 2016 ma'lumotlar bazasida jadvallarni bog'lash
Qiymatlar oralig’i bo’yicha filtrlash (BETWEEN)
ishlatiladi. Keyingi so’rovda Tumanlar_soni maydonida 8 dan 9 gacha bo’lgan barcha qiymatlar tanlanadi.
2. Bo’sh yozuvlarni tanlash ( IS NULL) SQL –da bo’sh yozuvlarni olish uchun maxsus operator mavjud (NULL deb nomlanadi). Jadvalda biron bir belgi bo’lmagan har qanday yacheyka bo’sh yozuv deb hisoblanadi. Agar yacheyka 0 yoki bo’sh joy kiritilgan bo’lsa ham, maydon to’ldirilgan hisoblanadi.
SELECT Viloyatlar, Markazi, Tumanlar, Aholisi, Maydoni, Muzeylar FROM Uzbekiston WHERE Aholisi IS NULL 3. Kengaytirilgan filtrlash (AND, OR) SQL tili bitta shart bilan filrlash bilan chegaralanmaydi. Ma’lumotlarni bir vaqtning o’zida ko’plab mezonlarga ko’ra tanlash uchun juda murakkab shartlardan foydalanish mumkin. Buning uchun SQL-da WHERE operatorining imkoniyatlarini kengaytirilgan qo’shimcha operatorlar mavjud. Ushbu operatorlar: AND, OR, IN,
SELECT Tartib_raqami, Viloyatlar, Markazi, Tumanlar, Aholisi, Maydoni, Muzeylar, Chegaradosh_Respublikasi, Tumanlar_soni FROM Uzbekiston WHERE Chegaradosh_Respublikasi = ‘Tojikiston’ OR Tumanlar_soni = 8
viloyati yoki Tumanlar soni 14 ta bo’lgan barchasini tanlab olish uchun:
Chegaradosh_Respublikasi, Tumanlar_soni FROM Uzbekiston WHERE Tartib_raqami = 2 OR Viloyatlar = 'Buxoro' AND Tumanlar_soni = '14’
Yuqorida tartib raqami 2 bo’lgan Buxoro viloyati yoki tumanlar soni 14 ga teng bo’lgan ustunlarni ko’rsatib berdi. To’g’ri tanlovni olish uchun buyruqni bajarish ustuvorligini bilish kerak. Buni yana mukammal bilish uchun, matematika fanida qo’llanilgan kani qavslardan foydalanish mumkin. Oldin qavslar ichidagi operatorlar, so’ngra qolganlari qayta ishlanadi.
Muzeylar, Chegaradosh_Respublikasi, Tumanlar_soni FROM Uzbekiston WHERE (Tartib_raqami = 13 OR Viloyatlar = Qoraqalpogiston) AND Tumanlar_soni = ‘9’
Muzeylar, Chegaradosh_Respublikasi, Tumanlar_soni FROM Uzbekiston WHERE Tartib_raqami IN (5,8,9,11)
IN operatori OR operatori funksiyasini bajaradi, lekin bir nechta afzalliklarga ega: - Uzun ro’yxatlar bilan ishlashda IN iborasidan o’qish oson; - Kam operatorlardan foydalaniladi, bu so’rovlarni tezroq ishlashini ta’minlaydi; - IN ning eng muhim afzalligi shundaki, uning konstruksiyasida qo’shimcha SELECT operatorini ishlatish mumkin, bu murakkab tarkibiy so’rovlarni yaratoish uchun katta imkoniyatlar beradi.
SELECT Tartib_raqami, Viloyatlar, Markazi, Tumanlar, Aholisi, Maydoni, Muzeylar, Chegaradosh_Respublikasi, Tumanlar_soni FROM Uzbekiston WHERE NOT Chegaradosh_Respublikasi IN ('Afgoniston', 'Tojikiston', 'Qozogiston') Quyida jadvalning umumiy ko’rinishi
Bundan tashqari, uning xususiyati shundaki, u filtrlashda ishtirok etgan ustun nomidan keyin, balki oldin joylashtiriladi.
Yuqoridagi jadvalda, chegaradosh respublikasi faqatgina Tojikiston,Afgoniston va Qozogiston respublikalarning viloyatlarini olib tashlab, qolganlarini saqlagan holatda jadval namoyon bo’lgan. O’rin almashtirish simvollari va regulyar ifodalar (LIKE) Ma’lumotlarni filtrlash uchun tanlash shartning aniq mosligi bilan emas, balki taxminiy qiymati bo’yicha bajarish kerak bo’ladi. Masalan, Viloyatlar ma’lum bir shablonga mos keladigan yoki ba’zi simvollar yoki so’zlarni o’z ichiga olgan viloyat qidiriladi. Buning uchun SQL tilida taxminiy qiymatlarni qidiradigan LIKE operatori mavjud. Bunday shablonni yaratish uchun metasimvollar (qiymatning bir qismini topish uchun maxsus belgilar) ishlatiladi. Bular: “foiz belgisi (%) yoki yuzduzcha (*), “Tag chiziq” (_) yoki “so’roq belgisi” (?), “kvadrat qavslar” ([]). 1. Foiz belgisi (%) yoki yulduzcha (*) metasimvoli Masalan, jadvaldan faqat daryo so’zini o’z ichiga olgan viloyatlarga tegishli yozuvni tanlaylik. Buning uchun tegishli shablonni yaratamiz:
WHERE Viloyatlar LIKE '*daryo*' buyrug’i natijasida ma’lumotlar bazasidagi faqat Viloyatlar ustunida daryo so’zini o’z ichiga olgan yozuvlar tanlangan. Agar (*) so’z boshidan qo’yilsa '*daryo*' viloyatlardan oxiri daryo bo’lib tugaydigan viloyatlar haqidagi yozuvlarni chiqaradi.
FROM Uzbekiston WHERE Viloyatlar LIKE '*daryo' ORDER BY Viloyatlar
Yuqoridagi jadvalda daryo so’zi faqat so’zni oxirda yozilganligini uchun shu viloyatlarni chiqarib berdi. Agar (*) so’z oxiridan qo’yilsa ya’ni ‘daryo*’ viloyat nomining boshlanish qismida bo’lgan viloyat nomlarini chiqarib beradi. Yuqoridagi misollarda yulduzcha (*) metasimvoldan foydalanildi, chunki Access MBBT ning LIKE operatori foiz belgisini (%) qo’llab-quvvatlamaydi.
Kvadrat qavslar ([ ]) metasimvoli bir vaqtning o’zida izlash uchun simvollar to’plamini ko’rsatishda ishlatiladi.
Yuqoridagi javdalda viloyat “Markaz”I A yoki B harfi bilan boshlanadigan yozuvlarni tanlandi, bundan tashqari teskari harakatni bajarish uchun, boshqa metasimvoldan foydalanish mumkin. Ifodaga “ teng emas” ni bildiruvchi (!) undov belgisini (Access MBBTuchun) yoki darajaga ko’tarish belgisini (^) (boshqa MBBT lar uchun) qo’shiladi. SELECT Tartib_raqami, Viloyatlar, Markazi, Tumanlar, Maydoni FROM Uzbekiston WHERE Markazi LIKE '[!AB]*' ORDER BY Viloyatlar
Yuqorida bajarilgan so’rov quyidagicha o’qiladi. Uzbekiston jadvalidagi Tartib_raqami, Viloyatlar, Markazi, Tumanlar, Maydoni ustunlarini tanlang va faqat Markazi maydonidagi viloyatlar nomida A yoki B harfi bilan boshlanmaydigan yozuvlarni tanlang. Bundan tashqari, “kvadrat qavslar” metasimvoldagi harflar to’plami faqat matndagi bitta pozitsiya uchun javob beradi. NOT operatoridan foydalansak, shunday natija olishimiz mumkin. Ma’lumotlarni qayta ishlash funksiyalari Ko’pgina dasturlash tillarida bo’lgan kabi, SQLda ma’lumotlarni qayta ishlash funksiyalari mavjud. Shuni ta’kidlash kerakki, SQL operatorlaridan farqli ravishda, funksiyalar MBBT ning barcha turlari uchun standartlashtirilmagan, ya’ni ma’lumotlar ustida bir xil operatsiyalarni bajarish uchun, turli MBBTlar o’zlarining funksiya nomlariga ega. Bu shuni anglatadiki, bitta MBBTda yozilgan so’rov kodi boshqasida ishlamasligi mumkin va buni hisobga olish kerakligini bildiradi. Eng muhimi, bu matn
boshqarish uchun funksiyalarga tegishli. Odatda, MBBT standart funksiya turlarini qo’llab-quvvatlaydi, ya’ni: - matnni qayta ishlash uchun ishlatiladigan matn funksiyalari (matndagi belgilarning bir qismini ajratib olish, uzunligini aniqlash, belgilarni katta yoki kichik harflarga o’tkazish…) - Sonli funksiyalar. Sonli qiymatlar ustida matematik operatsiyalarni bajarish uchun foydalaniladi. - Sana va vaqt funksiyalari (san ava vaqtni manipulyatsiya qilish, sanalar orasidagi davrni hisoblash, sana to’g’riligini tekshirish va boshqalar). - Statistik funksiyalar (maksimal / minimal qiymatlarni, o’rtacha qiymatlarni hisoblash, miqdorlarni va yig’indilarni hisoblash uchun …) - Tizim funksiyalari (MBBT, foydalanuvchi va boshqalar haqida har xil turdagi xizmat ma’lumotlarini taqdim etadi).
Access-da SQL ning matnni qayta ishlashning quyidagi funksiyalari mavjud:
LEFT () – matndagi belgilarni chapdan qirqib olish; RIGHT () – matndagi belgilarni o’ngdan qirqib olish; MID () – matn o’rtasidan belgilarni qirqib olish; LEN () – matndagi belgilar sonini olish; UCase () – belgilarni katta harfga o’zgartiradi; LCase () – belgilarni kichik harfga o’zgartiradi; LTim () – matnning chap qismidagi barcha bo’sh belgilarni olib tashlaydi; RTrim () – matnning o’ng tomonidagi barcha bo’sh belgilarni olib tashlaydi; Trim () – matnning ikkala tomonidagi barcha bo’sh belgilarni olib tashlaydi
UCase () funksiyasi yordamida Uzbekiston viloyatlarini katta harfga o’tkazish: SELECT Viloyatlar, UCase(Viloyatlar) AS UCase_Viloyatlar FROM Uzbekiston
SELECT Viloyatlar, LEFT(Viloyatlar, 3) AS LEFT_Viloyatlar FROM Uzbekiston
MID (maydon_nomi, boshlanuvchi_belgi_o’rni, olinadigan_belgilar_soni) SELECT Viloyatlar, MID(Viloyatlar, 3, 3) AS MID_Viloyatlar FROM Uzbekiston
LEN funksiyasi yordamida Ism maydonidagi yozuvlar uzunliklarini aniqlash SELECT Viloyatlar, LEN (Viloyatlar) AS LEN_Viloyatlar FROM Uzbekiston
Yuqoridagi jadvalda Samarqand, Buxoro, Jizzax yozuvlarida bittadan ortiqcha, buning sababi bu yozuvlar qiymatlari oldidagi probellar ham hisobga olinayapti.
Quyidagi holatda esa Viloyat maydonidagi yozuvlarning oldindan kelgan probellarini o’chirib keyin uzunligini hisoblaymiz:
AS LTrim_Viloyatlar, LEN (LTrim_Ism) AS LEN_LTrim FROM Uzbekiston
Sonlarni qayta ishlash funksiyalari sonli ma’lumotlxar ustida matematik operatsiyalarni bajarishga mo’ljallangan. Ushbu funksiyalar algebraik va geometric hisob-kitoblar uchun mo’ljallangan, shuning uchun ular san ava vaqt funksiyalariga qaraganda kamroq qo’llaniladi. Biroq, sonli funksiyalar SQLning barcha versiyalari uchun eng standartlashtirilgan. Sonli funksiyalarini ko’rib chiqamiz: SQR () – ko’rsatilgan sonning kvadrat ildizini qaytaradi ABS () – ko’rsatilgan sonning absolyut qiymatini qaytaradi EXP () – ko’rsatilgan sonning e x ko’rsatkichini qaytaradi SIN () – ko’rsatilgan burchakning sinusini qaytaradi COS () – ko’rsatilgan burchak kosinusini qaytaradi TAN () – ko’rsatilgan burchakning tangensini qaytaradi Masalan, SQR () funksiyasidan foydalanib, Maydoni ustunidagi sonlardan kvadrat ildizini olish uchun so’rovi:
SELECT Tartib_raqami, Viloyatlar, Maydoni SQR (Maydoni) AS ILDIZ_M
FROM Uzbekiston
Funksiya nomi Qiymati6 DatePart () Sana qismini qaytaradi: yil, chorak, oy, hafta, kun, soat, daqiqa, soniya Year () Month () Mos ravishda yil va oyni qaytaradi Hour (), Minute (), Second () Belgilangan sananing soatini, daqiqalarini va soniyalarini qaytaradi WeekdayName () Hafta kunining nomini qaytaradi
SELECT Viloyatlar, Maydoni, Tashkil_etilganligi, DatePart("m", Tashkil_etilganligi) AS OY FROM Uzbekiston
DatePart () funksiyasi qo’shimcha parametrga ega, bu sananing kerakli qismini aks ettirish imkonini beradi. Yuqoridagi jadvalda oy qarami ko’rsatilgan “m” parametridan foydalanildi (xuddi shu tarzda yilni “yyyy”, chorak –“q”, kun- “d”, hafta - “w”, soat – “h”, daqiqa – “n”, soniya – “s” va boshqalar).
Viloyatlar, Maydoni, Tashkil_etilganligi, DatePart("w", Tashkil_etilganligi) AS HAFTA
Hisoblanadigan maydonlar 1.Matematik amallarni bajarish Hisoblanadigan maydonlardan foydalanish usullaridan biri
tanlangan ma’lumotlarga matematik amallarni bajarishdir. Uzbekiston jadvalidan yana foydalanib, bu qanday amalga oshirilishini qaraymiz. Har bir viloyatning necha yilligini hisoblaymiz. Buning uchun Tashkil_etilganligi maydonidan viloyatlarning tashkil etilgan yilni ajratib olamiz va jori yilni aniqlash (Year(Date()))dan ayiramiz.
SELECT Viloyatlar, Maydoni, Tashkil_etilganligi, Year(Date())-DatePart("yyyy", Tashkil_etilganligi) AS yil FROM Uzbekiston Viloyatlardan tumanlar soni 8 ta bo’lgan viloyatlarni aniqlaymiz, buning uchun COUNT () funksiyasidan foydalanamiz: SELECT COUNT (*) FROM Uzbekiston WHERE Tumanlar_soni = 8 Yuqorida tumanlar soni 8 ta bo’lgan viloyatlar soni 3 ta ekanligini ko’rish mumkin.
Oldingi misolda viloyatlardan tumanlar soni nechta ekanligini hisobladik va hisoblangan qiymat EXPR1000 maydonida aks etdi. Biroq, kelajakda ushbu maydonga murojaat qilish biz uchun noqulay, chunki uning nomi ma’noga ega emas (MBBT maydonga bergan nom – Expr1000). So’rovda oldindan ko’rsatgan holda maydonni nomlash, ya’ni psevdonim berish mumkin. Avvalgi misolni qayta yozib va hisoblanadigan maydon uchun psevdonim beramiz: SELECT COUNT (*) AS Tumanlar_soni_umumiy FROM Uzbekiston WHERE Tumanlar_soni = 8 Hisoblanadigan maydon tumanlar_soni_umumiy nomini oldi. Buning uchun AS operatoridan foydalaniladi, operatordan so’ng kerakli nomni ko’rsatiladi. Shuni ta’kidlash kerakki, SQL-da faqat asosiy matematik operatsiyalar qo’llab- quvvatlanadi: qo’shish (+), ayirish (-), ko’paytirish (*), bo’linish (/). Amallar bajarilishi tartibini o’zgartirish uchun qavslardan ham foydalanish mumkin. Psevdonimlar ko’pincha nafaqat hisoblangan maydonlarni nomlash uchun, balki mavjud maydonlarni qayta nomlash uchun ham ishlatiladi.
Matematik amallardan tashqari, matnlarni birlashtiramiz va uni alohida maydonda aks ettirish mumkin. Matnlarni ulash (birlashtirish): SELECT Viloyatlar + ' ' + Markazi AS VIL_Mar FROM Uzbekiston
Yuqoridagi misolda ikkita ustundagi qiymatni birlashtiriladi va natijani yangi Vil_Mar degan maydonga chiqariladi. Download 1.26 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling