यहां SQL और T-SQL (Transact-SQL) के बीच अंतर का एक त्वरित अवलोकन दिया गया है। इतना नहीं मतभेद जैसे, लेकिन टी-एसक्यूएल की व्याख्या और यह एसक्यूएल के संबंध में कहां बैठता है।
यदि आपने कोई डेटाबेस विकास या व्यवस्थापन किया है, तो आप शायद SQL से परिचित हैं। SQL, जो संरचित क्वेरी भाषा के लिए खड़ा है, डेटाबेस के साथ काम करने के लिए एक मानक क्वेरी भाषा है। अधिकांश प्रमुख रिलेशनल डेटाबेस मैनेजमेंट सिस्टम जैसे कि MySQL, Oracle, SQL Server, PostgreSQL, आदि किसी न किसी तरह से SQL को सपोर्ट करते हैं।
हालाँकि, जबकि SQL मानक स्पष्ट विनिर्देश प्रदान करता है, यह डेटाबेस विक्रेताओं को अपने स्वयं के एक्सटेंशन जोड़ने की भी अनुमति देता है। यह विक्रेताओं को अपने ग्राहकों के लिए अतिरिक्त सुविधाएं और कार्यक्षमता प्रदान करने की अनुमति देता है जो उनके प्रतिस्पर्धियों द्वारा पेश नहीं की जा सकती हैं।
यहीं पर टी-एसक्यूएल आता है।
Transact-SQL क्या है?
ट्रांजैक्ट-एसक्यूएल, जिसे अक्सर टी-एसक्यूएल या यहां तक कि टीएसक्यूएल के लिए संक्षिप्त किया जाता है, एसक्यूएल के लिए माइक्रोसॉफ्ट और साइबेस का मालिकाना विस्तार है। ट्रांजैक्ट-एसक्यूएल एसक्यूएल मानक पर विस्तार करता है ताकि अतिरिक्त सुविधाओं को शामिल किया जा सके जो एसक्यूएल मानक में शामिल नहीं हैं।
हालाँकि Transact-SQL (और SQL सर्वर) को आमतौर पर Microsoft चीज़ के रूप में जाना जाता है, यह वास्तव में Microsoft और Sybase के बीच एक साझेदारी का परिणाम है जो 1987 में शुरू हुआ था। यह साझेदारी 1994 में भंग कर दी गई थी। इसके बाद, T-SQL जारी रहा दोनों कंपनियों द्वारा जारी डेटाबेस उत्पादों द्वारा समर्थित, हालांकि, प्रत्येक कंपनी ने अपने डेटाबेस उत्पादों को अपनी दिशा में विकसित किया। इसलिए, Sybase T-SQL और Microsoft T-SQL में कुछ अंतर हैं।
ट्रांजैक्ट-एसक्यूएल SQL सर्वर के लिए केंद्रीय है। SQL सर्वर में अधिकांश ऑपरेशन T-SQL का उपयोग करके किए जाते हैं। यह सच है भले ही आप GUI टूल (जैसे SSMS या DBeaver) का उपयोग करते हैं और आप वास्तव में कोई प्रोग्रामिंग नहीं करते हैं। जब भी आप SQL सर्वर के साथ इंटरैक्ट करने के लिए किसी एप्लिकेशन का उपयोग करते हैं, तो एप्लिकेशन निर्दिष्ट कार्य को पूरा करने के लिए पर्दे के पीछे T-SQL का उपयोग करता है।
लेकिन SQL सर्वर केवल डेटाबेस प्रबंधन प्रणाली नहीं है जो Transact-SQL का समर्थन करता है। Microsoft Azure SQL डेटाबेस भी T-SQL को सपोर्ट करता है। अनुप्रयोगों द्वारा उपयोग की जाने वाली अधिकांश T-SQL सुविधाएँ Microsoft SQL Server और Azure SQL डेटाबेस (हालाँकि कुछ अपवाद हैं) दोनों में पूरी तरह से समर्थित हैं।
टी-एसक्यूएल सुविधाएं
टी-एसक्यूएल की कुछ विशेषताओं में शामिल हैं:
- प्रक्रियात्मक प्रोग्रामिंग
- स्थानीय चर
- स्ट्रिंग प्रसंस्करण, दिनांक प्रसंस्करण, गणित, आदि के लिए विभिन्न समर्थन कार्य
DELETE
में परिवर्तन औरUPDATE
बयान। विशेष रूप से, वे एक FROM क्लॉज को जोड़ने की अनुमति देते हैं, जो जॉइन को शामिल करने की अनुमति देता है।- टी-एसक्यूएल में एक
BULK INSERT
है विवरण जो आपको डेटाबेस तालिका में डेटा फ़ाइल आयात करने या उपयोगकर्ता द्वारा निर्दिष्ट प्रारूप में देखने की अनुमति देता है।
उपरोक्त एक्सटेंशन के मुख्य लाभों में से एक यह है कि टी-एसक्यूएल बनाम एसक्यूएल का उपयोग करते समय आपके पास अधिक प्रोग्राम योग्यता होती है। उदाहरण के लिए संग्रहीत कार्यविधियाँ आपको प्रोग्रामिंग तर्क को अपने डेटाबेस में शामिल करने की अनुमति देती हैं। आप किसी संग्रहीत कार्यविधि में एक या अधिक पैरामीटर पास कर सकते हैं, और संग्रहीत कार्यविधि एक आउटपुट लौटाएगी जो पैरामीटर के मानों के आधार पर भिन्न होता है।
GO कमांड के बारे में
जिस किसी ने भी टी-एसक्यूएल का इस्तेमाल किया है, वह शायद GO
. से परिचित होगा आज्ञा। यह कीवर्ड अक्सर बयानों के एक बैच के अंत में रखा जाता है।
हालांकि, GO
कमांड वास्तव में ट्रांजैक्ट-एसक्यूएल का हिस्सा नहीं है। वास्तव में, GO
कमांड ट्रांजैक्ट-एसक्यूएल स्टेटमेंट के समान लाइन पर भी कब्जा नहीं कर सकता है।
GO
sqlcmd . द्वारा पहचाने जाने वाले आदेशों में से एक है और ओस्क्ल उपयोगिताओं, साथ ही साथ SQL सर्वर प्रबंधन स्टूडियो कोड संपादक बैच और स्क्रिप्ट की पठनीयता और निष्पादन की सुविधा के लिए। GO
कमांड SQL सर्वर उपयोगिताओं के लिए Transact-SQL कथनों के एक बैच के अंत का संकेत देता है।
SQL सर्वर उपयोगिताओं GO
की व्याख्या करती हैं एक संकेत के रूप में कि उन्हें ट्रांजैक्ट-एसक्यूएल स्टेटमेंट के वर्तमान बैच को SQL सर्वर की आवृत्ति पर भेजना चाहिए। बयानों का वर्तमान बैच पिछले GO
. के बाद से दर्ज किए गए सभी कथनों से बना है , या तदर्थ सत्र या स्क्रिप्ट की शुरुआत के बाद से यदि यह पहला GO
है ।
अन्य मालिकाना SQL एक्सटेंशन
ट्रांजैक्ट-एसक्यूएल केवल एसक्यूएल मानक का विस्तार नहीं है। विभिन्न डेटाबेस सिस्टम के अपने एक्सटेंशन होते हैं। उदाहरण के लिए, Oracle PL/SQL नामक एक स्वामित्व वाली प्रक्रियात्मक भाषा का उपयोग करता है, और PostgreSQL PL/pgSQL नामक एक प्रक्रियात्मक भाषा का उपयोग करता है।
हालांकि मालिकाना SQL एक्सटेंशन के अपने फायदे हैं (जैसे विस्तारित कार्यक्षमता), लेकिन उनके नुकसान भी हैं। एक बड़ा नुकसान यह है कि यदि आपको कभी भी एक सिस्टम से दूसरे सिस्टम में डेटाबेस पोर्ट करने की आवश्यकता होती है तो वे चीजों को मुश्किल बना सकते हैं। उदाहरण के लिए, यदि आपका संगठन अचानक निर्णय लेता है कि वह SQL सर्वर के बजाय Oracle का उपयोग करने जा रहा है, तो आपको सभी SQL सर्वर कोड के माध्यम से जाने और Oracle के लिए इसे फिर से लिखने की आवश्यकता हो सकती है। इसके लिए आपको दोनों प्रणालियों के सिंटैक्स के साथ तेजी से आने की भी आवश्यकता है।