• Natijalarni saralash so’rovi. ORDER BY
  • Berdiyev B. Mirzayev I. Ma’lumotlar bazasini boshqarish tizimlari




    Download 1,22 Mb.
    bet6/17
    Sana27.12.2023
    Hajmi1,22 Mb.
    #128650
    1   2   3   4   5   6   7   8   9   ...   17
    Bog'liq
    MBBT

    Agregat funktsiyasi
    Agregat funktsiyasi argument sifatida har qanday ma'lumotlar ustunini to'liq qabul qiladi va ma'lum bir tarzda ushbu ustunni sarhisob qiladigan bitta qiymatni qaytaradi.
    SUM (ifoda | [DISTINCT] ustun_nomi) - [turli] raqamli qiymatlarning yig'indisi
    AVG (ifoda | [DISTINCT] ustun_nomi) - [turli] raqamli qiymatlarning o'rtacha qiymati
    MIN (ifoda | ustun_nomi) - barcha qiymatlar orasida eng kichigi
    MAX (ifoda | ustun_nomi) - barcha qiymatlar orasida eng kattasi
    COUNT ([DISTINCT] ustun nomi) - ustundagi qiymatlar sonini hisoblaydi
    COUNT (*) - so'rov natijalari jadvalidagi qatorlar sonini hisoblaydi

    Eslatma: umumiy funktsiyalarni WHERE bandida qo'llash mumkin emas
    1-misol. Talabalar stipendiyasining umumiy, o'rtacha, minimal va maksimal qiymatini toping.
    SELECT SUM(st Stipend) Asm, AVR(stStipend) AS Av, MIN(stStipend) AS Mn, МАХ(stStipend) ASMx FROM Students

    2-misol. Stipendiya olgan talabalar sonini toping.
    SELECT COUNT(*) AS Cnt FROM Students WHERE stStipend > 0
    Natijalarni saralash so’rovi. ORDER BY
    qaerda, ASC – ortib borayotgan, DESC-kamayib borayotgan tartiblash tartibi.

    Misol. Ki-125 guruhidagi talabalarning familiyalari ro'yxatini teskari alifbo tartibida ko'rsating.
    SELECT sname FROM Students, Groups WHERE Students.stNum = roups.grNum AND Groups.grName = 'ki-125' ORDER BY name DESC
    Guruhlash bilan so'rovlar. GROUP BY taklifi
    GROUP BY iborasidan foydalanish satrlarni belgilangan maydon qiymatlari bir xil bo'lgan guruhlarga guruhlash imkonini beradi:
    gr Name ORDER BY grName GROUP BY grName
    KI-121 KI-101 KI-101
    PI-111 = KI-121 = KI-121
    KI-101 KI-121 PI-111
    KI-121 PI-111

    GROUP BY taklifidan so'ng olingan guruhlarga har qanday standart agregat funktsiyalari qo'llanilishi mumkin.


    1-misol. Talabalar ro'yxatini va ularning o'rtacha ballini oling.
    SELECT sname, AVG(mark) AS AvgMark FROM Students, Marks WHERE Students.stNum = Marks.stNum GROUP BY stName

    Eslatma. GROUP BY bo'limini o'z ichiga olgan SELECT operatorining tanlangan maydonlari ro'yxatida faqat guruhlash shartiga kiritilgan agregat funksiyalari va maydonlarni kiritish mumkin.
    Bir nechta ustunlarni guruhlash:
    Misol. Talabalar ro'yxatini va ularning har bir semestr uchun o'rtacha ballini oling.
    SELECT sname, semestr, AVG(mark) AS AvgMark
    FROM Students, Marks
    WHERE Students.stNum = Marks.stNum
    GROUP BY stName, semestr

    Guruhlash ustunlaridagi NULL qiymatlari


    Bir xil guruhlash ustunlarida NULL va boshqa barcha guruhlash ustunlarida bir xil qiymatlarga ega bo'lgan satrlar bitta guruhga joylashtiriladi.
    Guruhlarni qidirish shartlari. HAVING taklifi:
    GROUP BY bilan birgalikda ishlatiladigan HAVING taklifi shartni qondirmaydigan guruhlarni natijadan chiqarib tashlashga imkon beradi (xuddi WHERE kabi qatorlarni chiqarib tashlashga imkon beradi).
    1-misol. Talabalar soni 15 dan kam bo'lgan KI mutaxassisliklari guruhlari ro'yxatini oling.
    SELECT gr Name, COUNT(*) AS Cnt Students FROM Students, Groups WHERE Students.gtNum = Groups.grNum AND Groups.grName LIKE ‘КI%’GROUP BY grName HAVING COUNT(*) < 15
    Ichma ich joylashgan so’rovlar:
    Ichki so'rov - bu boshqa SQL bayonotining WHERE yoki HAVING bandidagi so'rov.

    1-misol. 4 dan kichik ball olingan fanlarr ro'yxatini saralang.
    SELECT subname FROM Subjects WHERE subjNum IN ( SELECT subjNum
    FROM Marks WHERE mark < 4)
    O'zaro bog'langan ichkii so'rov:
    O'zaro bog'langan ichkii so'rov-bu tashqi so'rovlar jadvalining ustunlariga havolani o'z ichiga olgan ichki so'rov.

    2-misol. O'rtacha ballari 4,5 dan yuqori bo'lgan talabalar ro'yxatini tuzing.
    SELECT sname FROM Students WHERE (SELECT AVG(mark FROM Marks
    WHERE Marks.st Num = Students.stNum) > 4.5
    Ichki so'rovlarning xususiyatlari:
    ichki so'rov har doim qavs ichida bo'ladi;
    ichki so'rov natijalari jadvali har doim bitta ustundan iborat;
    ichki so'rov ORDER BY taklifni o'z ichiga olmaydi.
    Jadvallarning ichki ulanishi (INNER JOIN)



    Misol. Talabalar ro'yxatini va ular o'qiyotgan guruhlarning nomlarini ko'rsating.
    SELECT sname, sname FROM Students INNER JOIN Groups ON Students.grNum = Groups.grNum;
    Agar jadvallar bir xil nomdagi ustunlarning tengligi bilan birlashtirilishi kerak bo'lsa, unda ON jumlasi o'rniga USING bandi ishlatiladi, unda bog'langan ustunlarning nomlari ko'rsatilgan.
    Misol.
    SELECT sname, sname FROM Students INNER JOIN Groups USING (grNum);
    SQL - 92 ikki turdagi tashqi ulanish tushunchasini qo'llab-quvvatlaydi:
    chap tomon (LEFT OUTER JOIN, *=);
    o'ng tomon (RIGHT OUTER JOIN, =*).
    Ma'lumotlarni o'zgartirish operatsiyalari (DML)
    Ma'lumotlarni o'zgartirish uchun uchta operator ishlatiladi: INSERT, DELETE va UPDATE.
    Ma'lumotlar bazasi jadvaliga qator qo'shish INSERT (qo'shish)operatori yordamida amalga oshiriladi.:
    INSERT INTO Jadval_nomi (ustun_nomi,...)
    VALUES (o'zgarmas | NULL,...)

    Misol. Ma'lumotlar bazasiga yangi "ki-111" guruhi haqida yozuv qo'shing.


    INSERT INTO Groups (grNum, grName, gr Head)
    VALUES (6, 'KI-111', 11234);
    Ma'lumotlar bazasi jadvalidagi satrlarni o'chirish operatori yordamida amalga oshiriladi DELETE (o'chirish):
    DELETE FROM Jadval_nomi
    [WHERE qidiruv_sharti],
    bu erda qidirish sharti ichki so'rov bo'lishi mumkin.

    Misol. Imtihon varaqasi nomeri 12345 bo'lgan talaba haqidagi ma'lumotlarni olib tashlang.
    DELETE FROM Students WHERE snum = 12345;

    Eslatma. WHERE bandining yo'qligi ko'rsatilgan jadvaldagi barcha qatorlarni olib tashlashga olib keladi.
    Bitta ma'lumotlar bazasi jadvalining tanlangan satrlarida bir yoki bir nechta ustunlarning qiymatini yangilash UPDATE (yangilash) operatori yordamida amalga oshiriladi:
    UPDATE Jadval_nomi SET ustun_name = ifodan, …
    [WHERE qidiruv_sharti]

    Misol. Talabalar uchun stipendiya miqdorini 20% ga oshiring.
    UPDATE Students SET stStipend = 1.2 * stStipend
    WHERE stStipend IS NOT NULL;

    Eslatma. WHERE bandining yo'qligi ko'rsatilgan jadvaldagi barcha satrlarning yangilanishiga olib keladi.
    DDL buyruqlari:
    CREATE-ma'lumotlar bazasi ob'ektini yaratadi;
    ALTER-mavjud ob'ektning tarkibin o'zgartiradi;
    DROP-ilgari yaratilgan ob'ektni o'chiradi.
    Jadvallarni hosil qilish
    SQL tili yordamida jadvallar yaratish
    SQL tilida jadval yaratish uchun CREATE TABLE iborasi ishlatiladi:
    CREATE TABLE < jadval_nomi> (< maydon_nomi > < maydon_tipi > [,
    < maydon_nomi > < maydon_tipi>]...) [[CONSTRAINT < cheklash_nomi>] < ustun darajasini cheklash>]…[[CONSTRAINT < cheklash_nomi>] < jadval darajasini cheklash>]
    Cheklovlar:
    PRIMARY KEY-jadvalning ichki kalitini aniqlash;
    UNIQUE-ustundagi qiymatlarning o'ziga xosligini ta'minlash;
    NULL / NOT NULL – ustundagi aniqlanmagan qiymatlarni hal qilish yoki taqiqlash;
    CHECK < shart > - ustundagi ma'lumotlar qiymati uchun shartni belgilash;
    [FOREIGN KEY < maydon_nomi>] REFERENCES < jadval_nomi > < maydon_nomi> jadval uchun tashqi kalitni aniqlash.
    Misol:
    CREATE TABLE student (numZach integer CONSTRAINT pk PRIMARY KEY,
    fio char(30),stipend integer CHECK (stipend BETWEEN 500 AND 800),
    pol char (1) CHECK (pol='m' yoki pol='f'), gr Num integer REFERENCES groups (grNum) ON DELETE CASCADE);
    Jadvallarni o'zgartirish. ALTER TABLE operatori:
    ALTER TABLE jadvalining nomi
    ADD ustun_ ta'rifini
    ALTER ustunning nomi
    SET DEFAULT qiymati / DROP DEFAULT
    DROP ustunining nomi CASCADE | RESTRICT
    ADD ichki kalitni aniqlash
    ADD tashqi kalitni aniqlash
    ADD ma'lumotning_unikallik_shartlari
    ADD tekshirish_sharti
    Drop CONSTRAINT cheklov_nomi
    CASCADE | RESTRICT
    Misol. Talabalar jadvaliga asosiy kalitni qo'shing

    ALTER TABLE student ADD CONSTRAINT “pk”
    PRIMARY KEY (num Zach);
    Jadvalni o'chirish:
    Jadvalni ma'lumotlar bazasidan o'chirish uchun SQL tilida DROP TABLE iborasidan foydalanadi:
    DROP TABLE < jadval_nomi> CASCADE / RESTRICT
    Trigger:
    Trigger (trigger) ma'lumotlar bazalari-bu ma'lum bir hodisalar sodir bo'lganda (INSERT, UPDATE, DELETE) avtomatik ravishda chaqiriladigan maxsus turdagi saqlanadigan protsedura.
    Foydalanish
    Trigger jadvallarga o'zgartirish kiritish yoki odatdagi tarzda amalga oshirib bo'lmaydigan murakkab cheklovlarni bajarish uchun ishlatiladi.
    Trigger u bilan bog'liq bo'lgan jadvaldan tashqari hech qanday ma'lumotlar bazasi ob'ektlariga kirmasligi kerak.
    Triggerda DDL (CREATE, ALTER, DROP) bayonotlarini bajarishga yo'l qo'yilmaydi.
    Trigger tanasida har qanday saqlangan protseduralar, shu jumladan tizimli protseduralar chaqirilishi mumkin.
    CREATE TRIGGER change_Starball AFTER INSERT ON Marks FOR EACH ROW EXECUTE PROCEDURE update_Sr Ball


    Download 1,22 Mb.
    1   2   3   4   5   6   7   8   9   ...   17




    Download 1,22 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Berdiyev B. Mirzayev I. Ma’lumotlar bazasini boshqarish tizimlari

    Download 1,22 Mb.