Hozirgacha biz jadvaldan ma'lumot o'qib keldik (SELECT). Lekin ko'pincha jadvaldagi mavjud ma'lumotni o'zgartirish kerak bo'ladi. Masalan, mahsulotning narxi tushdi yoki ombordagi soni o'zgardi.
Mavjud qatorlarni o'zgartirish uchun UPDATE operatori ishlatiladi.
Misollarni mahsulotlar jadvalida ko'rib chiqamiz:
| id | nomi | kategoriya | narx | ombor |
|---|---|---|---|---|
| 1 | Telefon | Elektronika | 5000000 | 10 |
| 2 | Noutbuk | Elektronika | 12000000 | 5 |
| 3 | Quloqchin | Elektronika | 300000 | 50 |
| 4 | Kitob | Kitoblar | 50000 | 100 |
| 5 | Daftar | Kanstovar | 8000 | 200 |
| 6 | Ruchka | Kanstovar | 3000 | 500 |
| 7 | Stol | Mebel | 800000 | 15 |
| 8 | Stul | Mebel | 250000 | 40 |
UPDATE ning tuzilishi quyidagicha:
UPDATE jadval_nomi
SET ustun = yangi_qiymat
WHERE shart;Bu uch qismdan iborat:
Masalan, Ruchka (id=6) narxini 4000 ga o'zgartiramiz:
UPDATE mahsulotlar SET narx = 4000 WHERE id = 6;Bu so'rov hech narsa chiqarmaydi — u shunchaki jadvaldagi qatorni o'zgartiradi. O'zgarishni ko'rish uchun keyin SELECT qilib ko'ramiz:
SELECT nomi, narx FROM mahsulotlar WHERE id = 6;Natija:
Ruchka|4000Ruchka ning narxi 3000 dan 4000 ga o'zgardi.
Eslatma:
SETdan keyin tenglik belgisi (=) yangi qiymat berish uchun ishlatiladi, taqqoslash uchun emas.WHEREichidagi=esa, oldingidek, shart (qaysi qatorni topish) uchun ishlatiladi.
UPDATE da WHERE qaysi qatorlarni o'zgartirishni belgilaydi. Misol uchun, agar WHERE id = 6 desak, faqat bitta qator (Ruchka) o'zgaradi.
WHERE shartiga mos kelgan har bir qator o'zgaradi. Masalan, Kanstovar kategoriyasidagi barcha mahsulotlar narxini 10000 qilib qo'yamiz:
UPDATE mahsulotlar SET narx = 10000 WHERE kategoriya = 'Kanstovar';Bu Daftar va Ruchka ning ikkalasi narxini ham 10000 qiladi, chunki ikkalasi ham shu kategoriyada.
Muhim: Agar
WHEREni yozmasangiz,UPDATEjadvaldagi BARCHA qatorlarni o'zgartirib yuboradi! Quyidagi so'rov bitta xato — u har bir mahsulotning narxini0ga aylantiradi:UPDATE mahsulotlar SET narx = 0; -- WHERE yo'q — XAVFLI!Shuning uchun
UPDATEyozayotgandaWHEREni hech qachon unutmang.
SET dan keyin ustunlarni vergul (,) bilan ajratib, bir vaqtning o'zida bir nechtasini o'zgartirish mumkin. Masalan, Daftar (id=5) ning ham narxini, ham omborini yangilaymiz:
UPDATE mahsulotlar SET narx = 9000, ombor = 150 WHERE id = 5;Tekshirib ko'ramiz:
SELECT nomi, narx, ombor FROM mahsulotlar WHERE id = 5;Natija:
Daftar|9000|150Pastdagi kod oynasida mahsulotlar jadvali allaqachon yaratilgan va to'ldirilgan. Sizning vazifangiz ikki qadamdan iborat:
Ruchka (id=6) mahsuloti narxini 5000 ga yangilang (UPDATE).5 va 6 bo'lgan mahsulotlarning nomi va narxini, id bo'yicha tartibda chiqaring.