018. INSERT, UPDATE, DELETE, RETURNING
Bu mavzuda ma'lumotni o'zgartirish bo'yicha 32 ta masala bor. Har bir masala oldida qavs ichida sxema nomi va qiyinlik darajasi ko'rsatilgan. Sxemalar Sxemalar va tayyorlov sahifasida berilgan.
Masalani o'zingiz yechib, natijani Kutilgan natija bilan solishtiring. O'zgartiruvchi masalalarda (INSERT, UPDATE, DELETE, DDL) natija shartda aytilgan tekshiruv so'rovidan olingan. Natija 10 qatordan ko'p bo'lsa, birinchi 10 qator ko'rsatilgan.
1. (dokon, oson) kategoriya jadvaliga id=6, nom='Sport' qatorini qo'shing; tekshirish: kategoriyalar soni.
2. (dokon, oson) Mijoz jadvaliga yangi mijoz qo'shing (id=100, ism='Test Mijoz', shahar='Toshkent', royxat_sana=2025-01-01); tekshirish: shu mijoz qatori.
3. (dokon, oson) 1-kategoriya mahsulotlari narxini 10% oshiring; tekshirish: shu kategoriya narxlari yig'indisi (butun).
4. (dokon, oson) Barcha 'bekor' buyurtmalarni o'chiring; tekshirish: qolgan buyurtmalar soni.
5. (dokon, oson) Qoldig'i 0 bo'lgan mahsulotlar qoldig'ini 50 ga o'rnating; tekshirish: qoldig'i 50 bo'lgan mahsulotlar soni.
6. (dokon, o'rta) Ikki kategoriyani bir so'rovda qo'shing (6 Sport, 7 Bolalar) va RETURNING bilan qaytaring.
7. (dokon, o'rta) INSERT ... SELECT: 'Sport' kategoriyasi (id 6) qo'shib, har bir 5-kategoriya mahsulotini nusxalab 6-kategoriyaga (id+100) qo'shing; tekshirish: 6-kategoriya mahsulotlari soni.
8. (dokon, o'rta) UPDATE ... RETURNING: Toshkentlik mijozlarning shahrini 'Tashkent' ga o'zgartirib, id larini qaytaring (id<=12).
9. (dokon, o'rta) DELETE ... RETURNING: miqdori 4 bo'lgan buyurtma elementlarini o'chirib, nechtasi o'chganini sanang (CTE).
10. (dokon, o'rta) UPDATE ... FROM: mahsulot narxini o'z kategoriyasining o'rtacha narxiga tenglashtiring (kategoriya 5 uchun); tekshirish: kategoriya 5 dagi noyob narxlar soni.
11. (dokon, o'rta) DELETE ... USING: to'lovi 'click' bo'lgan to'lovlarni buyurtma holati 'yangi' bo'lganlari uchun o'chiring.
12. (dokon, qiyin) Barcha mijozlarga email to'ldiring: email NULL bo'lganlarga 'noma''[email protected]' qo'ying; tekshirish: NULL emaillar soni va noma'lumlar soni.
13. (dokon, qiyin) Omborni to'ldirish: har bir mahsulot qoldig'ini eng kamida 20 ga yetkazing (GREATEST); tekshirish: eng kichik qoldiq.
14. (maktab, oson) Yangi fan qo'shing: id=9, nom='Geografiya', oqituvchi_id=9.
15. (maktab, oson) O'qituvchilar maoshini 5% oshiring; tekshirish: maoshlar yig'indisi.
16. (maktab, oson) 1 ball olgan barcha baholarni o'chiring; tekshirish: baholar soni.
17. (maktab, o'rta) 'kasal' holatidagi davomat yozuvlarini 'keldi' ga o'zgartiring va nechta o'zgargani.
18. (maktab, o'rta) Yangi o'quvchi qo'shing (id=100, 1-sinf), RETURNING id, ism.
19. (maktab, o'rta) Baho 2 bo'lgan baholarni 3 ga ko'taring (bir marta); tekshirish: 2 lar soni va 3 lar soni.
20. (maktab, qiyin) Telefoni NULL o'quvchilarga '+998900000000' qo'ying; tekshirish: NULL telefonlar soni.
21. (maktab, qiyin) Hech qanday bahosi bo'lmagan o'quvchilarni o'chiring (davomatlari bilan); tekshirish: o'quvchilar soni.
22. (bank, oson) Yangi filial qo'shing (6, 'Namangan filiali', 'Namangan').
23. (bank, oson) 1-hisobga 100000 so'm qo'shing; tekshirish: 1-hisob balansi.
24. (bank, oson) Yopilgan qarzlarni o'chiring; tekshirish: qarzlar soni.
25. (bank, o'rta) Pul o'tkazma (tranzaksiya ichida): 1-hisobdan 2-hisobga 50000 so'm o'tkazing; tekshirish: ikkala balans.
26. (bank, o'rta) Joriy hisoblardan balansi 5000 so'mdan kam bo'lmaganlardan oylik xizmat haqi 5000 so'm yeching (RETURNING id); tekshirish: joriy hisoblar balansi yig'indisi.
27. (bank, o'rta) Tranzaksiya qo'shish: 1-hisob uchun 'kirim' 250000 (id=1000, sana 2025-01-01 10:00).
28. (bank, qiyin) Kechikkan qarzlarning muddatini 3 oyga uzaytiring (muddat_oy+3); faol va yopilganlarga tegmang; tekshirish: muddatlar o'rtachasi.
29. (kutubxona, oson) Yangi janr qo'shing (6,'Fantastika').
30. (kutubxona, oson) 1-kitobning nusxasini 10 ga o'zgartiring.
31. (kutubxona, o'rta) Qaytarilmagan ijaralarni 2024-12-31 da qaytarilgan deb belgilang; tekshirish: qaytarilmaganlar soni.
32. (kutubxona, qiyin) Ijarasi yo'q a'zolarni o'chiring; tekshirish: a'zolar soni.