परिचय
इस ट्यूटोरियल का उद्देश्य यह प्रदर्शित करना है कि आप अपने स्वयं के SQL कथन कैसे लिख सकते हैं और उन्हें Microsoft Access 2007, 2010, 2013 2016 या 2019 के भीतर से चला सकते हैं (चरण लगभग सभी संस्करणों में समान हैं)। सभी रिलेशनल डेटाबेस की तरह, माइक्रोसॉफ्ट एक्सेस को सीधे स्ट्रक्चर्ड क्वेरी लैंग्वेज (एसक्यूएल) का उपयोग करके प्रोग्राम किया जा सकता है। जबकि अक्सर SQL को उपयोगकर्ताओं से छिपाया जाता है, डेटाबेस छात्रों के लिए, MS Access SQL को एक्सप्लोर करने और कुछ जटिल प्रश्न लिखने का एक त्वरित और आसान तरीका प्रदान करता है। यह विशेष रूप से आसान है यदि आपके पास SQL सर्वर, Oracle, MySQL या अन्य बड़े रिलेशनल डेटाबेस प्रबंधन प्रणाली को स्थापित करने के लिए समय या धैर्य नहीं है।
इस संक्षिप्त ट्यूटोरियल में उपयोग किए गए SQL उदाहरण मेरे Microsoft Access 2007, 2010 और 2013 ट्यूटोरियल के हिस्से के रूप में बनाए गए सरल ग्राहक और खाता तालिकाओं पर आधारित हैं।
आप पहले उस ट्यूटोरियल (या कम से कम पहले कुछ सेक्शन) टेबल बनाने और इन उदाहरणों को काम करने के लिए आवश्यक डेटा जोड़ने के लिए।
अगला खंड संरचित क्वेरी भाषा (एसक्यूएल) का एक बहुत ही संक्षिप्त परिचय प्रदान करेगा।
संरचित क्वेरी भाषा (एसक्यूएल)
संरचित क्वेरी भाषा (एसक्यूएल का उच्चारण "सीक्वल") एक घोषणात्मक प्रोग्रामिंग भाषा है जिसका उपयोग रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (आरडीबीएमएस) में हेरफेर करने के लिए किया जाता है। इसे पहली बार 1970 के दशक के अंत में IBM के सिस्टम R में पेश किया गया था। आज SQL का उपयोग सभी प्रमुख रिलेशनल DBMS जैसे Oracle, IBM DB2, Informix, Sybase, Microsoft SQL Server, MySQL, Postgres, SQLLite, Microsoft Access और कई अन्य में किया जाता है। जबकि प्रत्येक डेटाबेस विक्रेता कुछ मालिकाना सुविधाएँ प्रदान करता है, SQL के मूल का उपयोग लगभग किसी भी रिलेशनल डेटाबेस पर किया जा सकता है।
संरचित क्वेरी भाषा दो प्रमुख भागों में विभाजित है:
- डेटा परिभाषा भाषा (डीडीएल) - स्कीमा, टेबल, इंडेक्स, क्लस्टर, अनुक्रम जैसे डेटा संरचनाओं को बनाने (परिभाषित) करने के लिए प्रयुक्त होता है क्योंकि हम डेटाबेस को सुरक्षित करेंगे
- डेटा मैनिपुलेशन लैंग्वेज (डीएमएल) - टेबल से डेटा डालने, पुनर्प्राप्त करने, अपडेट करने और हटाने के लिए प्रयुक्त होता है।
माइक्रोसॉफ्ट एक्सेस एसक्यूएल के डीडीएल और डीएमएल दोनों भागों का समर्थन करता है। अधिकांश समय हम SQL क्वेरीज़ पर ध्यान केंद्रित करते हैं जो SQL SELECT स्टेटमेंट के रूप में मौजूदा डेटाबेस से डेटा पुनर्प्राप्त करने के लिए उपयोग किया जाता है। SQL SELECT स्टेटमेंट का मूल सिंटैक्स है:
SELECT column1, column2, ... columnN FROM tableA, tableB, ... tableZ WHERE condition1, condition2, ...conditionM ORDER BY column1, column2, ... columnN
इसलिए, उदाहरण के लिए मान लें कि हमारे पास Customer नाम की एक तालिका है जिसमें FirstName, LastName, StreetAddress, City, State और Zip जैसे कॉलम हैं, हम इस तरह एक SQL SELECT स्टेटमेंट लिख सकते हैं:
SELECT FirstName, LastName, City, State FROM customer
उपरोक्त क्वेरी में हम केवल कॉलम फर्स्टनाम, लास्टनाम, सिटी और स्टेट में डेटा मांग रहे हैं, और जिस टेबल से हम यह डेटा प्राप्त कर रहे हैं उसे ग्राहक कहा जाता है। ध्यान दें कि SQL भाषा अपर या लोअर केस अक्षरों के बारे में चिंता नहीं करती है। तो लिखना पहले नाम चुनें... लिखने के समान है FIRSTNAME चुनें ... ।
थोड़ी अधिक परिष्कृत क्वेरी यह होगी कि यदि हम केवल जॉर्जिया में रहने वाले ग्राहकों को देखना चाहते हैं और हम ग्राहक के अंतिम नाम के अनुसार क्रमबद्ध परिणाम चाहते हैं:
SELECT FirstName, LastName, City, State FROM customer WHERE state = 'GA' ORDER BY LastName
जैसा कि आप देख सकते हैं, हम जो कॉलम दिखाना चाहते हैं, उनकी सूची SELECT कीवर्ड का अनुसरण करती है। हम जिस तालिका की क्वेरी कर रहे हैं उसका नाम FROM कीवर्ड, एक शर्त state ='GA' का अनुसरण करता है WHERE कीवर्ड का अनुसरण करता है और अंत में परिणाम अंतिम नाम कॉलम पर सॉर्ट किए जाते हैं जैसा कि ORDER BY कीवर्ड द्वारा वर्णित है।
SQL SELECT स्टेटमेंट की कई और विशेषताएं हैं जिनमें कई तालिकाओं को एक साथ "जुड़ना" शामिल है, कुल, सबसे बड़े, सबसे छोटे या औसत मूल्यों को खोजने के लिए रिकॉर्ड्स के संग्रह को समूहीकृत करना, और आउटपुट में अन्य जोड़तोड़ करना जो उपयोगकर्ता अंततः देखेंगे। SQL की विशेषताओं पर अधिक व्यापक चर्चा इस लिंक पर पाई जा सकती है।
अगला खंड MS Access में क्वेरी डिज़ाइन दृश्य से SQL के उपयोग का परिचय देता है।
माइक्रोसॉफ्ट एक्सेस में SQL
इस खंड में हम एमएस एक्सेस में अपना स्वयं का एसक्यूएल लिखने के लिए कदम प्रदान करेंगे। यह अभ्यास मानता है कि आपके पास एमएस एक्सेस 2007, 2010 या 2013 "बैंक" डेटाबेस (ग्राहक और लेखा तालिका) के साथ चल रहा है। इस डेटाबेस को बनाने के चरणों के साथ ट्यूटोरियल के लिए यहां क्लिक करें।
आरंभ करने के लिए:
- बनाएं . पर क्लिक करके एक नई क्वेरी बनाएं टैब और फिर क्वेरी डिज़ाइन . पर क्लिक करें आइकन जैसा कि नीचे दिखाया गया है।
- नीचे दिखाए गए अनुसार "शो टेबल" डायलॉग बॉक्स दिखाई देगा। बंद करें . क्लिक करें इसे बंद करने के लिए बटन।
- डिज़ाइन टैब पर क्लिक करें और फिर SQL . पर क्लिक करें बाईं ओर आइकन (या दृश्य बटन को नीचे खींचें और SQL . चुनें
- इस बिंदु पर Query1 क्वेरी का SQL व्यू दिखाई देगा। डिफ़ॉल्ट रूप से SELECT कीवर्ड विंडो में दिखाया जाता है।
- संपूर्ण SQL कथन लिखने के लिए क्वेरी संपादित करें:
SELECT firstname, lastname FROM customer ORDER BY lastname
SQL व्यू क्वेरी विंडो अब नीचे दिखाई देगी:
- इस बिंदु पर, टाइप किए गए SQL कथन के साथ, हम विस्मयादिबोधक बिंदु "रन" बटन पर क्लिक करके डेटाबेस के विरुद्ध क्वेरी निष्पादित कर सकते हैं।
- क्वेरी के परिणाम डेटाशीट दृश्य में प्रदर्शित होंगे (स्प्रेडशीट की तरह):
- SQL क्वेरी को संपादित करने के लिए वापस लौटने के लिए, दृश्य मेनू को नीचे खींचें और SQL को फिर से चुनें।
- आप अपनी क्वेरी को सहेजना भी चाह सकते हैं। ऐसा करने के लिए, वर्तमान क्वेरी नाम वाले टैब पर राइट क्लिक करें:Query1 और सहेजें . चुनें .
क्वेरी के नए नाम के लिए एक डायलॉग बॉक्स दिखाई देगा। एक नया नाम टाइप करें जैसे:Customer_Names और फिर ठीक . क्लिक करें इसे बचाने के लिए।
- अंत में, एमएस एक्सेस एक नए नाम ("इस रूप में सहेजें") के तहत किसी क्वेरी को सहेजने का कोई तरीका प्रदान नहीं करता है। इसके बजाय आप क्या कर सकते हैं क्वेरी के नाम को हाइलाइट करें, राइट-क्लिक करें और कॉपी करें चुनें फिर दोबारा राइट-क्लिक करें और चिपकाएं . चुनें . फिर आपको क्वेरी के नए नाम के लिए कहा जाएगा।
आगे मैं आपके SQL प्रश्नों को लिखने और डीबग करने के लिए कुछ तरकीबें और सुझाव प्रस्तुत करूंगा।
MS Access में SQL क्वेरी लिखना और डीबग करना
अब जबकि आपके पास SQL क्वेरी लिखने और चलाने की बुनियादी प्रक्रियाएँ हैं, तो यहाँ आपके SQL को डीबग करने के लिए कुछ सुझाव और तरकीबें दी गई हैं।
MS Access SQL के लिए संपादक
MS Access में SQL संपादक विंडो इतना बुद्धिमान या काम करने में आसान नहीं है। SQL के साथ काम करने का एक तरीका यह है कि कोड को किसी अन्य संपादक में लिखा जाए, फिर कोड को कॉपी करके उसे चलाने के लिए Access में पेस्ट करें। कई अलग-अलग टेक्स्ट एडिटर उपलब्ध हैं। उदाहरण के लिए विंडोज़ के भीतर आपके पास सहायक उपकरण समूह के अंतर्गत नोटपैड उपलब्ध होगा। केवल एक चेतावनी जो मैं यहां दे सकता हूं, वह यह है कि अपने एसक्यूएल को लिखने के लिए एमएस वर्ड या अन्य वर्ड प्रोसेसिंग सॉफ्टवेयर का उपयोग न करें। इसका कारण यह है कि एमएस वर्ड और अन्य वर्ड प्रोसेसर आपके सिंगल और डबल कोट्स को "फैंसी कोट्स" में बदल देंगे जो SQL को समझ में नहीं आता है।
उदाहरण के लिए, यदि आपके पास WHERE क्लॉज है जैसे WHERE State ='GA'
एसक्यूएल अपेक्षा करता है कि पाठ साधारण उद्धरणों में संलग्न होगा। MS Word उन्हें एक फैंसी ओपनिंग और क्लोजिंग कोट कैरेक्टर में बदल देगा जिसे SQL समझ नहीं पाएगा।
अगर आपको कोई त्रुटि मिलती है जैसे `GA' के लिए पैरामीटर मान दर्ज करें तो आप निश्चित रूप से यह सुनिश्चित करना चाहेंगे कि आपका टेक्स्ट सादे सिंगल कोट वर्णों में संलग्न है।
सिंटेक्स त्रुटियों से निपटना
एसक्यूएल में सिंटैक्स त्रुटियां बहुत निराशाजनक हो सकती हैं क्योंकि अक्सर डेटाबेस ठीक से इंगित नहीं कर सकता है कि समस्या आपके कोड में कहां है। एक्सेस प्रदर्शित होने वाली कुछ मुख्य त्रुटियों में शामिल हैं:
त्रुटि पाठ | <वें शैली="चौड़ाई:300px;">समाधान <वें शैली="चौड़ाई:300px;">उदाहरण||
---|---|---|
________ के लिए पैरामीटर मान दर्ज करें | अक्सर ऐसा तब होता है जब किसी कॉलम (फ़ील्ड) का नाम सही ढंग से टाइप नहीं किया जाता है (जैसे कि इस केस में "lstname" गलत स्पेलिंग है) या एक्सप्रेशन नहीं हो सकता है जैसे WHERE State =`GA' . के रूप में पहचाना जा सकता है | |
माइक्रोसॉफ्ट एक्सेस डाटाबेस इंजन इनपुट क्वेरी या टेबल नहीं ढूंढ सकता :______________ | अक्सर ऐसा तब होता है जब क्वेरी के FROM क्लॉज में टेबल का नाम सही ढंग से टाइप नहीं किया जाता है। उदाहरण के लिए, इस मामले में ग्राहकों से . निर्दिष्ट क्वेरी ग्राहक से . के बजाय | |
क्वेरी एक्सप्रेशन में सिंटेक्स एरर (लापता ऑपरेटर):______________ टीटी> | इस मामले में क्वेरी के सिंटैक्स में कुछ प्रमुख भाग गायब हैं। उदाहरण के लिए, "FROM" क्लॉज गायब है और इसलिए एक्सेस क्वेरी के टेक्स्ट को दिखाकर उस अनुमानित स्थान की रिपोर्ट करता है जहां समस्या होती है। |
अगले भाग में मैं प्रोजेक्ट या होमवर्क असाइनमेंट के लिए अपने SQL प्रश्नों और परिणामों को प्रस्तुत करने के तरीके के बारे में कुछ अतिरिक्त सुझाव प्रदान करूंगा।
आपके SQL कार्य का दस्तावेज़ीकरण
इस खंड में मैं आपके प्रश्नों और परिणामों को प्रारूपित करने के लिए कुछ युक्तियों का वर्णन करूंगा ताकि उन्हें आपके असाइनमेंट और प्रोजेक्ट पर स्पष्ट, संक्षिप्त तरीके से प्रस्तुत किया जा सके।
यहां धारणा यह है कि आप एक वर्ड प्रोसेसिंग प्रोग्राम का उपयोग करेंगे जैसे कि एमएस वर्ड या अन्य वर्ड प्रोसेसिंग प्रोग्राम जो चित्रों और टेक्स्ट को कॉपी और पेस्ट करने का समर्थन करता है।
एमएस एक्सेस आपको एसक्यूएल कोड में टिप्पणियां डालने की अनुमति नहीं देता है। अन्य डीबीएमएस इसकी अनुमति देते हैं लेकिन एक्सेस थोड़ा अधिक प्रतिबंधात्मक है।
इस अभ्यास के लिए, मान लें कि होमवर्क प्रश्न सभी ग्राहकों के पहले और अंतिम नाम दिखाना है और ग्राहक के अंतिम नाम से परिणाम का आदेश देना है।
- पिछले अनुभाग में बताए अनुसार SQL क्वेरी टाइप करें और परिणाम प्राप्त करने के लिए इसे चलाएँ:
- डेटाशीट दृश्य में, कॉलम शीर्षकों के बाईं ओर और पंक्ति चयन बॉक्स के शीर्ष पर स्थित छोटे वर्ग बॉक्स पर क्लिक करें। इससे परिणामों का पूरा सेट हाइलाइट हो जाएगा।
- कोने में उसी छोटे वर्गाकार बॉक्स पर राइट-क्लिक करें और कॉपी करें . चुनें पॉप-अप मेनू से।
- एमएस वर्ड (या अन्य वर्ड प्रोसेसिंग प्रोग्राम) पर स्विच करें और परिणामों को उपयुक्त स्थान पर पेस्ट करें:
कुछ अन्य उपयोगी संकेत जिनका इस असाइनमेंट दस्तावेज़ को बनाने में भी पालन किया गया था:
- जिस प्रश्न को आप हल कर रहे हैं उसका वर्णन करते हुए पूरा वाक्य टाइप करना सुनिश्चित करें (केवल "प्रश्न 1" न डालें)। उदाहरण के लिए, हो सकता है कि आप होमवर्क से प्रश्न को कॉपी करना चाहें और इसे उत्तर का हिस्सा बनाना चाहें।
- अपनी क्वेरी के लिए SQL टेक्स्ट में पेस्ट करते समय, एक कूरियर न्यू फॉन्ट का उपयोग करें ताकि वर्ण और रिक्ति पंक्तिबद्ध हो जाए। इससे पढ़ना बहुत आसान हो जाता है।
- स्क्रीन शॉट का उपयोग करने के बजाय ऊपर दिखाई गई तकनीक का उपयोग करके परिणामों में पेस्ट करें। यह न केवल आपकी वर्ड दस्तावेज़ फ़ाइलों को छोटा कर देगा, बल्कि जब आप इसे प्रिंट करेंगे तो यह भी बहुत स्पष्ट हो जाएगा।
- अपने असाइनमेंट पर अपना नाम, कक्षा/पाठ्यक्रम और अनुभाग अवश्य डालें।
- अधिक जटिल प्रश्नों के लिए जिनमें उप-प्रश्न या इनलाइन प्रश्न शामिल हो सकते हैं, उन्हें पढ़ने और डीबग करने में आसान बनाने के लिए इंडेंट में उपश्रेणियों को पंक्तिबद्ध करना सबसे अच्छा है। उदाहरण के लिए, इस तरह की एक सबक्वायरी लिखने के बजाय:
SELECT accountnumber, balance FROM accounts WHERE balance = (SELECT MIN(balance) from accounts)
कोष्ठक के साथ उप क्वेरी को पंक्तिबद्ध करें:
SELECT accountnumber, balance FROM accounts WHERE balance = ( SELECT MIN(balance) FROM accounts )
जब आप अपने असाइनमेंट और प्रोजेक्ट को चालू करेंगे तो इन चरणों का पालन करने से बहुत अच्छा प्रभाव पड़ेगा।
निष्कर्ष
इस संक्षिप्त ट्यूटोरियल में हमने कवर किया कि एमएस एक्सेस का उपयोग करके एसक्यूएल के साथ कैसे काम किया जाए। एसक्यूएल काफी सामान्य प्रोग्रामिंग भाषा है और एमएस एक्सेस के तहत एसक्यूएल लिखते समय आप जो कुछ भी सीखते हैं उसे आसानी से अन्य रिलेशनल डेटाबेस जैसे एसक्यूएल सर्वर, ओरेकल, साइबेस इत्यादि में स्थानांतरित किया जा सकता है। एसक्यूएल पर अधिक नोट्स के लिए, मेरी संरचित क्वेरी भाषा (एसक्यूएल) पर जाएं। पाठ्यक्रम नोट्स पृष्ठ।
अधिक परिचयात्मक और उन्नत एमएस एक्सेस ट्यूटोरियल के लिए, कृपया मेरी वेब साइट पर एक्सेस श्रेणी पर जाएं।