SELECT id AS Raqami, name AS F.I.O.,seriya AS Pasport_seriya, phone AS Telefon_nomeri, salary.sum AS moashi, debt.sum AS Olgan_qarzi, salary.sum-debt.sum AS qoldiq FROM salary LEFT JOIN employee ON salary.employe_id = employee.id LEFT JOIN debt ON debt.employe_id = employee.id WHERE debt.sana >=”01.09.2019” AND debt.sana <=”30.09.2019”
Raqami
F.I.O.
Pasport_seriya
Telefon_nomeri
moashi
Olgan_qarzi
qoldiq
1
Shukurov Hayrullo Olimovich
AB0145781
+998938741020
300000
650000
2350000
2
Qodirov Bahodir Baratovich
AA5896321
+998947895241
300000
0
3000000
3
Donayeva Gulnoza Bahodir qizi
AB5687410
+998905687410
300000
1000000
2000000
4
Boqiyev Javlon Shodiqul oʻgʻli
AB0254785
+998905687452
300000
700000
2300000
5
Yaqubova Kamola Qunduzovna
AA0012255
+998995682140
300000
150000
2850000
6
Latipova Karima Bahodirovna
AB5687410
+99891687436
300000
3500000
-500000
Mantiqiy operatorlar ma'lum bir shartning to'g'riligini tekshiradilar. Taqqoslash operatori kabi mantiqiy operatorlar TRUE, FALSE yoki UNKNOWN qiymatlari bilan Boolean ma'lumotlar turini qaytaradilar.
Operator
Izohi
ALL
agar hamma toqqoslashlar TRUE boʻlsa TRUE qaytaradi..
AND
Boolean toifasidagi ikkala ifoda ham TRUE boʻlsa TRUE qaytaradi..
ANY
agar biror bir toʻplamdagi toqqoslashlar TRUE boʻlsa TRUE qaytaradi.
BETWEEN
agar keltirilgan oraliqqa maʻlumotlar tegishli boʻlsa TRUE qaytaradi.
IN
agar berilgan qiymatlarga mos kelsa TRUE qaytaradi.
LIKE
agar obyekt mos keladigan boʻlsa TRUE qaytaradi.
NOT
Boolean tipidagi operatorning qiymatini teskari tomonga o'zgartiradi.
OR
agarda Boolean tipidagi operatorlardan hech boʻlmaganda bittasi TRUE boʻlsa TRUE qaytaradi.
SOME
Agar toʻplamdagi bazi taqqoslashlar TRUE boʻlsa TRUE qaytaradi.
BETWEEN va IN Operatorlari.
BETWEEN ifodasi bu qiymatlar oraliqqa tegishlilikni tekshirishdir. Ifoda sintaksisi quyidagicha:
NOT ifodasi shartni teskarisiga o‘giradi, yaʻni tegishli emas maʻnosini bildiradi.
Misol: Super market narxi har xil diapazonga mos keluvchi mahsulotlarni topish:
SELECT product_name,coast FROM product WHERE coast BETWEEN 2000 AND 20000 NOT ifodasi yordamida berilgan orqliqqa tegishlilikni tekshirish mumkin. Masalan: Sotuvlar haqiqiy hajmlari rejaning 80 dan 120 protsentigacha bo‘lgan oraliqqa tushmaydigan mahsulotlar roʻyxatini chiqarish:
SELECT salesid, name, quota FROM salesWHERE amout NOT BETWEEN (0.8 * quota)AND (1.2 * quota) IN ifoda to‘plamga tegishlilikni tekshiradi. To‘rtta konkret xizmatchilar tomonidan olingan hamma buyurtmalarni aniqlash:
SELECT order_num, rep, amount FROM ordersWHERE rep in (107, 109, 101, 103) NOT IN yordamida diapazonga «tegishli emaslik»ni tekshirish mumkin.
LIKE operatori
Quyidagicha «%»shablonli LIKE operatorini qo‘llaymiz:
SELECT company, credit_limit FROMSTOMERS WHERE company LIKE ‘%nʻ Bu holda LIKE “%n” operatori “n” harfiga tugaydigan hamma yozuvlarni ko‘rsatadi, agar % shabloni birinchi kelsa:
SELECT company, CREDIT_limit FROMcustomers WHERE COMPANY LIKE %gan Baʻzida “%” shabloni o‘rniga “*” belgisi qoʻlanadi, masalan MS SQL uchun, c:\>dir *.exe.
Agar faqat bitta belgi ixtiyoriy boʻlsa “_” shabloni qoʻlanadi.
Masalan: SELECT company, credit_limit FROMcustomers WHERE company LIKE “ban_n”
IS NULL operatori Qo‘llaymiz: Ofisga biriktirilmagan xizmatchini toping:
SELECT name FROM salesreps WHERE rep_office IS NULL Ofisga biriktirilgan hamma xizmatchilarni toping:
SELECT name FROM salesreps WHERE rep_office IS NOT NULL Yozuvlarni tartiblash, ORDER BY jumlasi. Oldin ko‘rilgan so‘rovlarda natijalar ixtiyoriy tartibda olingan edi. Agar o‘quvchilar ro‘yxatini alfavit tartibida yoki tovarlar narxini kamayish tartibida chiqarish zarur boisachi?
Buning uchun SELECT operatori tarkibida ORDER BY ifodasi ko‘zda tutilgan. Avval quyidagi misolni ko‘ramiz: Har bir ofis uchun sotuvlar haqiqiy hajmlarini regionlar nomlari, har bir regionda esa shaharlar nomlari bo‘yicha alifbo tartibida ko‘rsatish: