संरचित क्वेरी भाषा आधुनिक डेटाबेस वास्तुकला के मौलिक बिल्डिंग ब्लॉक में से एक है। एसक्यूएल सभी प्रमुख प्लेटफार्मों पर संबंधपरक डेटाबेस बनाने और कुशल बनाने के लिए उपयोग की जाने वाली विधियों को परिभाषित करता है। पहली नज़र में, भाषा भयभीत और जटिल लग सकती है, लेकिन यह इतना मुश्किल नहीं है।
एसक्यूएल के बारे में
एसक्यूएल का सही उच्चारण डेटाबेस समुदाय के भीतर एक विवादित मुद्दा है। अपने एसक्यूएल मानक में, अमेरिकी राष्ट्रीय मानक संस्थान ने घोषणा की कि आधिकारिक उच्चारण "es queue el" है। हालांकि, कई डेटाबेस पेशेवरों ने slang उच्चारण "sequel" ले लिया है। चुनना आपको है।
एसक्यूएल कई स्वादों में आता है। ओरेकल डेटाबेस अपने मालिकाना पीएल / एसक्यूएल का उपयोग करते हैं। माइक्रोसॉफ्ट एसक्यूएल सर्वर ट्रांसएक्ट-एसक्यूएल का उपयोग करता है। सभी बदलाव उद्योग मानक एएनएसआई एसक्यूएल पर आधारित हैं। यह परिचय एएनएसआई-अनुरूप एसक्यूएल कमांड का उपयोग करता है जो किसी भी आधुनिक रिलेशनल डेटाबेस सिस्टम पर काम करता है।
डीडीएल और डीएमएल
एसक्यूएल कमांड को दो मुख्य उप-भाषाओं में विभाजित किया जा सकता है। डाटा डेफिनिशन लैंग्वेज (डीडीएल) में डेटाबेस और डेटाबेस ऑब्जेक्ट्स बनाने और नष्ट करने के लिए उपयोग किए गए कमांड शामिल हैं। डेटाबेस संरचना को डीडीएल के साथ परिभाषित करने के बाद, डेटाबेस प्रशासक और उपयोगकर्ता डेटा मैनिपुलेशन लैंग्वेज (डीएमएल) का उपयोग कर सकते हैं ताकि इसमें मौजूद डेटा को सम्मिलित, पुनर्प्राप्त और संशोधित किया जा सके।
डेटा परिभाषा भाषा कमांड
डेटा परिभाषा भाषा डेटाबेस और डेटाबेस ऑब्जेक्ट्स बनाने और नष्ट करने के लिए उपयोग की जाती है। इन आदेशों का मुख्य रूप से डेटाबेस प्रोजेक्टर्स द्वारा डेटाबेस प्रोजेक्ट के सेटअप और निष्कासन चरणों के दौरान उपयोग किया जाता है। चार बुनियादी डीडीएल कमांड की संरचना और उपयोग पर एक नज़र डालें:
सर्जन करना।कंप्यूटर पर डेटाबेस प्रबंधन प्रणाली स्थापित करना आपको कई स्वतंत्र डेटाबेस बनाने और प्रबंधित करने की अनुमति देता है। उदाहरण के लिए, आप अपने एचआर विभाग के लिए अपने विक्रय विभाग और एक कर्मियों डेटाबेस के लिए ग्राहक संपर्कों का डेटाबेस बनाए रखना चाह सकते हैं। CREATE कमांड का उपयोग आपके प्लेटफ़ॉर्म पर इन डेटाबेसों में से प्रत्येक को स्थापित करने के लिए किया जाता है। उदाहरण के लिए, आदेश:
डाटाबेस कर्मचारियों का निर्माण करें
आपके डीबीएमएस पर "कर्मचारी" नामक एक खाली डेटाबेस बनाता है। डेटाबेस बनाने के बाद, अगला चरण डेटा बनाने वाले टेबल बनाना है। CREATE कमांड का एक और संस्करण इस उद्देश्य के लिए उपयोग किया जा सकता है। आदेश: तालिका बनाएं व्यक्तिगत_इन्फो (first_name char (20) शून्य नहीं, last_name char (20) शून्य नहीं, staff_id int शून्य नहीं है)
वर्तमान डेटाबेस में "personal_info" शीर्षक वाली एक तालिका स्थापित करता है। उदाहरण में, तालिका में कुछ विशेष जानकारी के साथ तीन विशेषताएं हैं: first_name, last_name, और staff_id। उपयोग।यूएसई कमांड आपको उस डेटाबेस को निर्दिष्ट करने की अनुमति देता है जिसे आप अपने डीबीएमएस के भीतर काम करना चाहते हैं। उदाहरण के लिए, यदि आप वर्तमान में बिक्री डेटाबेस में काम कर रहे हैं और कुछ कमांड जारी करना चाहते हैं जो कर्मचारी डेटाबेस को प्रभावित करेंगे, तो उन्हें निम्न SQL कमांड के साथ पेश करें: कर्मचारियों का उपयोग करें
डेटा में हेरफेर करने वाले SQL कमांड जारी करने से पहले आप जिस डेटाबेस में काम कर रहे हैं उसके बारे में हमेशा जागरूक होना महत्वपूर्ण है। ALTER।एक बार डेटाबेस के भीतर एक टेबल बनाने के बाद, आप इसकी परिभाषा को संशोधित करना चाह सकते हैं। ALTER कमांड आपको बिना किसी विलोपन और पुनर्निर्माण के किसी तालिका की संरचना में परिवर्तन करने की अनुमति देता है। निम्न आदेश पर एक नज़र डालें: वैकल्पिक तालिका व्यक्तिगत_इन्फो वेतन वेतन शून्य जोड़ें
यह उदाहरण व्यक्तिगत_इनोफ़ तालिका में एक नई विशेषता जोड़ता है-एक कर्मचारी का वेतन। "पैसा" तर्क निर्दिष्ट करता है कि एक कर्मचारी का वेतन एक डॉलर और सेंट प्रारूप का उपयोग करके संग्रहीत किया जाता है। अंत में, "शून्य" कीवर्ड डेटाबेस को बताता है कि किसी भी दिए गए कर्मचारी के लिए इस फ़ील्ड के लिए कोई मूल्य नहीं है। ड्रॉप।डाटा डेफिनिशन लैंग्वेज, डीआरओपी का अंतिम आदेश, हमें हमारे डीबीएमएस से संपूर्ण डेटाबेस ऑब्जेक्ट्स को हटाने की अनुमति देता है। उदाहरण के लिए, यदि हम बनाए गए व्यक्तिगत_इन्फो टेबल को स्थायी रूप से हटाना चाहते हैं, तो हम निम्न आदेश का उपयोग करेंगे: ड्रोप टेबल व्यक्तिगत_इन्फो
इसी प्रकार, नीचे दिए गए आदेश का उपयोग पूरे कर्मचारी डेटाबेस को हटाने के लिए किया जाएगा: ड्रोप डाटाबेस कर्मचारियों
देखभाल के साथ इस आदेश का प्रयोग करें। DROP कमांड आपके डेटाबेस से संपूर्ण डेटा संरचनाओं को हटा देता है। यदि आप व्यक्तिगत रिकॉर्ड को हटाना चाहते हैं, तो डेटा मैनिपुलेशन भाषा के DELETE कमांड का उपयोग करें। डेटा मैनिपुलेशन लैंग्वेज (डीएमएल) का उपयोग डेटाबेस जानकारी को पुनर्प्राप्त करने, डालने और संशोधित करने के लिए किया जाता है। इन आदेशों का उपयोग डेटाबेस के नियमित संचालन के दौरान सभी डेटाबेस उपयोगकर्ताओं द्वारा किया जाता है। सम्मिलित करें।SQL में INSERT कमांड का उपयोग किसी मौजूदा तालिका में रिकॉर्ड जोड़ने के लिए किया जाता है। पिछले अनुभाग से personal_info उदाहरण पर लौटने पर, कल्पना करें कि हमारे मानव संसाधन विभाग को अपने डेटाबेस में एक नया कर्मचारी जोड़ने की जरूरत है। आप इस तरह के कमांड का उपयोग कर सकते हैं: व्यक्तिगत_इनो में इंसर्ट करेंमूल्यों ( 'बार्ट', 'सिम्पसन', 12345, $ 45,000)
ध्यान दें कि रिकॉर्ड के लिए निर्दिष्ट चार मान हैं। ये तालिका विशेषताओं के अनुरूप हैं जिन्हें वे परिभाषित किए गए थे: first_name, last_name, staff_id और वेतन। चुनते हैं।SELECT कमांड SQL में सबसे अधिक उपयोग किया जाने वाला कमांड है। यह डेटाबेस उपयोगकर्ताओं को एक परिचालन डेटाबेस से इच्छित विशिष्ट जानकारी पुनर्प्राप्त करने की अनुमति देता है। कर्मचारी डेटाबेस से personal_info तालिका का उपयोग करके, कुछ उदाहरणों पर एक नज़र डालें। नीचे दिखाया गया आदेश personal_info तालिका में निहित सभी जानकारी पुनर्प्राप्त करता है। ध्यान दें कि तारांकन को SQL में वाइल्डकार्ड के रूप में उपयोग किया जाता है। इसका शाब्दिक अर्थ है "व्यक्तिगत_इनोफ़ तालिका से सबकुछ चुनें।" चुनते हैं *Personal_info से
वैकल्पिक रूप से, उपयोगकर्ता डेटाबेस से पुनर्प्राप्त किए गए गुणों को सीमित करना चाहते हैं। उदाहरण के लिए, मानव संसाधन विभाग को कंपनी के सभी कर्मचारियों के अंतिम नामों की एक सूची की आवश्यकता हो सकती है। निम्न SQL कमांड केवल उस जानकारी को पुनर्प्राप्त करेगा: अंतिम_नाम चुनेंPersonal_info से
WHERE क्लॉज का उपयोग उन मानदंडों को सीमित करने के लिए किया जा सकता है जो निर्दिष्ट मानदंडों को पूरा करते हैं। सीईओ सभी अत्यधिक भुगतान कर्मचारियों के कर्मियों के रिकॉर्ड की समीक्षा करने में रुचि रख सकता है। निम्न आदेश $ 50,000 से अधिक वेतन मूल्य वाले रिकॉर्ड के लिए personal_info में निहित सभी डेटा पुनर्प्राप्त करता है: चुनते हैं *Personal_info सेजहां वेतन> $ 50000
अद्यतन करें।अद्यतन आदेश का उपयोग तालिका में निहित जानकारी को या तो थोक या व्यक्तिगत रूप से संशोधित करने के लिए किया जा सकता है। मान लीजिए कि कंपनी सालाना वेतन में सभी कर्मचारियों को 3 प्रतिशत लागत-रहने वाली वृद्धि देती है। डेटाबेस में संग्रहीत सभी कर्मचारियों को इसे तुरंत लागू करने के लिए निम्न SQL कमांड का उपयोग किया जा सकता है: अद्यतन व्यक्तिगत_इन्फोएसईटी वेतन = वेतन * 1.03
जब नया कर्मचारी बार्ट सिम्पसन कर्तव्य की कॉल के ऊपर और परे प्रदर्शन का प्रदर्शन करता है, तो प्रबंधन 5,000 डॉलर की बढ़ोतरी के साथ अपने तारकीय उपलब्धियों को पहचानना चाहता है। इस raise के लिए बार्ट को बाहर करने के लिए WHERE क्लॉज का उपयोग किया जा सकता है: अद्यतन व्यक्तिगत_इन्फोएसईटी वेतन = वेतन + $ 5000कर्मचारी_आईडी = 12345 कहां है
DELETE।अंत में, आइए DELETE कमांड पर नज़र डालें। आप पाएंगे कि इस कमांड का सिंटैक्स अन्य डीएमएल कमांड के समान है। दुर्भाग्यवश, हमारी नवीनतम कॉर्पोरेट कमाई रिपोर्ट अपेक्षाओं को पूरा नहीं करती थी और खराब बार्ट को बंद कर दिया गया था। WHERE क्लॉज के साथ DELETE कमांड का उपयोग व्यक्तिगत_इनोफ़ तालिका से अपने रिकॉर्ड को हटाने के लिए किया जा सकता है: Personal_info से हटाएंकर्मचारी_आईडी = 12345 कहां है अब जब आपने एसक्यूएल की मूल बातें सीखी हैं, तो समय है कि भाषा की पेशकश की जाने वाली सबसे शक्तिशाली अवधारणाओं में से एक - जॉइन स्टेटमेंट। एक जॉइन स्टेटमेंट आपको बड़ी मात्रा में डेटा को कुशलतापूर्वक संसाधित करने के लिए एकाधिक तालिकाओं में डेटा को गठबंधन करने की अनुमति देता है। ये कथन हैं जहां डेटाबेस की वास्तविक शक्ति रहता है। दो तालिकाओं से डेटा को गठबंधन करने के लिए मूल जॉइन ऑपरेशन के उपयोग का पता लगाने के लिए, PERSONAL_INFO तालिका का उपयोग करके उदाहरण के साथ जारी रखें और मिश्रण में एक अतिरिक्त तालिका जोड़ें। मान लें कि आपके पास DISCIPLINARY_ACTION नामक एक तालिका है जिसे निम्न कथन के साथ बनाया गया था: तालिका अनुशासनिक क्रियाएं बनाएं (action_id int शून्य नहीं है, staff_id int शून्य नहीं है, टिप्पणियां चार (500))
इस तालिका में कंपनी के कर्मचारियों पर अनुशासनात्मक कार्रवाई के परिणाम शामिल हैं। आप देखेंगे कि इसमें कर्मचारी संख्या के अलावा कर्मचारी के बारे में कोई जानकारी नहीं है। कई परिदृश्यों की कल्पना करना आसान है जहां आप DISCIPLINARY_ACTION और PERSONAL_INFO तालिकाओं से जानकारी को जोड़ना चाहते हैं। मान लीजिए कि आपको एक रिपोर्ट बनाने के साथ काम सौंपा गया है जिसमें 40,000 डॉलर से अधिक वेतन वाले सभी कर्मचारियों के खिलाफ अनुशासनात्मक कार्रवाई की सूची दी गई है। जॉइन ऑपरेशन का उपयोग, इस मामले में, सीधा है। हम निम्न आदेश का उपयोग करके इस जानकारी को पुनर्प्राप्त कर सकते हैं: Personal_info.first_name, personal_info.last_name, disciplinary_action.com चुनेंPersonal_info से, अनुशासनात्मक_करणजहां personal_info.employee_id = disciplinary_action.employee_idऔर personal_info.salary> 40000
कोड उन दो तालिकाओं को निर्दिष्ट करता है जिन्हें हम FROM क्लॉज में शामिल करना चाहते हैं और फिर WHERE क्लॉज में एक विवरण शामिल करते हैं जो परिणामों को सीमित करने के लिए कर्मचारी आईडी से मेल खाते हैं और $ 40,000 से अधिक वेतन के हमारे मानदंडों को पूरा करते हैं। डेटा मैनिपुलेशन भाषा कमांड
मिलती है




