MySQL DELETE क्वेरी: टेबल से पंक्ति कैसे हटाएँ
⚡ स्मार्ट सारांश
MySQL DELETE क्वेरी टेबल से उन पंक्तियों को हटा देती है जिनकी अब आवश्यकता नहीं है और प्रभावित पंक्तियों की संख्या लौटाती है। यह संसाधन DELETE सिंटैक्स, WHERE फ़िल्टरिंग, IN फ़ंक्शन के साथ कई पंक्तियों को हटाने और TRUNCATE और DROP जैसे सुरक्षित विकल्पों की व्याख्या करता है।

डिलीट क्वेरी क्या है?
RSI MySQL हटाएँ DELETE स्टेटमेंट का उपयोग डेटाबेस टेबल से उन पंक्तियों को हटाने के लिए किया जाता है जिनकी अब आवश्यकता नहीं है। यह टेबल से पूरी पंक्ति को हटा देता है और हटाई गई पंक्तियों की संख्या लौटाता है। जब आपको अपने डेटाबेस से अस्थायी या अप्रचलित डेटा को साफ़ करने की आवश्यकता होती है, तो DELETE स्टेटमेंट बहुत उपयोगी होता है।
DELETE क्वेरी में MySQL यह एक ही बार में किसी टेबल से एक से अधिक पंक्तियाँ हटा सकता है। डेटाबेस टेबल से बड़ी संख्या में पंक्तियाँ हटाते समय यह बहुत उपयोगी साबित होता है।
एक बार डेटा डिलीट हो जाने के बाद उसे वापस नहीं लाया जा सकता। डेटा डिलीट करने से पहले हमेशा डेटाबेस का बैकअप बना लें, ताकि ज़रूरत पड़ने पर डेटाबेस को रीस्टोर करके बाद में उसकी समीक्षा की जा सके।
किसी पंक्ति को कैसे हटाएं MySQL
कथन का उद्देश्य स्पष्ट हो जाने के बाद, अगला चरण वाक्य संरचना है। किसी पंक्ति को हटाने के लिए MySQL, DELETE FROM कथन का उपयोग किया जाता है:
DELETE FROM `table_name` [WHERE condition];
यहाँ:
- `table_name` से हटाएं कहता है MySQL सर्वर को निर्दिष्ट तालिका से पंक्तियों को हटाने के लिए कहा गया है।
- [जहां हालत] यह वैकल्पिक है और इसका उपयोग एक फ़िल्टर लागू करने के लिए किया जाता है जो DELETE क्वेरी से प्रभावित पंक्तियों की संख्या को सीमित करता है।
अगर कहां कारण में उपयोग नहीं किया जाता है MySQL DELETE क्वेरी, फिर सब दी गई तालिका की पंक्तियों को हटा दिया जाएगा।
⚠️ चेतावनी: पहले फ़िल्टर को SELECT क्वेरी के रूप में चलाएँ। यदि यह ठीक वही पंक्तियाँ लौटाता है जिन्हें आप हटाना चाहते हैं, तो मिलान करने वाली DELETE क्वेरी सुरक्षित है। पूर्ण सिंटैक्स दस्तावेज़ में दिया गया है। MySQL DELETE स्टेटमेंट मैनुअल.
इसका उदाहरण MySQL क्वेरी हटाएँ
अगले भाग में एक छोटा डेटा सेट बनाया जाता है और फिर उसमें से डेटा हटा दिया जाता है।
चरण 1: नमूना डेटा डालें
इससे पहले कि हम SQL DELETE स्टेटमेंट के बारे में अधिक विस्तार से चर्चा करें, आइए काम करने के लिए मूवीज़ टेबल में कुछ नमूना डेटा डालें।
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Charlie Chaplin', 1940, 7); INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8); INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);
उपरोक्त स्क्रिप्ट को चलाने से मूवी टेबल में तीन (3) फिल्में जुड़ जाती हैं। आगे बढ़ने से पहले, आइए हमारी टेबल में मौजूद सभी फिल्मों की सूची बना लें।
SELECT * FROM `movies`;
उपरोक्त स्क्रिप्ट को चलाने पर हमें निम्नलिखित परिणाम प्राप्त होते हैं। नई डाली गई तीनों पंक्तियाँ हाइलाइट हो जाती हैं।
| मूवी_आईडी | शीर्षक | निदेशक | वर्ष_रिलीज़ | श्रेणी_आईडी |
|---|---|---|---|---|
| 1 | कैरिबियन के समुद्री डाकू 4 | रॉब मार्शल | 2011 | 1 |
| 2 | सारा मार्शल को भूलना | निकोलस Stoller | 2008 | 2 |
| 3 | एक्स पुरुष | नल | 2008 | नल |
| 4 | Code नाम ब्लैक | एडगर जिम्ज़ | 2010 | नल |
| 5 | डैडीज लिटिल गर्ल्स | नल | 2007 | 8 |
| 6 | स्वर्गदूत और राक्षस | नल | 2007 | 6 |
| 7 | दा विंची Code | नल | 2007 | 6 |
| 9 | Honey moonनेताओं | जॉन शुल्त्ज़ | 2005 | 8 |
| 16 | 67% दोषी | नल | 2012 | नल |
| 18 | द ग्रेट डिक्टेटर | चार्ली चैपलिन | 1940 | 7 |
| 19 | नमूना फिल्म | गुमनाम | नल | 8 |
| 20 | फिल्म ४ | जॉन ब्राउन | 1920 | 8 |
चरण 2: एक पंक्ति हटाएं
मान लीजिए कि Myflix वीडियो लाइब्रेरी अब "द ग्रेट डिक्टेटर" फिल्म किराए पर नहीं देना चाहती और इसे डेटाबेस से हटाना चाहती है। फिल्म आईडी 18 है, इसलिए नीचे दिया गया स्क्रिप्ट उस पंक्ति को हटा देता है।
DELETE FROM `movies` WHERE `movie_id` = 18;
उपरोक्त स्क्रिप्ट को निष्पादित करना MySQL कार्यक्षेत्र Myflix डेटाबेस के विरुद्ध की गई कार्रवाई से आईडी 18 वाली फिल्म को टेबल से हटा दिया जाता है।
चलिए अब फिल्मों की तालिका की वर्तमान स्थिति की जांच करते हैं।
SELECT * FROM `movies`;
| मूवी_आईडी | शीर्षक | निदेशक | वर्ष_रिलीज़ | श्रेणी_आईडी |
|---|---|---|---|---|
| 1 | कैरिबियन के समुद्री डाकू 4 | रॉब मार्शल | 2011 | 1 |
| 2 | सारा मार्शल को भूलना | निकोलस Stoller | 2008 | 2 |
| 3 | एक्स पुरुष | नल | 2008 | नल |
| 4 | Code नाम ब्लैक | एडगर जिम्ज़ | 2010 | नल |
| 5 | डैडीज लिटिल गर्ल्स | नल | 2007 | 8 |
| 6 | स्वर्गदूत और राक्षस | नल | 2007 | 6 |
| 7 | दा विंची Code | नल | 2007 | 6 |
| 9 | Honey moonनेताओं | जॉन शुल्त्ज़ | 2005 | 8 |
| 16 | 67% दोषी | नल | 2012 | नल |
| 19 | नमूना फिल्म | गुमनाम | नल | 8 |
| 20 | फिल्म ४ | जॉन ब्राउन | 1920 | 8 |
नोट:
- आईडी 18 वाली फिल्म अब क्वेरी परिणाम सेट में नहीं दिखाई देती है।
- आप DELETE कमांड का उपयोग करके किसी टेबल से एक कॉलम नहीं हटा सकते। यह स्टेटमेंट पूरी पंक्ति को हटाता है। किसी एक फ़ील्ड को साफ़ करने के लिए, किसी अन्य तरीके का उपयोग करें। अपडेट क्वेरी जो कॉलम को NULL पर सेट करता है।
चरण 3: IN का उपयोग करके एकाधिक पंक्तियों को हटाएं
मान लीजिए हमारे पास उन फिल्मों की सूची है जिन्हें हम हटाना चाहते हैं। प्रत्येक पंक्ति के लिए अलग-अलग स्टेटमेंट चलाने के बजाय, हम WHERE क्लॉज़ को IN ऑपरेटर के साथ जोड़ सकते हैं।
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
उपरोक्त स्क्रिप्ट को चलाने से हमारी मूवी टेबल से आईडी 20 और 21 वाली फिल्में एक ही बार में डिलीट हो जाती हैं।
DELETE बनाम TRUNCATE बनाम DROP MySQL
डेटा हटाने का एकमात्र तरीका DELETE ही नहीं है। MySQLशुरुआती लोग अक्सर इसका इस्तेमाल तब करते हैं जब कोई तेज़ कमांड ज़्यादा उपयुक्त होता है, इसलिए नीचे दी गई तालिका में तीनों रिमूवल कमांड की तुलना की गई है।
| Feature | हटाएँ | TRUNCATE | ड्रॉप |
|---|---|---|---|
| कमांड प्रकार | DML | डीडीएल | डीडीएल |
| कहां कारण | समर्थित | समर्थित नहीं | समर्थित नहीं |
| क्या हटाया जाता है | चयनित पंक्तियाँ | सभी पंक्तियाँ | पंक्तियों और तालिका संरचना |
| रोलबैक | किसी लेनदेन के दौरान संभव | संभव नहीं (अप्रत्यक्ष प्रतिबद्धता) | संभव नहीं (अप्रत्यक्ष प्रतिबद्धता) |
| स्वयं वेतन वृद्धि | काउंटर बरकरार है | काउंटर प्रारंभिक मान पर रीसेट हो जाता है | काउंटर को टेबल के साथ हटा दिया जाता है |
| बड़ी मेजों पर गति | धीरे-धीरे (पंक्ति दर पंक्ति) | बहुत तेज़ | बहुत तेज़ |
फ़िल्टर की आवश्यकता होने पर या रोलबैक करने की क्षमता होने पर DELETE का उपयोग करें। ट्रिब्यूट टेबल जब आप किसी टेबल को जल्दी से खाली करना चाहते हैं और उसके ऑटो-इंक्रीमेंट काउंटर को रीसेट करना चाहते हैं, तो DROP कमांड का उपयोग करें। DROP कमांड का उपयोग केवल तभी करें जब टेबल की आवश्यकता न हो, क्योंकि यह डेटा के साथ-साथ उसकी परिभाषा को भी हटा देता है।
