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/Professional daraja

Tranzaksiyalar va ACID

239 daq

Bankda pul o‘tkazish ikki qadamdan iborat: bir hisobdan ayirish va boshqasiga qo‘shish. Agar birinchisi bajarilib, ikkinchisidan oldin server o‘chib qolsa-chi? Pul shunchaki yo‘qoladi. Tranzaksiya bunga yo‘l qo‘ymaydi.

Hammasi yoki hech narsa

BEGIN;
UPDATE accounts SET balance = balance - 500000 WHERE id = 1;
UPDATE accounts SET balance = balance + 500000 WHERE id = 2;
COMMIT;
  • BEGIN — tranzaksiya boshlandi;
  • COMMIT — hammasini saqlash;
  • ROLLBACK — hammasini bekor qilish, go‘yo hech narsa bo‘lmagandek.

COMMIT gacha bo‘lgan o‘zgarishlarni boshqa foydalanuvchilar ko‘rmaydi. Xato bo‘lsa yoki aloqa uzilsa — baza tranzaksiyani o‘zi bekor qiladi.

O‘zingizni himoya qilish

Tranzaksiya — xavfli buyruqdan oldin xavfsizlik kamari:

BEGIN;
DELETE FROM dori WHERE yaroqlilik_muddati < '2026-01-01';
SELECT count(*) FROM dori;      -- natijani tekshiramiz
ROLLBACK;                       -- yoki COMMIT, agar hammasi to‘g‘ri bo‘lsa

Erkin rejimda sinab ko‘ring: tayyor bazani yuklang, BEGIN dan keyin hamma qatorni o‘chiring, SELECT bilan ko‘ring, keyin ROLLBACK — qatorlar joyida.

ACID

Yaxshi baza tranzaksiyalar uchun to‘rt narsani kafolatlaydi:

Harf Ma’nosi Oddiy tilda
Atomicity bo‘linmaslik hammasi yoki hech narsa
Consistency izchillik qoidalar (kalitlar, cheklovlar) buzilmaydi
Isolation ajratilganlik parallel tranzaksiyalar bir-biriga xalaqit bermaydi
Durability barqarorlik COMMIT dan keyin ma’lumot yo‘qolmaydi, hatto server o‘chsa ham

Parallel ishlash muammolari

Bir vaqtda ko‘p odam ishlaganda nima bo‘lishi mumkin:

  • iflos o‘qish — boshqaning hali saqlanmagan o‘zgarishini ko‘rish;
  • takrorlanmas o‘qish — bir tranzaksiya ichida bir qatorni ikki marta o‘qisangiz, har xil natija;
  • fantom qatorlar — qayta sanasangiz, yangi qatorlar paydo bo‘ladi.

Bularning oldini olish darajasi izolyatsiya darajasi deyiladi.

PostgreSQL odatda READ COMMITTED darajasida ishlaydi: har bir buyruq faqat saqlangan ma’lumotni ko‘radi. Kerak bo‘lsa: BEGIN ISOLATION LEVEL SERIALIZABLE;

Avtomatik saqlash

Tranzaksiya boshlanmasa, har bir buyruq o‘zi alohida tranzaksiya bo‘lib, darhol saqlanadi (autocommit). Shuning uchun BEGIN siz yozilgan DELETE ni ROLLBACK bilan qaytarib bo‘lmaydi.

SAVEPOINT — oraliq nuqta

BEGIN;
INSERT INTO mijoz (ism) VALUES ('Aziz');
SAVEPOINT birinchi;
INSERT INTO mijoz (ism) VALUES ('Xato');
ROLLBACK TO SAVEPOINT birinchi;   -- faqat ikkinchisi bekor
COMMIT;

Esda qoldiring

  • BEGIN … COMMIT — hammasi saqlanadi; ROLLBACK — hammasi bekor.
  • ACID — bo‘linmaslik, izchillik, ajratilganlik, barqarorlik.
  • Xavfli o‘zgarishdan oldin BEGIN yozing.
Oldingi darsIndekslar va EXPLAINKeyingi darsVIEW: saqlangan so‘rovlar

Mundarija

  • Hammasi yoki hech narsa
  • O‘zingizni himoya qilish
  • ACID
  • Parallel ishlash muammolari
  • Avtomatik saqlash
  • SAVEPOINT — oraliq nuqta
  • Esda qoldiring
O‘rganishMashqMasalalarArenaReyting

SQLab