SQL DELETE — ma'lumotni o'chirish
UPDATE mavjud qatorni o’zgartirdi. Ba’zan esa qator butunlay
keraksiz bo’ladi: mahsulot sotuvdan olindi, mijoz o’chirilishini so’radi.
Qatorni o’chirish uchun DELETE ishlatiladi.
DELETE — qatorni o’chirish
Yozilishi sodda: DELETE FROM jadval WHERE shart. INSERT darsida
qo’shgan Asalni o’chiramiz:
DELETE FROM mahsulotlar WHERE nom = 'Asal';
O’zingiz ishga tushirib ko’ring — so’rovni tahrirlashingiz ham mumkin:
Bu shartga mos qatorni butunlay o’chiradi. Tekshirish:
SELECT * FROM mahsulotlar WHERE nom = 'Asal';
Natija — bo’sh (hech qanday qator yo’q), chunki Asal o’chirildi.
DELETE — butun qatorni o’chiradi, ustunni emas. Ustundagi bitta
qiymatni tozalash kerak bo’lsa, o’chirish emas, UPDATE bilan
uni NULL ga o’zgartiriladi.
Avval SELECT bilan tekshiring
DELETE ni xavfsiz bajarishning eng yaxshi usuli — o’sha shartni avval
SELECT bilan ishga tushirish. Shunda nima o’chishini oldin ko’rasiz:
-- 1-qadam: nima o'chishini ko'rish
SELECT * FROM mahsulotlar WHERE soni = 0;
-- 2-qadam: ishonch hosil qilgach, o'chirish
DELETE FROM mahsulotlar WHERE soni = 0;
Birinchi so’rov ombori tugagan mahsulotni (Qatiq) ko’rsatadi. Natija kutganingizdek bo’lsagina, ikkinchi so’rovni bajarasiz. Bu odat ko’p xatoning oldini oladi.
DELETE, UPDATE va DROP farqi
Uch tushuncha chalkashtiriladi:
DELETE— jadvaldan qatorlarni o’chiradi, jadvalning o’zi qoladi.UPDATE— qatorni o’chirmaydi, faqat qiymatini o’zgartiradi.DROP TABLE— butun jadvalni (tuzilishi bilan) yo’q qiladi.
Ya’ni DELETE FROM mahsulotlar; jadvalni bo’shatadi, lekin ustunlar va
jadval o’zi turadi — unga yana INSERT qilsa bo’ladi.
Amaliy mashq
Qator o’chiring:
soni = 0bo’lgan mahsulotni o’chiring;SELECTbilan tekshiring;- narxi 20000 dan qimmat mahsulotlarni o’chiring — nechta o’chdi?
DELETE FROM mahsulotlar;yozib ishga tushiring;- yana
SELECTqiling — qatorlar qaytib keldimi?
DELETE va WHERE munosabati UPDATE dagiga o’xshaydimi?
Qisqacha xulosa
DELETE FROM jadval WHERE shart— shartga mos qatorlarni o’chiradi.WHEREsizDELETEbutun jadvalni bo’shatadi — juda ehtiyot bo’ling.- Xavfsiz yo’l: avval o’sha shartni
SELECTbilan tekshiring. DELETEqatorni o’chiradi,UPDATEo’zgartiradi,DROP TABLEbutun jadvalni yo’q qiladi.- Muhim ma’lumot bilan ishlaganda zaxira nusxa oling.
Keyingi darsda NULL va DISTINCT — “qiymat yo’q”
holatini va takror qiymatlarni olib tashlashni ko’ramiz.