• SELECT Rating, COUNT (DISTINCT CNum) FROM Customers GROUP BY Rating HAVING Rating > ( SELECT AVG (Rating) FROM Customers WHERE City = San Jose );
  • SELECT * FROM Customers a WHERE ‘1990/10/03’ IN ( SELECT ODate FROM Orders b WHERE a.CNum = b.CNum );
  • SELECT * FROM Orders WHERE SNum IN ( SELECT SNum




    Download 1,78 Mb.
    Pdf ko'rish
    bet41/62
    Sana03.02.2024
    Hajmi1,78 Mb.
    #150970
    1   ...   37   38   39   40   41   42   43   44   ...   62
    Bog'liq
    Методичка Маълумотлар ва билимлар банки 2

    SELECT * FROM Orders WHERE SNum IN ( SELECT SNum 
    FROM Salepeople WHERE City = 'London' ); 
    Bu natijani jamlanma orqali hosil qilish mumkin. Lekin odatda, ostki 
    so‘rovlar tezroq bajariladi. Siz ostki so‘rov SELECT jumlasida maydonga 
    asoslangan ifodadan foydalanishingiz mumkin. Bu relyatsion operatorlar 
    yordamida yoki IN yordamida amalga oshirilishi mumkin. Siz ostki 
    so‘rovlarni HAVING ichida ishlatishingiz mumkin. Bu ostki so‘rovlar agar 
    ko‘p qiymatlar qaytarmasa xususiy agregat funksiyalaridan GROUP BY 
    yoki HAVING operatorlaridan foydalanishi mumkin. 
    Misol: 
    SELECT Rating, COUNT (DISTINCT CNum) FROM Customers 
    GROUP BY Rating HAVING Rating > ( SELECT AVG (Rating) 
    FROM Customers WHERE City = 'San Jose' ); 
    Bu komanda San Jose dagi baholari o‘rtachadan yuqori bo‘lgan 
    buyurtmachilarni aniqlaydi. 
    Korrellangan (mutanosib) bog‘langan ostki so‘rovlar. 
    SQL tilida ostki so‘rovlardan foydalanilganda tashqi so‘rov FROM 
    qismidagi ostki so‘rovga mutanosib so‘rov yordamida murojaat qilishingiz 
    mumkin. Bu holda ostki so‘rov asosiy so‘rov har bir satri uchun bir martadan 
    bajariladi. 
    Misol: 3 oktyabrda buyurtma bergan hamma buyurtmachilarni toping. 
    SELECT * FROM Customers a WHERE ‘1990/10/03’ IN ( 
    SELECT ODate FROM Orders b WHERE a.CNum = b.CNum ); 
    Bu misolda tashqi so‘rovning Cnum maydoni o‘zgargani uchun ostki 
    so‘rov tashqi so‘rovning har bir satri uchun bajarilishi kerak. Ostki so‘rov 
    bajarilishini talab qiladigan tashqi so‘rov satri joriy satr – kandidat deyiladi. 
    Mutanosib ostki so‘rov bilan bajariladigan baholash protsedurasi 
    quyidagicha: 
    1. Tashqi so‘rovda nomlangan jadvaldan satrni tanlash. Bu kelajak satr-
    kandidat. 


    2. Tashqi so‘rov FROM jumlasida nomlangan psevdonimda bu satr-
    kandidat qiymatlarini saqlab qo‘yish. 
    3. Ostki so‘rovni bajarish. Tashqi so‘rov uchun berilgan psevdonim 
    topilgan hamma joyda joriy satr-kandidat qiymatidan foydalanish. Tashqi 
    so‘rov satr-kandidatlari qiymatlaridan foydalanish, tashqi ilova deyiladi. 
    4. Tashqi so‘rov predikatini 3 qadamda bajariluvchi ostki so‘rov 
    natijalari asosida baholash. U chiqarish uchun satr-kandidat tanlanishini 
    belgilaydi. 
    5. Yuqoridagi misolda SQL quyidagi protsedurani amalga oshiradi: 
    1. U buyurtmachilar jadvalidan Hoffman satrini tanlaydi. 
    2. Bu satrni joriy satr-kandidat sifatida a – psevdonim bilan saqlaydi. 
    3. So‘ngra ostki so‘rovni bajaradi. Ostki so‘rov CNum maydonning 
    qiymati a.CNum qiymatiga teng satrlarni topish uchun Buyurtmachilar 
    jadvali hamma satrlarini ko‘rib chiqadi. Hozir a.CNum qiymati 21 ga ya’ni 
    Hoffman satrining CNum maydoni qiymatiga teng. Shundan so‘ng bu 
    satrlarning ODate maydonlari qiymatlarining to‘plamini hosil qiladi. 
    4. Shundan so‘ng asosiy so‘rov predikatida 3 oktyabrdagi qiymat shu 
    to‘plamga tegishliligini tekshiradi. Agar bu rost bo‘lsa, Hoffman satrini 
    chiqarish uchun tanlaydi. 
    5. So‘ngra, toki Buyurtmachilarning hamma satri tekshirilib 
    bo‘lmaguncha, u butun protsedurani satr-kandidat sifatida foydalanib 
    qaytaradi va saqlab qo‘yadi. 
    Ba’zida xatolarni topish uchun maxsus yaratilgan so‘rovlardan 
    foydalanish kerak bo‘ladi. 
    Misol: Quyidagi so‘rov Buyurtmachilar jadvalini ko‘rib chiqib SNum va 
    CNum mos kelishini tekshiradi va mos bo‘lmagan satrlarni chiqaradi. 

    Download 1,78 Mb.
    1   ...   37   38   39   40   41   42   43   44   ...   62




    Download 1,78 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    SELECT * FROM Orders WHERE SNum IN ( SELECT SNum

    Download 1,78 Mb.
    Pdf ko'rish