9-Ma’ruza: Ma’lumotlar manipulyatsiya qilishda oddiy so‘rovlar yaratish


SELECT * FROM Orders main WHERE NOT SNum =(SELECT SNum FROM Customers WHERE CNum = main.CNum)


Download 150.21 Kb.
bet10/13
Sana19.06.2023
Hajmi150.21 Kb.
#1602179
1   ...   5   6   7   8   9   10   11   12   13
Bog'liq
9-ma\'ruza

SELECT * FROM Orders main WHERE NOT SNum =(SELECT SNum FROM Customers WHERE CNum = main.CNum);
Asosiy so‘rov asoslangan jadvalga asoslanuvchi mutanosib so‘rovdan foydalanishingiz mumkin.
Misol: sotib olishlar buyurtmachilari uchun o‘rta qiymatdan yuqori bo‘lgan hamma buyurtmalarni topish.
SELECT * FROM Orders a WHERE AMT >(SELECT AVG (AMT) FROM Orders b WHERE b.CNum = a.CNum);
HAVING operatoridan ostki so‘rovlarda foydalanilganidek mutanosib ostki so‘rovlarda ham foydalanigsh mumkin.
HAVING ifodasida mutanosib ostki so‘rovdan foydalanganda HAVING o‘zida ishlatilishi mumkin bo‘lgan pozitsiyalarga tashqi ilovalarni cheklab qo‘yishingiz kerak. Chunki HAVING ifodasida faqat agregat SELECT ifodasida ko‘rsatilgan funksiyalardan yoki GROUP BY ifodasida ko‘rsatilgan maydonlardan foydalanish mumkin. Ulardan siz tashqi ilova sifatida foydalanishingiz mumkin. Buning sababi shuki, HAVING tashqi so‘rovdagi satrlar uchun emas guruhlar uchun baxolanadi. Shuning uchun ostki so‘rov bir marta satr uchun emas guruh uchun bajariladi.
Misol: Buyurtmalar jadvalidagi sotib olishlar summalarini sanalar bo‘yicha guruhlar summasini hisoblash kerak bo‘lsin. Shu bilan birga summa maksimal summadan kamida 2000.00 ga ko‘p bo‘lmagan sanalarni chiqarib tashlash kerak bo‘lsin:
SELECT ODate, SUM(AMT) FROM Orders a GROUP BY ODate HAVING SUM(AMT) > (SELECT 2000.00 + MAX(AMT) FROM Orders b WHERE a.ODate = b.ODate);
Ostki so‘rov asosiy so‘rovning ko‘rilayotgan agregat guruhi sanasiga teng sanaga ega hamma satrlar uchun MAX qiymat hisoblaydi. Bu WHERE ifodasidan foydalanib bajarilishi lozim. Ostki so‘rovning o‘zi GROUP BY yoki HAVING operatorlarini ishlatmasligi kerak.
EXISTS operatoridan foydalanish.
EXISTS - bu “TRUE” yoki “FALSE” qaytaruvchi operatordir. Bu shuni bildiradiki, u predikatda avtonom yoki mantiqiy operatorlar AND, OR, va NOT yordamida tuzilgan mantiqiy ifodalar bilan kombinatsiya qilingan xolda ishlatilishi mumkin. U ostki so‘rovni “TRUE” deb baxolaydi agar u ixtiyoriy natija xosil qilsa va “FALSE” deb baxolaydi xech qanday natija xosil qilmasa.
Misol: Agar buyurtmachilardan juda bo‘lmasa bittasi San Jose shaxrida yashasa, buyurtmachilar jadvalidagi ma’lumotlarni chiqaring.

Download 150.21 Kb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   13




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling