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

Sanalar bilan ishlash

077 daq

Sanalar deyarli har bir bazada bor: tug‘ilgan kun, buyurtma vaqti, imtihon sanasi. Ular bilan ishlash bazalarda biroz farq qiladi — bu darsda ikkalasini ham ko‘rsatamiz.

Turlar

  • date — faqat sana: 2026-11-14;
  • timestamp (PostgreSQL) / datetime (MySQL) — sana va vaqt: 2026-11-14 18:30:00.

Sanalarni oddiy solishtirish mumkin — ular xuddi sonlardek tartiblanadi:

shop· O‘zgartirib ko‘ring
SELECT id, ordered_at FROM orders WHERE ordered_at >= '2026-10-25' ORDER BY ordered_at;

Bugungi sana

CURRENT_DATE — bugun, CURRENT_TIMESTAMP (yoki NOW()) — hozirgi vaqt. Ikkala bazada ham ishlaydi.

shop· O‘zgartirib ko‘ring
SELECT CURRENT_DATE AS today;

Sanadan qism ajratish: EXTRACT

shop· O‘zgartirib ko‘ring
SELECT id, ordered_at, EXTRACT(YEAR FROM ordered_at) AS y, EXTRACT(MONTH FROM ordered_at) AS m
FROM orders LIMIT 5;

EXTRACT ikkala bazada ham bor. Bundan tashqari:

PostgreSQL’da date_trunc — sanani oy, hafta yoki kungacha «kesadi»:

shop· O‘zgartirib ko‘ring
SELECT date_trunc('month', ordered_at) AS month, count(*) FROM orders GROUP BY 1 ORDER BY 1 DESC LIMIT 4;

Sanani chiroyli ko‘rinishda: to_char(ordered_at, 'DD.MM.YYYY').

Sanaga vaqt qo‘shish va farqni hisoblash

PostgreSQL’da interval:

shop· O‘zgartirib ko‘ring
SELECT id, ordered_at, ordered_at + interval '7 days' AS deadline FROM orders LIMIT 3;

Ikki sana farqi — delivered_at - ordered_at (natija interval), kunlarda: delivered_at::date - ordered_at::date.

Butun oy yoki yil bo‘yicha tanlash

BETWEEN '2026-10-01' AND '2026-10-31' vaqtli ustunda 31-oktabr soat 00:00 dan keyingi buyurtmalarni tashlab ketadi! Ishonchli usul — «keyingi oyning boshidan kichik»:

shop· O‘zgartirib ko‘ring
SELECT count(*) FROM orders WHERE ordered_at >= '2026-10-01' AND ordered_at < '2026-11-01';
1Mashq

2007-yilda tug‘ilgan talabalarning first_name va birth_date ustunlarini chiqaring.


2Mashq

2026-yil sentabr oyida berilgan buyurtmalar nechta? Bitta son chiqaring.


Esda qoldiring

  • Sanalar 'yil-oy-kun' ko‘rinishida yoziladi va oddiy solishtiriladi.
  • EXTRACT(YEAR FROM sana) — ikkala bazada ishlaydi.
  • Davr bo‘yicha tanlashda: >= boshlanish AND < keyingi davr boshi.
Oldingi darsIfodalar, funksiyalar va CASEKeyingi darsCOUNT, SUM, AVG, MIN, MAX

Mundarija

  • Turlar
  • Bugungi sana
  • Sanadan qism ajratish: EXTRACT
  • Sanaga vaqt qo‘shish va farqni hisoblash
  • Butun oy yoki yil bo‘yicha tanlash
  • Esda qoldiring
O‘rganishMashqMasalalarArenaReyting

SQLab