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

Foydalanuvchilar, huquqlar, zaxira nusxa

267 daq

Haqiqiy bazada ma’lumot qimmatli: shaxsiy ma’lumotlar, pul, baholar. Uni ruxsatsiz kirishdan va yo‘qolishdan himoya qilish — bazani yuritishning ajralmas qismi.

Foydalanuvchilar va rollar

Har bir dastur va odam o‘z hisobi bilan ulanadi va faqat kerakli ishni qila oladi.

PostgreSQL’da hammasi rol: foydalanuvchi ham, guruh ham.

CREATE ROLE report_reader LOGIN PASSWORD 'kuchli-parol';
GRANT CONNECT ON DATABASE university TO report_reader;
GRANT SELECT ON students, grades TO report_reader;

Huquqlar

Huquq Ruxsat beradi
SELECT o‘qish
INSERT, UPDATE, DELETE yozish, o‘zgartirish, o‘chirish
CREATE, DROP, ALTER tuzilmani o‘zgartirish
ALL PRIVILEGES hammasi

Huquqni olib qo‘yish: REVOKE INSERT ON students FROM report_reader;

Eng kam huquq tamoyili: hisobotlar uchun — faqat SELECT; veb-sayt uchun — o‘z jadvallariga yozish, lekin DROP emas; administrator hisobi — faqat administratorlar uchun. SQLab’dagi umumiy bazalarga aynan shunday faqat o‘qish huquqi berilgan — shuning uchun ularda DELETE xato beradi.

SQL injection

Eng mashhur hujum. Dastur foydalanuvchi kiritgan matnni to‘g‘ridan-to‘g‘ri so‘rovga qo‘shsa:

-- dastur shunday so‘rov yasaydi:
SELECT * FROM users WHERE email = '<kiritilgan matn>';

-- hujumchi email o‘rniga shuni kiritadi:  ' OR '1'='1
SELECT * FROM users WHERE email = '' OR '1'='1';   -- hamma foydalanuvchi!

Himoya — parametrli so‘rovlar: qiymat so‘rovdan alohida yuboriladi va hech qachon SQL sifatida o‘qilmaydi.

db.query('SELECT * FROM users WHERE email = $1', [email])   -- PostgreSQL
db.query('SELECT * FROM users WHERE email = ?', [email])    -- MySQL

Qoidasi oddiy: foydalanuvchi matnini hech qachon so‘rovga satr sifatida yopishtirmang.

Parollar

Bazada parol hech qachon ochiq holda saqlanmaydi — faqat uning xeshi (bcrypt, scrypt, argon2). Baza o‘g‘irlansa ham, parollarni bilib bo‘lmaydi.

Zaxira nusxa (backup)

Disk buzilishi, xato DELETE, viruslar — zaxira nusxasiz bularning har biri falokat.

pg_dump -U postgres university > university.sql     # nusxa olish
psql -U postgres -d university_new < university.sql  # tiklash

Yaxshi amaliyot: avtomatik kundalik nusxa, boshqa serverda saqlash va tiklashni muntazam sinab ko‘rish — tekshirilmagan zaxira nusxa — zaxira nusxa emas.

Esda qoldiring

  • Har bir dastur — o‘z hisobi va faqat kerakli huquqlar (GRANT / REVOKE).
  • SQL injection’dan himoya — parametrli so‘rovlar.
  • Parol — faqat xesh; zaxira nusxa — muntazam va tekshirilgan.
Oldingi darsFunksiyalar, protseduralar, triggerlar

Mundarija

  • Foydalanuvchilar va rollar
  • Huquqlar
  • SQL injection
  • Parollar
  • Zaxira nusxa (backup)
  • Esda qoldiring
O‘rganishMashqMasalalarArenaReyting

SQLab