एसक्यूएल में डेटाबेस और टेबल्स बनाना

डेटाबेस बनाना

क्या आप संरचित क्वेरी भाषा के साथ डेटाबेस और टेबल बनाने शुरू करने के लिए तैयार हैं? इस आलेख में, हम CREATE डेटाबेस के साथ मैन्युअल रूप से तालिकाओं को बनाने और तालिका आदेश बनाने की प्रक्रिया का पता लगाते हैं। यदि आप एसक्यूएल के लिए नए हैं, तो आप पहले हमारे एसक्यूएल मूलभूत लेख की समीक्षा करना चाहेंगे।

व्यापार की आवश्यकताओं

कीबोर्ड पर बैठने से पहले, हमें यह सुनिश्चित करना होगा कि हमें ग्राहक की आवश्यकताओं की ठोस समझ हो। इस अंतर्दृष्टि को प्राप्त करने का सबसे अच्छा तरीका क्या है? निश्चित रूप से ग्राहक से बात कर रहे हैं! एक्सवाईजेड के मानव संसाधन निदेशक के साथ बैठने के बाद, हमने सीखा है कि वे एक विजेट बिक्री कंपनी हैं और मुख्य रूप से उनके बिक्री कर्मियों पर जानकारी ट्रैक करने में रुचि रखते हैं।

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

डेटाबेस प्लेटफॉर्म का चयन करना

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

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

डेटाबेस बनाना

हमारा पहला कदम डेटाबेस को स्वयं बनाना है। कई डेटाबेस प्रबंधन सिस्टम इस चरण में डेटाबेस पैरामीटर को अनुकूलित करने के लिए विकल्पों की एक श्रृंखला प्रदान करते हैं, लेकिन हमारा डेटाबेस केवल डेटाबेस के सरल निर्माण की अनुमति देता है। हमारे सभी आदेशों के साथ, आप यह निर्धारित करने के लिए अपने डीबीएमएस के लिए प्रलेखन से परामर्श करना चाहेंगे कि आपके विशिष्ट सिस्टम द्वारा समर्थित कोई भी उन्नत पैरामीटर आपकी आवश्यकताओं को पूरा करता है या नहीं। आइए अपने डेटाबेस को सेट करने के लिए CREATE DATABASE कमांड का उपयोग करें:

डाटाबेस कर्मियों का निर्माण करें

ऊपर दिए गए उदाहरण में उपयोग किए गए पूंजीकरण का विशेष नोट लें। एसक्यूएल प्रोग्रामर के बीच "कर्मियों" डेटाबेस नाम जैसे उपयोगकर्ता परिभाषित नामों के लिए सभी लोअरकेस अक्षरों का उपयोग करते समय "CREATE" और "DATABASE" जैसे SQL कीवर्ड के लिए सभी पूंजी अक्षरों का उपयोग करना आम बात है। ये सम्मेलन आसान पठनीयता के लिए प्रदान करते हैं।

इस ट्यूटोरियल को पढ़ना जारी रखें क्योंकि हम अपने डेटाबेस के लिए टेबल बनाते हैं।

और अधिक सीखना

यदि आप संरचित क्वेरी भाषा के बारे में अधिक जानना चाहते हैं, तो एसक्यूएल के लिए परिचय पढ़ें या हमारे मुफ्त लर्निंग एसक्यूएल ई-मेल कोर्स के लिए साइन अप करें।

अब जब हमने अपना डेटाबेस डिज़ाइन और बनाया है, तो हम XYZ निगम के कर्मियों के डेटा को स्टोर करने के लिए उपयोग की जाने वाली तीन तालिकाओं को बनाने के लिए तैयार हैं। हम इस ट्यूटोरियल के पिछले भाग में डिज़ाइन की गई टेबल को कार्यान्वित करेंगे।

हमारी पहली टेबल बनाना

हमारी पहली तालिका में हमारी कंपनी के प्रत्येक कर्मचारी के लिए व्यक्तिगत डेटा शामिल है। हमें प्रत्येक कर्मचारी का नाम, वेतन, आईडी और प्रबंधक शामिल करने की आवश्यकता है। भविष्य में डेटा खोज और सॉर्टिंग को सरल बनाने के लिए अंतिम और पहले नामों को अलग-अलग फ़ील्ड में अलग करने के लिए यह अच्छी डिजाइन प्रथा है। साथ ही, हम प्रत्येक कर्मचारी के प्रबंधक में प्रबंधक के कर्मचारी आईडी का संदर्भ डालकर प्रत्येक कर्मचारी के प्रबंधक का ट्रैक रखेंगे। आइए पहले वांछित कर्मचारी तालिका पर नज़र डालें।

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

अब हम अपने कर्मियों डेटाबेस में टेबल बनाने के लिए एसक्यूएल का उपयोग कर सकते हैं। ऐसा करने से पहले, आइए सुनिश्चित करें कि हम एक यूएसई कमांड जारी करके सही डेटाबेस में हैं:

कर्मियों का उपयोग करें;

वैकल्पिक रूप से, "डाटाबेस कर्मियों;" आदेश एक ही समारोह करेगा। अब हम अपने कर्मचारियों की तालिका बनाने के लिए इस्तेमाल किए गए एसक्यूएल कमांड पर एक नज़र डाल सकते हैं:

तालिका कर्मचारियों को तैयार करें (कर्मचारी INTEGER न्यूल, अंतिम नाम VARCHAR (25) नल, प्रथम नाम VARCHAR (25) न्यूल, रिपोर्ट INTEGER न्यूल);

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

तालिका तालिका_नाम बनाएं (विशेषता_नाम डेटाटाइप विकल्प, ..., विशेषता_नाम डेटाटाइप विकल्प);

गुण और डेटा प्रकार

पिछले उदाहरण में, तालिका का नाम कर्मचारी है और इसमें चार विशेषताएं शामिल हैं: कर्मचारी, अंतिम नाम, प्रथम नाम, और रिपोर्टस्टो। डेटाटाइप उस जानकारी के प्रकार को इंगित करता है जिसे हम प्रत्येक क्षेत्र में स्टोर करना चाहते हैं। कर्मचारी आईडी एक साधारण पूर्णांक संख्या है, इसलिए हम कर्मचारी कर्मचारी और रिपोर्टस्टो फ़ील्ड दोनों के लिए INTEGER डेटाटाइप का उपयोग करेंगे। कर्मचारी नाम परिवर्तनीय लंबाई के चरित्र तार होंगे और हम उम्मीद नहीं करते कि किसी भी कर्मचारी के पास 25 वर्णों से पहले का पहला या अंतिम नाम हो। इसलिए, हम इन क्षेत्रों के लिए VARCHAR (25) प्रकार का उपयोग करेंगे।

कुल मूल्य

हम CREATE कथन के विकल्प फ़ील्ड में या तो न्यूल या नॉट भी निर्दिष्ट कर सकते हैं। यह डेटाबेस को पंक्तियों को जोड़ने के दौरान डेटाबेस को बताता है कि उस विशेषता के लिए NULL (या खाली) मानों की अनुमति है या नहीं। हमारे उदाहरण में, मानव संसाधन विभाग के लिए आवश्यक है कि एक कर्मचारी आईडी और पूरा नाम प्रत्येक कर्मचारी के लिए संग्रहीत किया जाए। हालांकि, हर कर्मचारी के पास प्रबंधक नहीं होता - सीईओ किसी को भी रिपोर्ट नहीं करता है! - इसलिए हम उस क्षेत्र में नल प्रविष्टियों की अनुमति देते हैं। ध्यान दें कि NULL डिफ़ॉल्ट मान है और इस विकल्प को छोड़कर एक विशेषता के लिए पूर्ण मानों को पूरी तरह से अनुमति देगा।

शेष सारणी का निर्माण

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

टेबल क्षेत्र बनाएं (क्षेत्रीय प्रवेश न करें, क्षेत्रीय विवरण VARCHAR (40) न्यूल, क्षेत्रीय वचर (25) न्यूल);

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

टेबल नियोक्ताेटरीज़ बनाएं (कर्मचारी INTEGER न्यूल, क्षेत्रीय INTEGER न्यूल);

तंत्र एसक्यूएल निर्माण के बाद एक डेटाबेस के ढांचे को बदलने के लिए प्रदान करता है

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

वैसे, सबकुछ नष्ट नहीं हुआ है। हम इस विशेषता को हमारे मौजूदा डेटाबेस में जोड़ने के लिए ALTER TABLE कमांड का उपयोग कर सकते हैं। हम वेतन को एक पूर्णांक मान के रूप में स्टोर करना चाहते हैं। वाक्यविन्यास CREATE TABLE कमांड के समान है, यहां यह है:

वैकल्पिक तालिका कर्मचारी वेतन INTEGER नल जोड़ें;

ध्यान दें कि हमने निर्दिष्ट किया है कि इस विशेषता के लिए नल मानों की अनुमति है। ज्यादातर मामलों में, किसी मौजूदा तालिका में कॉलम जोड़ने पर कोई विकल्प नहीं होता है। यह इस तथ्य के कारण है कि तालिका में पहले से ही पंक्तियां हैं जिनमें इस विशेषता के लिए कोई प्रविष्टि नहीं है। इसलिए, डीबीएमएस स्वचालित रूप से शून्य को भरने के लिए एक पूर्ण मान डालता है।

और यह SQL डेटाबेस और तालिका निर्माण प्रक्रिया पर हमारी नज़र को लपेटता है। हमारी SQL ट्यूटोरियल श्रृंखला में नई किस्तों के लिए अक्सर जांचें। यदि आप किसी दस्तावेज़ को अनुस्मारक चाहते हैं तो नए डेटाबेस को संबंधित डेटाबेस साइट में जोड़े जाने पर, हमारे न्यूज़लेटर की सदस्यता लें!