Reja: sql haqida tushuncha Mysql ma`lumotlar bazasini yaratish sql da bir nechta jadvallar bilan ishlash


Download 1.09 Mb.
bet7/13
Sana29.03.2023
Hajmi1.09 Mb.
#1309032
1   2   3   4   5   6   7   8   9   10   ...   13
Bog'liq
mysql 25

SELECT * FROM Orders
WHERE SNum =
( SELECT SNum FROM Salepeople
WHERE SName = 'Motika' );
Avval ichki so‘rov bajariladi, so‘ngra uning natijasi tashqi so‘rovni xosil qiligsh uchun ishlatiladi (SNum ostki so‘rov natijasi bilan solishtiriladi).
Ostki so‘rov bitta ustun tanlashi lozim, bu ustun qiymatlari tipi predikatda solishtiriladigan qiymat tipi bilan bir xil bo‘lishi kerak. Siz ba’zi xollarda ostki so‘rov bitta qiymat xosil qilishi uchun DISTINCT operatoridan foydalanish mumkin.
Misol: Hoffman (CNum=21) ga xizmat ko‘rsatuvchi sotuvchilar xamma buyurtmalarini topish lozim bo‘lsin.
SELECT * FROM Orders
WHERE SNum = ( SELECT DISTINCT SNum FROM Orders
WHERE CNum = 21 );
Bu xolda ostki so‘rov faqat bitta 11 qiymat chiqaradi, lekin umumiy xolda bir necha qiymatlar bo‘lishi mumkin va ular ichidan DISTINCT faqat bittasini tanlaydi.
Ixtiyoriy sondagi satrlar uchun avtomatik ravishda bitta qiymat xosil qiluvchi funksiya turi - agregat funksiya bo‘lib, undan ostki so‘rovda foydalanish mumkin.
Masalan, siz summasi 4 oktyabrdagi bajarilishi lozim bo‘lgan buyurtmalar summasi o‘rta qiymatidan yuqori bo‘lgan xamma buyurtmalarni ko‘rmoqchisiz:
SELECT * FROM Orders
WHERE AMT >
( SELECT AVG (AMT) FROM Orders
WHERE ODate = ‘1990/10/04’ );
SHuni nazarda tutish kerakki guruxlangan agregat funksiyalar GROUP BY ifodasi terminlarida aniqlangan agregat funksiyalar bo‘lsa ko‘p qiymatlar xosil qilishi mumkin.
Agar ostki so‘rov IN operatoridan foydalanilsa, ixtiyoriy sondagi satrlar xosil qilish mumkin.
Misol: Londondagi sotuvchilar uchun xamma buyurtmalarni ko‘rsatish.
SELECT * FROM Orders
WHERE SNum IN
( SELECT SNum FROM Salepeople
WHERE City = 'London' );
Bu natijani jamlanma orqali xosil qilish mumkin. Lekin odatda ostki sщrovli sщrovlar tezroы bajariladi. Siz ostki so‘rov SELECT jumlasida ustunga asoslangan ifodadan foydalanishingiz mumkin. Bu relyasion 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 yoki GROUP BY yoki HAVING operatorlaridan foydalanishi mumkin.
Misol:

Download 1.09 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   ...   13




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