DELETE — jadvaldan ma’lumotni o’chiradigan buyruq. Foydalanuvchi hisobini o’chirganda, eskirgan yozuvni tozalaganda yoki bekor qilingan buyurtmani olib tashlaganda — bularning bari DELETE orqali amalga oshiriladi. UPDATE kabi, u ham WHERE bilan juda ehtiyot ishlatilishi kerak.
DELETE — jadvaldan qatorlarni (yozuvlarni) o’chiradigan SQL buyrug’i. U
WHEREbilan qaysi qatorlarni o’chirishni belgilaydi.
Boshlang’ich jadval
Quyidagi foydalanuvchilar jadvali bilan ishlaymiz:
| id | ism | yosh | shahar |
|---|---|---|---|
| 1 | Farrux | 26 | Toshkent |
| 2 | Master Sherkulov | 30 | Toshkent |
| 3 | Aziz | 22 | Samarqand |
Bitta qatorni o’chirish
DELETE da WHERE qaysi qatorni o’chirishni belgilaydi:
DELETE FROM foydalanuvchilar
WHERE id = 3;
Natijada Aziz o’chirildi:
| id | ism | yosh | shahar |
|---|---|---|---|
| 1 | Farrux | 26 | Toshkent |
| 2 | Master Sherkulov | 30 | Toshkent |
WHERE id = 3 — faqat uchinchi qatorni belgiladi va u o’chirildi. Boshqa qatorlar saqlanib qoldi.
Shart bo’yicha o’chirish
WHERE bilan ma’lum shartga mos barcha qatorlarni o’chirish mumkin. Masalan, yoshi 25 dan kichiklar:
DELETE FROM foydalanuvchilar
WHERE yosh < 25;
Bu shartga mos barcha qatorlar o’chiriladi — natijada faqat yoshi 25 dan katta foydalanuvchilar qoladi.
WHERE ning HAYOTIY ahamiyati
Bu — eng muhim ogohlantirish. WHERE ni unutsangiz, DELETE butun jadvaldagi barcha ma’lumotni o’chiradi:
DELETE FROM foydalanuvchilar;
Natija — halokatli: jadval to’liq bo’shab qoladi:
| id | ism | yosh | shahar |
|---|---|---|---|
WHERE yo’qligi uchun barcha foydalanuvchilar o’chib ketdi. Shuning uchun DELETE yozganda WHERE ni doim tekshiring. Amaliy maslahat: o’chirishdan oldin bir xil shart bilan SELECT bajarib, aynan qaysi qatorlar o’chishini tekshiring.
DELETE va TRUNCATE farqi
Butun jadvalni tozalashning ikki usuli bor. Ularni jadvalda solishtiramiz:
| Buyruq | Vazifasi | Tezlik |
|---|---|---|
DELETE FROM jadval |
barcha qatorlarni o’chiradi | sekinroq |
TRUNCATE TABLE jadval |
jadvalni tez tozalaydi | tezroq |
TRUNCATE butun jadvalni tez tozalaydi, ammo WHERE bilan ishlamaydi va qaytarib bo’lmaydi. Ma’lum qatorlar uchun DELETE, butun jadvalni tozalash uchun TRUNCATE ishlatiladi.
Xulosa
Bu bo’limda DELETE bilan bitta va shartli qatorlarni o’chirishni, WHERE ni unutish xavfini va TRUNCATE bilan farqini ko’rib chiqdik. Eng muhim eslatma: DELETE da WHERE ni doim tekshiring. Keyingi darsda AND, OR, NOT operatorlariga o’tamiz.