SQL UPDATE — ma'lumotni o'zgartirish
INSERT bilan yangi ma’lumot qo’shdik. Ammo ma’lumot ko’pincha
o’zgaradi: narx yangilanadi, ombor soni kamayadi. Mavjud qatorni
o’zgartirish uchun UPDATE ishlatiladi.
mahsulotlar jadvali (boshlang’ich holat):
| id | nom | narx | soni | turi |
|---|---|---|---|---|
| 1 | Olma | 8000 | 50 | meva |
| 6 | Qatiq | 9000 | 0 | sut mahsuloti |
UPDATE — qiymatni yangilash
Yozilishi: UPDATE jadval SET ustun = yangi_qiymat WHERE shart. Olma narxini
oshiramiz:
UPDATE mahsulotlar SET narx = 9000 WHERE nom = 'Olma';
O’zingiz ishga tushirib ko’ring — so’rovni tahrirlashingiz ham mumkin:
Tekshirish:
SELECT * FROM mahsulotlar WHERE nom = 'Olma';
Natija — narx yangilandi:
| id | nom | narx | soni | turi |
|---|---|---|---|---|
| 1 | Olma | 9000 | 50 | meva |
SET — qaysi ustunga qanday qiymat berishni bildiradi. WHERE esa
qaysi qatorni o’zgartirishni aniqlaydi.
Bir nechta ustunni birga yangilash
SET da bir nechta ustunni vergul bilan sanash mumkin:
UPDATE mahsulotlar SET narx = 5000, soni = 10 WHERE nom = 'Qatiq';
Bu Qatiqning ham narxini, ham sonini bir yo’la o’zgartiradi — qator endi
5000 narx va 10 soni bilan turadi.
Mavjud qiymatga tayanib o’zgartirish
Yangi qiymat eski qiymatga bog’liq bo’lishi mumkin. Masalan, barcha ichimliklar narxini 10% ga oshiramiz:
UPDATE mahsulotlar SET narx = narx * 1.1 WHERE turi = 'ichimlik';
Bu yerda narx = narx * 1.1 — “yangi narx = eski narx ning 1.1 baravari”.
Baza har qator uchun o’sha qatorning joriy narxidan hisoblaydi.
Amaliy mashq
Mavjud ma’lumotni o’zgartiring:
Olmaning narxini 9000 ga o’zgartiring;SELECTbilan tekshiring;- barcha
'meva'turidagi mahsulotlar narxini 10% oshiring; WHEREsizUPDATEyozing — nechta qator o’zgardi?soni = 0bo’lganlarning sonini 10 ga o’rnating.
4-qadam eng xavfli xato: WHERE unutilsa nima bo’ladi?
Qisqacha xulosa
UPDATE jadval SET ustun = qiymat WHERE shart— mavjud qatorni o’zgartiradi.WHEREmajburiy odat: usiz barcha qatorlar o’zgaradi.SET a = .., b = ..— bir vaqtda bir nechta ustun.- Yangi qiymat eskisiga tayanishi mumkin:
narx = narx * 1.1. - Xavfsiz yo’l: avval shartni
SELECTbilan tekshiring.
Keyingi darsda DELETE bilan qatorni o’chirishni
ko’ramiz — u ham WHERE bilan ishlaydi va yanada ehtiyot talab qiladi.