एसक्यूएल बुनियादी बातों

डीडीएल, डीएमएल और जॉइन के बारे में जानें

संरचित क्वेरी भाषा आधुनिक डेटाबेस वास्तुकला के मौलिक बिल्डिंग ब्लॉक में से एक है। एसक्यूएल सभी प्रमुख प्लेटफार्मों पर संबंधपरक डेटाबेस बनाने और कुशल बनाने के लिए उपयोग की जाने वाली विधियों को परिभाषित करता है। पहली नज़र में, भाषा भयभीत और जटिल लग सकती है, लेकिन यह इतना मुश्किल नहीं है।

SQL के पीछे मूलभूत सिद्धांतों के लिए यह परिचय डेटाबेस बनाने और संशोधित करने के लिए उपयोग किए जाने वाले कुछ मुख्य आदेशों पर एक संक्षिप्त रूप लेता है।

एसक्यूएल के बारे में

एसक्यूएल का सही उच्चारण डेटाबेस समुदाय के भीतर एक विवादित मुद्दा है। अपने एसक्यूएल मानक में, अमेरिकी राष्ट्रीय मानक संस्थान ने घोषणा की कि आधिकारिक उच्चारण "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, $ 45000)

ध्यान दें कि रिकॉर्ड के लिए निर्दिष्ट चार मान हैं। ये तालिका विशेषताओं के अनुरूप हैं जिन्हें वे परिभाषित किए गए थे: first_name, last_name, staff_id और वेतन।

चुनते हैं। SELECT कमांड SQL में सबसे अधिक उपयोग किया जाने वाला कमांड है। यह डेटाबेस उपयोगकर्ताओं को एक परिचालन डेटाबेस से इच्छित विशिष्ट जानकारी पुनर्प्राप्त करने की अनुमति देता है। कर्मचारी डेटाबेस से personal_info तालिका का उपयोग करके, कुछ उदाहरणों पर एक नज़र डालें।

नीचे दिखाया गया आदेश personal_info तालिका में निहित सभी जानकारी पुनर्प्राप्त करता है। ध्यान दें कि तारांकन को SQL में वाइल्डकार्ड के रूप में उपयोग किया जाता है। इसका शाब्दिक अर्थ है "व्यक्तिगत_इनोफ़ तालिका से सबकुछ चुनें।"

व्यक्तिगत_इनो से * चुनें

वैकल्पिक रूप से, उपयोगकर्ता डेटाबेस से पुनर्प्राप्त किए गए गुणों को सीमित करना चाहते हैं। उदाहरण के लिए, मानव संसाधन विभाग को कंपनी के सभी कर्मचारियों के अंतिम नामों की एक सूची की आवश्यकता हो सकती है। निम्न SQL कमांड केवल उस जानकारी को पुनर्प्राप्त करेगा:

Personal_info से last_name चुनें

WHERE क्लॉज का उपयोग उन मानदंडों को सीमित करने के लिए किया जा सकता है जो निर्दिष्ट मानदंडों को पूरा करते हैं। सीईओ सभी अत्यधिक भुगतान कर्मचारियों के कर्मियों के रिकॉर्ड की समीक्षा करने में रुचि रख सकता है। निम्न आदेश $ 50,000 से अधिक वेतन मूल्य वाले रिकॉर्ड के लिए personal_info में निहित सभी डेटा पुनर्प्राप्त करता है:

व्यक्तिगत *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.comments को व्यक्तिगत_इनोफ़ो, अनुशासनात्मक_एक्शन से चुनें जहां personal_info.employee_id = disciplinary_action.employee_id और personal_info.salary> 40000

कोड उन दो तालिकाओं को निर्दिष्ट करता है जिन्हें हम FROM क्लॉज में शामिल करना चाहते हैं और फिर WHERE क्लॉज में एक विवरण शामिल करते हैं जो परिणामों को सीमित करने के लिए कर्मचारी आईडी से मेल खाते हैं और $ 40,000 से अधिक वेतन के हमारे मानदंडों को पूरा करते हैं।