5.1 DELETE FROM operatori
SQLda ma'lumotlarni o'chirish juda oson. Hammasini juda tez o'chirib tashlashing mumkin, va hech kimdan hech qanday tasdiq so'ralmaydi.
Eng oddiy stsenariydan boshlaymiz: jadvaldagi bitta qatorni qanday o'chirish mumkin.
Bu stsenariyni sen ko'pincha uchratasan, odatda bu qandaydir aniq bir yozuvni o'chirish, va standart so'rov odatda quyidagicha bo'ladi:
DELETE FROM jadval
WHERE id = 133;
Bu yagona so'rov, bunda ustunlar nomlarini ko'rsatish shart emas: axir ma'lumotlar qatorlar bilan darhol o'chiriladi.
Ikkinchi stsenariy – bu id ro'yxati kiritilgan qatorlarni o'chirish, bunda hamma narsa juda oddiy:
DELETE FROM jadval
WHERE id IN (1, 2, 3, …);
Uchinchi stsenariy – bu ma'lum bir shartga mos keladigan qatorlarni o'chirish:
DELETE FROM jadval
WHERE shart;
Aytaylik, biz barcha dasturchilarimizni ishdan bo'shatmoqchimiz, unda quyidagi so'rovni yozish kerak:
DELETE FROM employee
WHERE occupation = 'Dasturchi';
Va nihoyat, agar sen barcha yozuvlarni o'chirib tashlamoqchi bo'lsang, bunday so'rov yozishing mumkin:
DELETE FROM jadval
Barcha yozuvlarni jadvaldan o'chirish uchun bunday oddiy so'rov yetarli. Aytmoqchi, bunda hech qanday Ctrl+Z bo'lmaydi. Yozuvlar qaytarib tiklash imkoniyatisiz o'chiriladi va bas. Shuning uchun backuplar qil, va tez-tez.
5.2 Hammasini umuman o'chiramiz
Tezda o'chirish uchun (foydalanuvchilarga bosh og'rig'i qo'shish uchun) SQLda yana bir nechta buyruqlar mavjud.
Jadvaldagi barcha ma'lumotlarni qanday tezda o'chirish mumkin? Operator TRUNCATEdan foydalangan holda:
TRUNCATE TABLE jadval
Jadval nomidagi bitta xato – va bir necha kun davomida ma'lumotlarni tiklashga kafolat beriladi. Sen ma'lumot bazalari admini emasligingdan xursand bo'l.
Agar jadvaldagi nafaqat ma'lumotlarni, balki o'zini ham o'chirish kerak bo'lsa, buni amalga oshirish uchun operator DROP mavjud:
DROP TABLE jadval
Shuningdek, ma'lumot bazalari sxemalari bilan ham shunday variantlar mavjud. Agar sen o'zi bazani o'chirmoqchi bo'lsang:
DROP SCHEMA baza_danlar
yoki:
DROP DATABASE baza_danlar
Bundan tashqari, DROP yordamida quyidagilarni o'chirish mumkin:
- EVENT
- FUNCTION
- PROCEDURE
- INDEX
- VIEW
- TRIGGER
Ma'lumotlarni o'chirish bilan bog'liq bo'lgan bir nechta qiziqarli voqealar:
sudo rm -rf, yoki GitLab.com ma'lumot bazasi hodisasining xronikasi 2017/01/31
GO TO FULL VERSION