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:

SQL · namuna baza

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:

  1. soni = 0 bo’lgan mahsulotni o’chiring;
  2. SELECT bilan tekshiring;
  3. narxi 20000 dan qimmat mahsulotlarni o’chiring — nechta o’chdi?
  4. DELETE FROM mahsulotlar; yozib ishga tushiring;
  5. yana SELECT qiling — qatorlar qaytib keldimi?
  6. Avval INSERT bilan yangi mahsulot qo’shing, so’ng uni id bo’yicha DELETE qiling — faqat o’sha bitta qator o’chdimi?

DELETE va WHERE munosabati UPDATE dagiga o’xshaydimi?

Qisqacha xulosa

  • DELETE FROM jadval WHERE shart — shartga mos qatorlarni o’chiradi.
  • WHERE siz DELETE butun jadvalni bo’shatadi — juda ehtiyot bo’ling.
  • Xavfsiz yo’l: avval o’sha shartni SELECT bilan tekshiring.
  • DELETE qatorni o’chiradi, UPDATE o’zgartiradi, DROP TABLE butun 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.

Bu dars foydali bo'ldimi?

—
— marta ko'rildi