MySQL में WHERE क्लॉज का उपयोग करके विशिष्ट रिकॉर्ड हटाना (DELETE)
किसी विशिष्ट शर्त (जैसे EmployeeId) के आधार पर रिकॉर्ड हटाने के लिए DELETE FROM स्टेटमेंट के साथ WHERE क्लॉज का उपयोग करें।
उदाहरण के साथ पूर्ण कार्यान्वयन
टेबल बनाना
mysql> CREATE TABLE DemoTable615 (
EmployeeId VARCHAR(100),
EmployeeName VARCHAR(100)
);
रिकॉर्ड डालना
mysql> INSERT INTO DemoTable615 VALUES
('EMP-101', 'Adam'),
('EMP-1001', 'David'),
('EMP-1002', 'Chris'),
('EMP-1003', 'Robert');
सभी रिकॉर्ड देखना (पहले)
mysql> SELECT * FROM DemoTable615;
आउटपुट:
+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| EMP-101 | Adam |
| EMP-1001 | David |
| EMP-1002 | Chris |
| EMP-1003 | Robert |
+------------+--------------+
4 rows in set (0.00 sec)
विशिष्ट रिकॉर्ड हटाना
mysql> DELETE FROM DemoTable615 WHERE EmployeeId = 'EMP-1002';
परिणाम: Query OK, 1 row affected (0.13 sec)
रिकॉर्ड देखना (बाद में)
mysql> SELECT * FROM DemoTable615;
आउटपुट:
+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| EMP-101 | Adam |
| EMP-1001 | David |
| EMP-1003 | Robert |
+------------+--------------+
3 rows in set (0.00 sec)
महत्वपूर्ण सुरक्षा बिंदु:
- हमेशा WHERE क्लॉज उपयोग करें - बिना WHERE के
DELETE FROM tableसभी पंक्तियाँ हटा देगा! - पहले SELECT से जांचें:
SELECT * FROM DemoTable615 WHERE EmployeeId = 'EMP-1002'; - ट्रांजैक्शन उपयोग करें महत्वपूर्ण डेटा के लिए:
START TRANSACTION; DELETE FROM DemoTable615 WHERE EmployeeId = 'EMP-1002'; -- जांचें COMMIT; -- या ROLLBACK;
एकाधिक रिकॉर्ड हटाना
-- IN के साथ
DELETE FROM DemoTable615 WHERE EmployeeId IN ('EMP-101', 'EMP-1003');
-- पैटर्न के साथ
DELETE FROM DemoTable615 WHERE EmployeeId LIKE 'EMP-100%';
-- सबक्वेरी के साथ
DELETE FROM DemoTable615
WHERE EmployeeId IN (SELECT EmployeeId FROM terminated_employees);
DELETE vs TRUNCATE
| पहलू | DELETE | TRUNCATE |
|---|---|---|
| WHERE क्लॉज | समर्थित | नहीं |
| ट्रिगर | फायर होते हैं | नहीं |
| ऑटो-इन्क्रीमेंट | रीसेट नहीं | रीसेट होता है |
| रोलबैक | संभव | नहीं (DDL) |
| गति | धीमी (पंक्ति-दर-पंक्ति) | तेज़ (पेज डीएलोकेशन) |
LIMIT के साथ DELETE (MySQL विशिष्ट)
DELETE FROM DemoTable615 WHERE EmployeeName = 'Temp' LIMIT 5;
अधिकतम 5 पंक्तियाँ हटाता है। उपयोगी जब बड़ी संख्या में पंक्तियाँ हटानी हों बैच में।