6-modul · 4-dars: SELECT · Filtering
Daraja: O'rta
SELECT · Filtering. PostgreSQL bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi SELECT · Filtering tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya SELECT qaysi ustunlar chiqishini, WHERE qaysi qatorlar qolishini belgilaydi. AS natija ustuniga tushunarli alias beradi; shu SELECTning WHERE qismida alias odatda hali mavjud emas. ORDER BYsiz natija tartibiga kafolat yo'q. Paginationda teng qiymatlar uchun ikkinchi noyob kalit bilan barqaror tartib qo'shing. DISTINCT tanlangan ustunlar kombinatsiyasidagi takrorlarni olib tashlaydi; bu noto'g'ri JOINni yashirish uchun vosita emas. BETWEEN ikkala chegarani ham qamrab oladi. Vaqt oralig'ida ko'pincha >= boshlanish AND < keyingi_chegara aniqroq. LIKEda % istalgan davomni, _ bitta belgini anglatadi; ILIKE katta-kichik harfga sezgir bo'lmagan moslash beradi. EXISTS subquery kamida bitta qator qaytarishini tekshiradi; ANY kamida bitta taqqoslash, ALL esa hammasi uchun tekshiradi. NULL uch qiymatli mantiq keltiradi: NULL = NULL TRUE emas, IS NULL ishlatiladi. NOT IN ichidagi NULL kutilmagan natija berishi mumkin; mos holatda NOT EXISTSni tanlang.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/6-module%28database%29.md) [Rasmiy qo‘llanma](https://www.postgresql.org/docs/current/)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
SELECT n AS son FROM generate_series(1, 10) AS n
WHERE n BETWEEN 3 AND 7
ORDER BY n DESC;
SELECT 3 = ANY(ARRAY[1,3,5]) AS mavjud;
Keng tarqalgan xatolar
- LIMIT qo'yib ORDER BYsiz sahifalash barqaror natija bermaydi.
Mashqlar
- NULL bor to'plamda NOT IN va NOT EXISTS farqini alohida tajribada ko'rsating.
- ORDER BY siz va ORDER BY bilan LIMIT 10 OFFSET 10 natijasini bir necha marta solishtiring.
Teglar: modul-06, pdp, nazariya