SQLab
O‘rganishMashqMasalalarArenaReyting
© 2026 SQLab · Toshkent
SQLab

SQL’ni o‘rnatmasdan, brauzerning o‘zida o‘rganing.

Platforma

  • O‘rganish
  • Mashq
  • Masalalar
  • Arena
  • Reyting

Kimlar uchun

  • Talabalar
  • Ustozlar
  • Universitetlar
© 2026 SQLab. Barcha huquqlar himoyalangan.O‘zbekistonda, talabalar uchun yaratilgan.
O‘rganishMashqMasalalarArenaReyting
0/26

Asoslar

  • Ma’lumotlar bazasi nima?
  • Birinchi SELECT
  • WHERE: kerakli qatorlarni tanlash
  • IN, BETWEEN, LIKE va NULL
  • Saralash, LIMIT va DISTINCT

Hisob-kitob

  • Ifodalar, funksiyalar va CASE
  • Sanalar bilan ishlash
  • COUNT, SUM, AVG, MIN, MAX
  • GROUP BY va HAVING

Jadvallarni ulash

  • Kalitlar va bog‘lanishlar
  • INNER JOIN
  • LEFT JOIN va juftsiz qatorlar
  • Bir nechta jadval va self join

Murakkab so‘rovlar

  • Ichki so‘rovlar
  • UNION, INTERSECT, EXCEPT
  • WITH: nomlangan so‘rovlar
  • Oyna funksiyalari

Jadval yaratish va o‘zgartirish

  • CREATE TABLE: turlar va cheklovlar
  • INSERT, UPDATE, DELETE
  • ALTER, DROP, TRUNCATE
  • Bazani to‘g‘ri loyihalash

Professional daraja

  • Indekslar va EXPLAIN
  • Tranzaksiyalar va ACID
  • VIEW: saqlangan so‘rovlar
  • Funksiyalar, protseduralar, triggerlar
  • Foydalanuvchilar, huquqlar, zaxira nusxa
O‘rganish/Hisob-kitob

GROUP BY va HAVING

099 daq

GROUP BY qatorlarni bir xil qiymat bo‘yicha guruhlarga ajratadi va har bir guruh uchun alohida hisoblaydi. «Har bir shahardan nechta talaba?», «har bir kategoriyada o‘rtacha narx?» — hammasi shu.

Qanday ishlaydi

university· O‘zgartirib ko‘ring
SELECT city, COUNT(*) AS students
FROM students
GROUP BY city
ORDER BY students DESC;

Baza talabalarni shaharlar bo‘yicha «qoziqlarga» ajratadi, keyin har bir qoziqni sanaydi. Natijada har bir shahar — bitta qator.

Qoida

SELECT dagi har bir ustun yoki GROUP BY da bo‘lishi, yoki agregat ichida turishi kerak:

university· O‘zgartirib ko‘ring
SELECT course, funding, COUNT(*) FROM students GROUP BY course, funding ORDER BY course, funding;

PostgreSQL bu qoidani doim qat’iy tekshiradi: qoidani buzsangiz — «must appear in the GROUP BY clause» xatosi.

HAVING — guruhlar uchun shart

WHERE qatorlarni guruhlashdan oldin filtrlaydi, HAVING esa guruhlarni keyin:

university· O‘zgartirib ko‘ring
SELECT city, COUNT(*) AS students
FROM students
GROUP BY city
HAVING COUNT(*) > 25
ORDER BY students DESC;

Ikkalasi birga:

university· O‘zgartirib ko‘ring
SELECT city, COUNT(*) AS grant_students
FROM students
WHERE funding = 'grant'
GROUP BY city
HAVING COUNT(*) >= 10;

Bajarilish tartibi

So‘rov shu tartibda yoziladi, baza ham deyarli shu tartibda bajaradi:

  1. FROM — qaysi jadval;
  2. WHERE — qaysi qatorlar;
  3. GROUP BY — guruhlash;
  4. HAVING — qaysi guruhlar;
  5. SELECT — nimani ko‘rsatish;
  6. ORDER BY, LIMIT — tartib va cheklov.

Shuning uchun WHERE ichida COUNT(*) ishlatib bo‘lmaydi — u paytda guruhlar hali yo‘q.

1Mashq

Har bir buyurtma holati (status) bo‘yicha buyurtmalar sonini chiqaring: status va soni.


2Mashq

Kamida 4 ta mahsuloti bor brendlarni chiqaring: brand va mahsulotlar soni.


3Mashq

Har bir to‘lov usuli (method) bo‘yicha to‘lovlar amount yig‘indisini chiqaring.


Esda qoldiring

  • GROUP BY — guruhlab hisoblash; SELECT dagi oddiy ustunlar GROUP BY da bo‘lsin.
  • WHERE — qatorlar uchun, HAVING — guruhlar uchun.
  • Tartib: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY.
Oldingi darsCOUNT, SUM, AVG, MIN, MAXKeyingi darsKalitlar va bog‘lanishlar

Mundarija

  • Qanday ishlaydi
  • Qoida
  • HAVING — guruhlar uchun shart
  • Bajarilish tartibi
  • Esda qoldiring
O‘rganishMashqMasalalarArenaReyting

SQLab