SQL सर्वर में TRUNCATE, DELETE और DROP कमांड के बीच अंतर
TRUNCATE, DELETE और DROP के बीच का अंतर सबसे आम साक्षात्कार प्रश्नों में से एक है। TRUNCATE, DELETE, और DROP SQL क्वेरी अक्सर SQL सर्वर में उपयोग की जाती हैं यहाँ उनके बीच कुछ सामान्य अंतर हैं।
काट-छांट
TRUNCATE SQL क्वेरी व्यक्तिगत पंक्ति विलोपन को लॉग किए बिना, तालिका से सभी पंक्तियों को हटा देती है। TRUNCATE DELETE क्वेरी से तेज है।
निम्न उदाहरण ग्राहक तालिका से सभी डेटा को हटा देता है।
TRUNCATE TABLE Customers;
- TRUNCATE एक DDL कमांड है
- TRUNCATE को टेबल लॉक का उपयोग करके निष्पादित किया जाता है और सभी रिकॉर्ड को हटाने के लिए पूरी तालिका को लॉक कर दिया जाता है।
- हम TRUNCATE के साथ WHERE क्लॉज का उपयोग नहीं कर सकते।
- TRUNCATE तालिका से सभी पंक्तियों को हटा देता है।
- लेन-देन लॉग में न्यूनतम लॉगिंग, इसलिए यह तेजी से प्रदर्शन-वार है।
- TRUNCATE TABLE टेबल डेटा को स्टोर करने के लिए उपयोग किए गए डेटा पेजों को हटाकर डेटा को हटा देता है और लेनदेन लॉग में केवल पेज डीललोकेशन रिकॉर्ड करता है।
- यदि तालिका में एक पहचान स्तंभ है, तो पहचानें कि स्तंभ को उसके बीज मान पर रीसेट कर दिया गया है।
- किसी टेबल पर Truncate का उपयोग करने के लिए आपको टेबल पर कम से कम ALTER अनुमति की आवश्यकता होती है।
- Truncate डिलीट स्टेटमेंट की तुलना में कम ट्रांजेक्शन स्पेस का उपयोग करता है।
- अनुक्रमित दृश्यों के साथ Truncate का उपयोग नहीं किया जा सकता है।
- TRUNCATE DELETE से तेज है।
हटाएँ
SQL DELETE क्वेरी डेटाबेस तालिका से सभी रिकॉर्ड हटा देती है। DELETE क्वेरी को निष्पादित करने के लिए, लक्ष्य तालिका पर हटाने की अनुमति की आवश्यकता होती है। यदि आपको DELETE में WHERE क्लॉज का उपयोग करने की आवश्यकता है, तो चुनिंदा अनुमतियों की भी आवश्यकता होती है।
निम्न क्वेरी ग्राहक तालिका से सभी पंक्तियों को हटा देती है।
DELETE FROM Customers; GO
निम्न SQL क्वेरी ग्राहक तालिका से सभी पंक्तियों को हटा देती है जहाँ ऑर्डर आईडी 1000 से अधिक है।
DELETE FROM Customers WHERE OrderId > 1000; GO
- DELETE एक DML कमांड है।
- DELETE को एक पंक्ति लॉक का उपयोग करके निष्पादित किया जाता है, तालिका में प्रत्येक पंक्ति को हटाने के लिए लॉक किया जाता है।
- हम विशिष्ट रिकॉर्ड को फ़िल्टर और हटाने के लिए DELETE के साथ जहां क्लॉज का उपयोग कर सकते हैं।
- DELETE कमांड का उपयोग WHERE कंडीशन के आधार पर टेबल से पंक्तियों को हटाने के लिए किया जाता है।
- यह लॉग को बनाए रखता है, इसलिए यह TRUNCATE से धीमा है।
- DELETE कथन एक बार में पंक्तियों को हटाता है और प्रत्येक हटाई गई पंक्ति के लिए लेनदेन लॉग में एक प्रविष्टि दर्ज करता है।
- कॉलम की पहचान DELETE की पहचान बरकरार रखती है।
- डिलीट का उपयोग करने के लिए आपको टेबल पर DELETE अनुमति की आवश्यकता होती है।
- हटाएं ट्रंकेट स्टेटमेंट की तुलना में अधिक लेनदेन स्थान का उपयोग करता है।
- हटाए गए दृश्यों का उपयोग अनुक्रमित दृश्यों के साथ किया जा सकता है।
बूंद
DROP तालिका क्वेरी एक या अधिक तालिका परिभाषाओं और उन तालिकाओं के लिए सभी डेटा, अनुक्रमणिका, ट्रिगर, बाधाओं और अनुमति विनिर्देशों को हटा देती है। DROP कमांड को उस स्कीमा पर अनुमति की आवश्यकता होती है जिससे तालिका संबंधित है, तालिका पर नियंत्रण अनुमति, या db_ddladmin निश्चित डेटाबेस भूमिका में सदस्यता।
निम्न SQL क्वेरी वर्तमान डेटाबेस से ग्राहक तालिका और उसके डेटा और अनुक्रमणिका को छोड़ देती है।
DROP TABLE Customers ;
- DROP कमांड डेटाबेस से एक टेबल को हटाता है।
- सभी तालिकाओं की पंक्तियों, अनुक्रमणिकाओं और विशेषाधिकारों को भी हटा दिया जाएगा।
- कोई DML ट्रिगर नहीं चलाया जाएगा।
- ऑपरेशन को वापस रोल नहीं किया जा सकता है।
- DROP और TRUNCATE DDL कमांड हैं, जबकि DELETE एक DML कमांड है।
- DELETE संचालन को वापस (पूर्ववत) किया जा सकता है, जबकि DROP और TRUNCATE संचालन को वापस नहीं किया जा सकता है
सारांश
इस पोस्ट में, हमने TRUNCATE, DELETE और DROP SQL कमांड के बीच अंतर देखा। हमने इन आदेशों की प्रमुख विशेषताओं को देखा।
पढ़ने के लिए धन्यवाद!
#एसक्यूएल #एसक्यूएल सेवर #डेटाबेस #वेबदेव
यह सभी देखें:
- कीव: मल्टीपल बैकएंड्स के लिए सपोर्ट के साथ सिंपल की-वैल्यू स्टोरेज
- यूएसबी पोर्ट काम नहीं कर रहे? इसे ठीक करने का तरीका यहां बताया गया है
- सुपरफार्म (सुपर) क्या है | सुपरफार्म टोकन क्या है | सुपर टोकन क्या है
- उदाहरण के साथ TensorFlow चर और प्लेसहोल्डर ट्यूटोरियल
- डेबियन 10 . पर npm के साथ Node.js कैसे स्थापित करें