एसक्यूएल क्या है?

एलन जी टेलर द्वारा

SQL के बारे में समझने वाली पहली बात यह है कि SQL एक नहीं है प्रक्रियात्मक भाषा, हैं कि अजगर , सी, सी++, सी#, और जावा . एक प्रक्रियात्मक भाषा में किसी समस्या को हल करने के लिए, आप लिखते हैं a write प्रक्रिया - आदेशों का एक क्रम जो कार्य पूरा होने तक एक के बाद एक विशिष्ट ऑपरेशन करता है। प्रक्रिया एक सीधा रैखिक अनुक्रम हो सकती है या स्वयं पर वापस लूप हो सकती है, लेकिन किसी भी मामले में, प्रोग्रामर निष्पादन के क्रम को निर्दिष्ट करता है।



एसक्यूएल

SQL का उपयोग करके समस्याओं को हल करना।



दूसरी ओर, SQL is गैर-प्रक्रियात्मक। SQL का उपयोग करके किसी समस्या को हल करने के लिए, बस SQL ​​को बताएं क्या भ आप सिस्टम को बताने के बजाय चाहते हैं (जैसे कि आप अलादीन के जिन्न से बात कर रहे थे) कैसे प्राप्त करें तुम क्या चाहते हो। डेटाबेस प्रबंधन प्रणाली (डीबीएमएस) आपके अनुरोध को प्राप्त करने का सबसे अच्छा तरीका तय करती है।

ठीक है। आपको अभी बताया गया था कि SQL एक प्रक्रियात्मक भाषा नहीं है - और यह अनिवार्य रूप से सच है। हालाँकि, वहाँ लाखों प्रोग्रामर (और आप शायद उनमें से एक हैं) प्रक्रियात्मक तरीके से समस्याओं को हल करने के आदी हैं। इसलिए, हाल के वर्षों में, SQL में कुछ प्रक्रियात्मक कार्यक्षमता जोड़ने का बहुत दबाव रहा है - और SQL में अब एक प्रक्रियात्मक भाषा की विशेषताएं शामिल हैं: |_+_| ब्लॉक, |_+_| बयानों, कार्यों, और (हाँ) प्रक्रियाओं। इन सुविधाओं को जोड़कर, आप सर्वर पर प्रोग्राम स्टोर कर सकते हैं, जहां कई क्लाइंट बार-बार आपके प्रोग्राम का उपयोग कर सकते हैं।



यह समझाने के लिए कि सिस्टम को आप क्या चाहते हैं, यह बताने का क्या मतलब है, मान लीजिए कि आपके पास एक कर्मचारी तालिका है जिससे आप उन पंक्तियों को पुनः प्राप्त करना चाहते हैं जो आपके सभी वरिष्ठ लोगों के अनुरूप हैं। आप एक वरिष्ठ व्यक्ति को 40 वर्ष से अधिक उम्र के किसी भी व्यक्ति या प्रति वर्ष $ 100,000 से अधिक कमाने वाले व्यक्ति के रूप में परिभाषित करना चाहते हैं। आप निम्न क्वेरी का उपयोग करके वांछित पुनर्प्राप्ति कर सकते हैं:

BEGIN

यह कथन कर्मचारी तालिका से सभी पंक्तियों को पुनः प्राप्त करता है जहाँ या तो मूल्य |_+_| कॉलम 40 से बड़ा है या |_+_| . में मान है स्तंभ 100,000 से अधिक है। SQL में, आपको यह निर्दिष्ट करने की आवश्यकता नहीं है कि जानकारी कैसे प्राप्त की जाती है। डेटाबेस इंजन डेटाबेस की जांच करता है और खुद तय करता है कि आपके अनुरोध को कैसे पूरा किया जाए। आपको केवल यह निर्दिष्ट करने की आवश्यकता है कि आप कौन सा डेटा पुनर्प्राप्त करना चाहते हैं।

सेवा मेरे एसक्यूएल क्वेरी एक सवाल है जिसे आप डेटाबेस से पूछते हैं। यदि डेटाबेस का कोई भी डेटा आपकी क्वेरी की शर्तों को पूरा करता है, तो SQL उस डेटा को पुनः प्राप्त करता है।



वर्तमान SQL कार्यान्वयन में कई बुनियादी प्रोग्रामिंग संरचनाओं का अभाव है जो अधिकांश अन्य भाषाओं के लिए मौलिक हैं। वास्तविक दुनिया के अनुप्रयोगों को आमतौर पर इनमें से कम से कम कुछ प्रोग्रामिंग संरचनाओं की आवश्यकता होती है, यही वजह है कि SQL वास्तव में एक डेटा है उपभाषा. यहां तक ​​​​कि 1999, 2003, 2005, 2008 और 2011 में जोड़े गए एक्सटेंशन के साथ, आपको अभी भी एक पूर्ण एप्लिकेशन बनाने के लिए एक प्रक्रियात्मक भाषा (जैसे C ++) के संयोजन में SQL का उपयोग करना होगा।

आप दो तरीकों में से एक में SQL का उपयोग करके डेटाबेस से जानकारी निकाल सकते हैं:

  • एक बनाओ तदर्थ क्वेरी अपने कीबोर्ड से केवल एक SQL कथन टाइप करके और स्क्रीन से परिणाम पढ़कर। जब आप किसी विशिष्ट प्रश्न का त्वरित उत्तर चाहते हैं तो कीबोर्ड से प्रश्न उपयुक्त होते हैं। तत्काल आवश्यकता को पूरा करने के लिए, आपको डेटाबेस से ऐसी जानकारी की आवश्यकता हो सकती है जिसकी आपको पहले कभी आवश्यकता नहीं थी। आपको उस जानकारी की फिर कभी आवश्यकता नहीं होने की संभावना है, लेकिन आपको अभी इसकी आवश्यकता है। कीबोर्ड से उपयुक्त SQL क्वेरी स्टेटमेंट दर्ज करें, और नियत समय में, परिणाम आपकी स्क्रीन पर दिखाई देता है।
  • एक प्रोग्राम निष्पादित करें जो डेटाबेस से जानकारी एकत्र करता है और फिर ऑनस्क्रीन या मुद्रित रिपोर्ट में जानकारी पर रिपोर्ट करता है। SQL क्वेरी को सीधे प्रोग्राम में शामिल करना एक जटिल क्वेरी को चलाने का एक अच्छा तरीका है जिसे आप भविष्य में फिर से चलाने की संभावना रखते हैं। इस तरह, आप जितनी बार चाहें उतनी बार उपयोग के लिए केवल एक बार एक क्वेरी तैयार कर सकते हैं।

ए (बहुत) थोड़ा एसक्यूएल इतिहास

SQL की उत्पत्ति IBM की अनुसंधान प्रयोगशालाओं में से एक में हुई, जैसा कि रिलेशनल डेटाबेस थ्योरी ने किया था। 1970 के दशक की शुरुआत में, जैसा कि आईबीएम के शोधकर्ताओं ने शुरुआती रिलेशनल डीबीएमएस (या आरडीबीएमएस) सिस्टम विकसित किए, उन्होंने इन सिस्टमों पर काम करने के लिए एक डेटा सबलैंग्वेज बनाया। उन्होंने इस उपभाषा के पूर्व-रिलीज़ संस्करण का नाम दिया अगली कड़ी ( रों संरचित है अंग्रेजी क्या भ रयू ली एंगुएज)। हालांकि, जब एक उत्पाद के रूप में अपनी क्वेरी भाषा को औपचारिक रूप से जारी करने का समय आया, तो उन्होंने पाया कि एक अन्य कंपनी ने उत्पाद नाम सीक्वल को पहले ही ट्रेडमार्क कर दिया था। इसलिए, आईबीएम में विपणन प्रतिभाओं ने जारी उत्पाद को एक ऐसा नाम देने का फैसला किया जो SEQUEL से अलग था लेकिन फिर भी एक ही परिवार के सदस्य के रूप में पहचाना जा सकता था। इसलिए उन्होंने इसे SQL नाम दिया, उच्चारित निबंध . हालांकि आधिकारिक उच्चारण ess-que-ell है, लोग इसे सीक्वल के शुरुआती पूर्व-रिलीज़ दिनों में उच्चारण करने के आदी हो गए थे और ऐसा करना जारी रखा। वह प्रथा आज तक कायम है; कुछ लोग सीक्वल कहेंगे और कुछ लोग एस-क्यू-एल कहेंगे, लेकिन वे दोनों एक ही बात कर रहे हैं।

SQL का सिंटैक्स संरचित अंग्रेजी का एक रूप है, जहां से इसका मूल नाम आया था। हालाँकि, SQL इस अर्थ में एक संरचित भाषा नहीं है कि कंप्यूटर वैज्ञानिक उस शब्द को समझते हैं। इस प्रकार, कई लोगों की धारणाओं के बावजूद, SQL संरचित क्वेरी भाषा के लिए एक संक्षिप्त शब्द नहीं है। यह तीन अक्षरों का एक क्रम है जो किसी भी चीज़ के लिए खड़ा नहीं होता है, जैसे सी भाषा का नाम किसी भी चीज़ के लिए खड़ा नहीं होता है।

1981 में IBM ने अपने SQL/DS रिलेशनल डेटाबेस (RDBMS) उत्पाद को पेश करने से पहले ही रिलेशनल डेटाबेस और SQL के साथ IBM के काम को उद्योग में अच्छी तरह से जाना था। उस समय तक, रिलेशनल सॉफ्टवेयर, इंक। (अब Oracle Corporation) ने अपना पहला RDBMS जारी कर दिया था। . ये शुरुआती उत्पाद डेटाबेस प्रबंधन प्रणालियों के एक नए वर्ग के लिए तुरंत मानक निर्धारित करते हैं। उन्होंने SQL को शामिल किया, जो डेटा उपभाषाओं के लिए वास्तविक मानक बन गया। अन्य रिलेशनल डेटाबेस मैनेजमेंट सिस्टम के विक्रेता SQL के अपने संस्करण लेकर आए। आम तौर पर, इन अन्य कार्यान्वयनों में आईबीएम उत्पादों की सभी मुख्य कार्यक्षमताएं शामिल थीं, जो उन तरीकों से विस्तारित थीं जो अपने स्वयं के आरडीबीएमएस उत्पाद की विशेष ताकत का लाभ उठाती थीं। परिणामस्वरूप, हालांकि लगभग सभी विक्रेता किसी न किसी रूप में SQL का उपयोग करते थे, प्लेटफ़ॉर्म के बीच संगतता खराब थी।

एक कार्यान्वयन एक विशिष्ट हार्डवेयर प्लेटफॉर्म पर चलने वाला एक विशिष्ट आरडीबीएमएस है।

जल्द ही एक सार्वभौमिक मान्यता प्राप्त SQL मानक बनाने के लिए एक आंदोलन शुरू हुआ, जिसका हर कोई पालन कर सके। 1986 में, ANSI (अमेरिकन नेशनल स्टैंडर्ड इंस्टीट्यूट) ने एक औपचारिक मानक जारी किया जिसका नाम था एसक्यूएल-86. ANSI ने 1989 में उस मानक को अद्यतन किया एसक्यूएल-89 और फिर 1992 में एसक्यूएल-92. जैसे-जैसे डीबीएमएस विक्रेता अपने उत्पादों की नई रिलीज के माध्यम से आगे बढ़ते हैं, वे अपने कार्यान्वयन को इस मानक के करीब लाने की कोशिश करते हैं। इस प्रयास ने वास्तविक SQL पोर्टेबिलिटी के लक्ष्य को वास्तविकता के बहुत करीब ला दिया है।

SQL मानक का नवीनतम पूर्ण संस्करण SQL:2016 (ISO/IEC 9075-X:2016) है। प्रत्येक विशिष्ट SQL कार्यान्वयन मानक से कुछ हद तक भिन्न होता है। चूंकि संपूर्ण SQL मानक व्यापक है, इसलिए वर्तमान में उपलब्ध कार्यान्वयन इसके पूर्ण रूप से समर्थन करने की संभावना नहीं रखते हैं। हालाँकि, DBMS विक्रेता मानक SQL भाषा के कोर सबसेट का समर्थन करने के लिए काम कर रहे हैं। पूर्ण आईएसओ/आईईसी मानक है खरीद के लिए उपलब्ध , लेकिन आप शायद इसे तब तक खरीदना नहीं चाहते जब तक कि आप अपना स्वयं का ISO/IEC SQL मानक डेटाबेस प्रबंधन प्रणाली बनाने का इरादा नहीं रखते। मानक अत्यधिक तकनीकी है और कंप्यूटर भाषा के विद्वान के अलावा किसी के लिए भी समझ से बाहर है।