Интерактивные задания, привязанные к этому уроку — выполните в реальной среде Kubernetes и проверьте результат.
database
SQL: jadval yaratish (CREATE TABLE)
Osonbolt+10 XP
Alertlar uchun yangi jadval kerak: alerts(id INTEGER, msg TEXT, level TEXT). Vazifa query.sql — alerts jadvalini aynan shu uch ustun (shu tartibda) bilan yaratsin Muvaffaqiyat mezoni (jonli) Jadval yaratiladi va unga yozib bo'ladi (checker bo'sh bazada sinaydi)
database
SQL: PRIMARY KEY — takror kalitni bazaning o'zi rad etsin
Osonbolt+15 XP
Servislar jadvalida NOM noyob identifikator: takror nom kiritish BAZANING O'ZIDA rad etilishi kerak (ilova xatosiga umid emas). Vazifa query.sql — services(name TEXT PRIMARY KEY, cpu INTEGER) jadvalini yaratsin Muvaffaqiyat mezoni (jonli) Bir xil nomli ikkinchi INSERT xato bilan rad etiladi (checker jonli sinaydi)
database
SQL: DEFAULT qiymat — ko'rsatilmasa avtomatik to'ldirilsin
Osonbolt+15 XP
Yangi servis yozuvida holat ko'rsatilmasa active bo'lishi kerak — sxema darajasidagi standart. Vazifa query.sql — services(name TEXT, status TEXT DEFAULT 'active') jadvalini yaratsin Muvaffaqiyat mezoni (jonli) INSERT INTO services (name) VALUES ('web') dan keyin status active
database
SQL: NOT NULL — majburiy maydonni baza talab qilsin
Osonbolt+15 XP
Har servisda name MAJBURIY: nomsiz yozuv bazaga umuman kirmasligi kerak. Vazifa query.sql — services(name TEXT NOT NULL, cpu INTEGER) jadvalini yaratsin Muvaffaqiyat mezoni (jonli) NULL nomli INSERT rad etiladi, to'g'risi kiradi
database
SQL: mavjud jadvalga ustun qo'shish (ALTER TABLE)
Murakkabbolt+25 XP
Ishlab turgan services jadvaliga region ustuni kerak (standart eu) — ma'lumot YO'QOLMASDAN. Vazifa query.sql — ALTER TABLE services ADD COLUMN region TEXT DEFAULT 'eu' Muvaffaqiyat mezoni (jonli) Eski qatorlar saqlanadi va region ustuni eu bilan to'ladi
database
SQL: index yaratish va uni rejada ko'rish
Murakkabbolt+25 XP
env bo'yicha qidiruvlar sekin — idx env indeksi yaratilsin; so'rov REJASIDA index ishlatilishi ko'rinsin. Vazifa query.sql — CREATE INDEX idx env ON services(env) Muvaffaqiyat mezoni (jonli) EXPLAIN QUERY PLAN ... WHERE env=... rejasida USING INDEX idx env ko'rinadi
database
SQL: eskirgan jadvalni olib tashlash (DROP TABLE)
Osonbolt+15 XP
legacy metrics jadvali endi ishlatilmaydi — sxemadan butunlay olib tashlansin; services esa daxlsiz. Vazifa query.sql — DROP TABLE legacy metrics Muvaffaqiyat mezoni (jonli) legacy yo'qoladi, services qatorlari joyida
database
SQL: view — tayyor filtrni nomlash
Murakkabbolt+25 XP
prod servislarini har safar WHERE bilan yozish o'rniga prod services nomli VIEW bo'lsin — hisobotlar undan o'qiydi. Vazifa query.sql — CREATE VIEW prod services AS SELECT name, cpu FROM services WHERE env='prod' Muvaffaqiyat mezoni (jonli) SELECT ... FROM prod services faqat prod qatorlarini beradi va JONLI (yangi prod qator view'da darhol ko'rinadi)
database
SQL: UNIQUE cheklov — takror emailni baza to'ssin
Murakkabbolt+25 XP
Foydalanuvchilar jadvalida email TAKRORLANMASLIGI shart (PK esa alohida id bo'lsin). Vazifa query.sql — users(id INTEGER PRIMARY KEY, email TEXT UNIQUE) jadvalini yaratsin Muvaffaqiyat mezoni (jonli) Bir xil email bilan ikkinchi INSERT rad etiladi
database
SQL: so'rov natijasidan jadval yasash (CREATE TABLE AS)
Murakkabbolt+25 XP
Hisobot uchun prod servislarining SNAPSHOT jadvali kerak: prod snapshot — hozirgi holat nusxasi. Vazifa query.sql — CREATE TABLE prod snapshot AS SELECT name, cpu FROM services WHERE env='prod' Muvaffaqiyat mezoni (jonli) Snapshot'da faqat prod qatorlar; keyin asl jadvalga qo'shilgan qator snapshot'ga TA'SIR QILMAYDI (view'dan farqi!)
database
SQL: registrni normalizatsiya qilib chiqarish (UPPER)
Osonbolt+10 XP
Muhit nomlari har xil registrda saqlangan — hisobotda YAGONA katta registrda ko'rinsin. Vazifa query.sql — nom|KATTA ENV ni nom tartibida qaytarsin (UPPER(env)) Muvaffaqiyat mezoni (jonli) DEV ham dev ham bir xil ko'rinishga keladi
database
SQL: qiymat uzunligini o'lchash (LENGTH)
Osonbolt+10 XP
Nom-konventsiya auditi: har servis nomi va uning UZUNLIGI (keyin limit siyosati o'rnatiladi). Vazifa query.sql — nom|uzunlik ni uzunlik kamayishi, so'ng nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) Uzunliklar to'g'ri hisoblangan
database
SQL: sanadan oy qismini ajratish (SUBSTR)
Osonbolt+15 XP
YYYY-MM-DD formatidagi created ustunidan OY qismi kerak (oylik guruhlash uchun). Vazifa query.sql — nom|oy ni nom tartibida qaytarsin (SUBSTR(created, 6, 2)) Muvaffaqiyat mezoni (jonli) 2026-01-15 → 01
database
SQL: qiymat ichida almashtirish (REPLACE)
Osonbolt+15 XP
Servis nomlari env-o'zgaruvchi formatiga o'tkazilsin: chiziqchalar pastki chiziqqa (web-eu → web eu). Vazifa query.sql — REPLACE(name, '-', ' ') ni nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) Barcha chiziqchalar almashadi
database
SQL: NULL o'rniga standart ko'rsatish (COALESCE)
Osonbolt+15 XP
Hisobotda egasiz (owner NULL) servislar unassigned deb ko'rinishi kerak — bo'sh katak emas. Vazifa query.sql — nom|COALESCE(owner,'unassigned') ni nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) NULL o'rnida unassigned
database
SQL: SELECT ichida tarmoqli belgi (CASE)
Murakkabbolt+25 XP
Har servisga yuklama darajasi yozilsin: cpu/total nisbati 0.8 dan katta — hot, aks holda normal (SAQLAMASDAN, faqat hisobotda). Vazifa query.sql — nom|daraja ni nom tartibida, CASE WHEN cpu 1.0 / total 0.8 THEN 'hot' ELSE 'normal' END bilan qaytarsin Muvaffaqiyat mezoni (jonli) Nisbati yuqori servis hot
database
SQL: band foizni hisoblash (ROUND + kasr-majburlash)
Osonbolt+15 XP
Sig'im hisobotida har servisning band FOIZI bir xonali kasr bilan: cpu 100.0/total. Vazifa query.sql — nom|foiz (ROUND(...,1)) ni nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) 150/200 → 75.0
database
SQL: satrlarni ulash (||) — hisobot yorlig'i
Osonbolt+15 XP
Dashboard yorliqlari nom (env) ko'rinishida kerak: ikki ustun bitta satrga ulanadi. Vazifa query.sql — name || ' (' || env || ')' ni nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) cache (prod) ko'rinishidagi qatorlar
database
SQL: sana funksiyasi bilan oy kesimi (strftime)
Murakkabbolt+25 XP
Oylik statistika: har servis yaratilgan OY raqami SANA-SEMANTIK funksiya bilan olinsin (SUBSTR emas). Vazifa query.sql — nom|oy (strftime('%m', created)) ni nom tartibida qaytarsin Muvaffaqiyat mezoni (jonli) 2026-05-20 → 05
database
SQL: printf bilan formatlangan identifikator
Murakkabbolt+25 XP
Hisobot uchun SRV-0042 ko'rinishidagi kodlar kerak: raqamli id 4 xonaga nol bilan to'ldiriladi. Baza services(id INTEGER, name TEXT) Vazifa query.sql — printf('SRV-%04d', id) ni id tartibida qaytarsin Muvaffaqiyat mezoni (jonli) id=7 → SRV-0007