AXV

SQL: WHERE va mantiqiy operatorlar

WHERE, taqqoslash operatorlari, AND, OR, NOT, IN, BETWEEN, LIKE

9-sinfBusiness Intelligence5-hafta · 13-dars

Bugun nimalarni o'rganamiz?

WHERE va taqqoslash

Faqat shartga mos qatorlar

AND, OR, NOT

Bir nechta shartni birlashtirish

IN, BETWEEN, LIKE

Qisqa va qulay filtrlar

Takrorlash

SELECT DISTINCT Kategoriya FROM Mahsulotlar; 6 qatorli jadvalda (3 ta kategoriya) nechta qator qaytaradi?

DISTINCT takrorlarni olib tashlaydi: Aksessuar, Ekran, Kompyuter.
01

WHERE va taqqoslash

Faqat shartga mos qatorlar

WHERE qanday filtrlaydi

FROMMahsulotlar WHERE Narx> 1000000 Mos qatorlarqoladi SELECTustunlari 6 qator, shartdan so'ng 3 qator qoladi

WHERE: oddiy shartlar


SELECT Nomi, Narx
FROM Mahsulotlar
WHERE Narx > 1000000;

SELECT *
FROM Mahsulotlar
WHERE Kategoriya = N'Aksessuar';
  
Narx > 1000000 Monitor, Noutbuk va Planshet (3 qator) ni, Kategoriya = N'Aksessuar' esa Sichqoncha, Klaviatura, Quloqchin ni qaytaradi.

Mini-test

WHERE Narx > 1000000 shartida qaysi mahsulot qoladi?

Faqat 1 000 000 dan qimmat qatorlar: Monitor, Noutbuk, Planshet.
02

AND, OR, NOT

Bir nechta shartni birlashtirish

AND va OR farqi

Shart 1 AND:ikkalasi true OR: bittasitrue NOT: teskari Murakkab shartlarda qavs yozing

AND, OR, NOT va qavslar


SELECT Nomi FROM Mahsulotlar
WHERE Kategoriya = N'Aksessuar' AND Narx < 100000;

SELECT Nomi FROM Mahsulotlar
WHERE Kategoriya = N'Ekran' OR Soni < 5;

SELECT Nomi FROM Mahsulotlar
WHERE NOT Kategoriya = N'Aksessuar';

SELECT Nomi FROM Mahsulotlar
WHERE (Kategoriya = N'Aksessuar' OR Kategoriya = N'Ekran')
  AND Narx > 1000000;
  
Qavssiz A OR B AND C bu A OR (B AND C) demak. Birinchi so'rov faqat Sichqoncha ni, qavsli oxirgi so'rov esa faqat Monitor ni qaytaradi.

Mini-test

WHERE Kategoriya = N'Ekran' OR Soni < 5 nechta qator qaytaradi (Monitor: Ekran, Soni 4; Noutbuk: Soni 3)?

Monitor (Ekran) va Noutbuk (Soni < 5) shartdan o'tadi; Planshet Soni 6 — o'tmaydi.
03

IN, BETWEEN, LIKE

Qisqa va qulay filtrlar

Qaysi filtr qachon

IN: ro'yxatdanbiri BETWEEN:oraliqda LIKE: namunabo'yicha NOT IN,NOT LIKE Har bir operator yozuvni qisqartiradi

IN, BETWEEN, LIKE


SELECT Nomi FROM Mahsulotlar
WHERE Kategoriya IN (N'Ekran', N'Kompyuter');

SELECT Nomi, Narx FROM Mahsulotlar
WHERE Narx BETWEEN 100000 AND 2000000;

SELECT Nomi FROM Mahsulotlar
WHERE Nomi LIKE N'K%';

SELECT Nomi FROM Mahsulotlar
WHERE Nomi LIKE N'%ch%';
  
LIKE N'%ch%' Sichqoncha va Quloqchin ni topadi. % bilan boshlangan namuna katta jadvalda sekin ishlashi mumkin.

Mini-test

Narx BETWEEN 100000 AND 150000 shartida 150 000 narxli Klaviatura qoladimi?

BETWEEN ikkala chegarani ham o'z ichiga oladi.

OR zanjiri va IN

OR bilan

Kategoriya = N'Ekran' OR Kategoriya = N'Kompyuter'
VS

IN bilan

Kategoriya IN (N'Ekran', N'Kompyuter')

Natija bir xil, IN qisqa va o'qilishi oson.

Wildcard belgilar. Bosing

%

bosing

Nol yoki undan ko'p belgi: LIKE N'K%'

_

bosing

Aynan bitta belgi: LIKE N'_lub'

%ch%

bosing

Matn ichida «ch» bor: Sichqoncha, Quloqchin

NOT LIKE

bosing

Namunaga mos kelmaydigan qatorlar

Filtr yozish bosqichlari

1. Savolni aniqlang

Qaysi ustun va qanday shart kerakligini yozing.

2. WHERE yozing

Operatorni tanlang: =, >, IN, BETWEEN, LIKE.

3. Natijani tekshiring

Qatorlar sonini kutilgan natija bilan solishtiring.

Operatorlar yonma-yon

OperatorVazifasiMisol
ANDikkala shart trueNarx < 1e5 AND Soni > 10
ORkamida bittasi trueSoni < 5 OR Narx < 1e5
NOTshartni teskari qiladiNOT Kategoriya = N'Ekran'
INro'yxatdan biriIN (N'A', N'B')
BETWEENoraliq, chegaralar bilanBETWEEN 1 AND 5

Pastga bosing: bajarilish tartibi

Shartning bajarilish tartibi

  1. Avval qavs ichidagi ifodalar hisoblanadi.
  2. Keyin NOT, so'ng AND, oxirida OR bajariladi.
  3. Shubha bo'lsa, qavs qo'ying: so'rov aniq va xavfsiz bo'ladi.

Filtrni qo'shamiz


SELECT Nomi, Narx
FROM Mahsulotlar;
  

Filtrni qo'shamiz


SELECT Nomi, Narx
FROM Mahsulotlar
WHERE Narx > 1000000
  AND Soni > 3;
  

Raqamlarda WHERE

0
qator jadvalda
0
qator Narx > 1 000 000 uchun
0
taqqoslash operatori

Filtr natijada qatorlarni kamaytiradi, ustunlarni emas.

Amaliy topshiriq 20 daqiqa

OsonQimmat mahsulotlar: Mahsulotlar dan narxi 1 000 000 dan yuqori mahsulotlar nomi va narxini chiqaring.
OsonAksessuarlar: Faqat Aksessuar kategoriyasidagi mahsulotlarning barcha ustunlarini chiqaring.
O'rtaArzon va ko'p: Narxi 200 000 dan past va soni 10 dan ko'p mahsulotlarni toping.
QiyinQavs ahamiyati: Ikki so'rovni yozing va natijalarini solishtiring: (a) Kategoriya = N'Aksessuar' OR Kategoriya = N'Ekran' AND Narx > 1000000; (b) xuddi shu shart qavs bilan: (Aksessuar OR Ekran) AND Narx > 1000000. Nega natija farq qiladi?
BonusRahbar uchun filtr: Rahbar so'radi: «Narxi 100 000 va 2 000 000 oralig'ida, nomi 'K' yoki 'Q' bilan boshlanadigan, Aksessuar bo'lmagan mahsulotlar». Bitta so'rov yozing.

Dars xulosasi

WHERE

Qatorlarni shart bo'yicha filtrlaydi.

AND / OR / NOT

Shartlarni birlashtirish; qavs bilan tartib.

IN, BETWEEN, LIKE

Ro'yxat, oraliq va namuna bo'yicha qidiruv.

Uyga vazifa: 10 ta filtr so'rovi Mahsulotlar jadvalida.

Keyingi dars: SQL: ORDER BY, LIMIT va OFFSET

Saralash va sahifalash

5-hafta · 14-dars