IN, BETWEEN, LIKE va NULL
048 daq
= va > bilan ko‘p narsa qilsa bo‘ladi, lekin SQL’da shartlarni qisqa va aniq yozish uchun yana to‘rtta foydali vosita bor.
IN — ro‘yxatdan biri
Bir nechta OR o‘rniga:
Bu city = 'Buxoro' OR city = 'Navoiy' OR city = 'Urganch' bilan bir xil, faqat qisqaroq. Teskarisi — NOT IN.
BETWEEN — oraliqda
BETWEEN a AND b — chegaralar ham kiradi, ya’ni >= a AND <= b. Sanalar uchun ham ishlaydi:
LIKE — andaza bo‘yicha qidirish
%— istalgan sondagi belgilar (hech narsa ham bo‘lishi mumkin);_— aynan bitta belgi.
| Andaza | Ma’nosi |
|---|---|
'A%' |
A bilan boshlanadi |
'%ova' |
«ova» bilan tugaydi |
'%bek%' |
ichida «bek» bor |
'_a%' |
ikkinchi harfi «a» |
PostgreSQL’da LIKE katta-kichik harfni farqlaydi: 'a%' «Aziz» ni topmaydi. Farqlamasdan qidirish uchun ILIKE bor: WHERE first_name ILIKE 'a%'.
NULL — qiymat yo‘q
NULL — «noma’lum» yoki «kiritilmagan» degani. Masalan, ba’zi talabalarning telefoni yozilmagan. NULL hech narsaga teng emas — hatto o‘ziga ham! Shuning uchun = NULL ishlamaydi:
To‘g‘risi — IS NULL va IS NOT NULL.
products jadvalidan «Apple», «Samsung» yoki «Xiaomi» brendiga tegishli mahsulotlarning name va brand ustunlarini chiqaring.
Narxi 1 000 000 dan 3 000 000 gacha (chegaralar ham kiradi) bo‘lgan mahsulotlarning name va price ustunlarini chiqaring.
Elektron pochtasi kiritilmagan mijozlarning first_name va phone ustunlarini chiqaring.
Esda qoldiring
IN (…)— ro‘yxatdan biri;BETWEEN a AND b— chegaralar bilan oraliq.LIKE:%— istalgan belgilar,_— bitta belgi.NULLbilan faqatIS NULL/IS NOT NULLishlaydi.