|
SELECT CNum, CName, City FROM Customers
|
bet | 7/10 | Sana | 11.12.2023 | Hajmi | 34,52 Kb. | | #116098 |
Bog'liq Baza SELECT CNum, CName, City FROM Customers
WHERE EXISTS
( SELECT * FROM Customers
WHERE City = 'San Jose' );
EXISTS ni faqat sodda ostki so‘rov bilan emas mutanosib so‘rov bilan ishlatish mumkin. Bu holda EXISTS ichki ostki so‘rovni tashqining xar bir satri uchun tekshiradi.
ALL, ANY, SOMEoperatorlaridan foydalanish.
ANY, ALL, va SOME ostki so‘rovlarni argument sifatida qabul qiluvchi EXISTS operatorni eslatadi, lekin relyasion operatorlar bilan birga ishlatilishi bilan farq qiladi. Bu tomondan ular ostki so‘rovlarga qo‘llaniluvchi IN operatorini eslatadi, lekin undan farqli faqat ostki so‘rovlar bilan ishlashadi. SOME va ANY operatorlari o‘zaro almashinuvchan.
Misol: bir shaxarda joylashgan sotuvchilar bilan buyurtmachilarni topish uchun ANY operatoridan foydalanish.
SELECT * FROM Salepeople
WHERE City = ANY ( SELECT City FROM Customers );
Operator ANY ostkiso‘rov chiqargan xamma qiymatlarni oladi, (bu misol uchun – Buyurtmachilar jadvalidagi xamma City qiymatlari), i va rost deb baxolaydi agar ularning ixtiyoriysi (ANY) tashqi so‘rov satridagi shaxar qiymatiga tengbo‘lsa. ANY operatori o‘rniga IN yoki EXISTS ishlatish mumkin, lekin ANY “= “ operatordan boshqa relyasionn operatorlarni ishlatishi mumkin. Misol: Xamma sotuvchilarni alfavit bo‘yicha kelgan buyurtmachilari bilan birga topish.
SELECT * FROM Salepeople
WHERE SName < ANY ( SELECT CName FROM Customers );
ANY to‘la bir qiymatli emas. Misol: Rimdagi buyurtmachilarga ko‘ra yuqori reytinga ega buyurtmachilarni topish.
SELECT * FROM Customers
WHERE Rating > ANY ( SELECT Rating FROM Customers
WHERE City = 'Rome' );
Ingliz tilida " ixtiyoriysidan katta ( bu erda City = Rome ) " baxolash quyidagicha talqin qilinadi, bu baxolash qiymati xar bir City = Rome xoldagi baxolash qiymatidan katta bo‘lishi kerak. SQL tilida ANY operatoridan foydalanilganda bunday emas. ANY to‘g‘ri deb baxolanadi agar ostki so‘rov shartga mos keluvchi ixtiyoriy qiymat topsa. YUqorida ko‘rilgan misol 300 va 200 baxoli xamma buyurtmachilarni topadi, chunki 300>200 dlya Rimdagi Giovanni uchun va 200>100 Rimdagi Pereira uchun.
Soddaroq aytganda < ANY ifodasi eng katta tanlangan qiymatdan kichik qiymatni, > ANY - eng kichik tanlangan qiymatdan katta qiymatni bildiradi.
ALL yordamida, predikat rost xisoblanadi, ostki so‘rov tanlagan xar bir qiymat tashqi so‘rov predikatidagi shartga mos kelsa.
Misol: Rimdagi xar bir buyurtmachidan baxolari yuqori bo‘lgan buyurtmachilarni chiqaring.
|
| |