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.

DELETEbutun 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?

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