डेटाबेस र तालिकाहरू SQL मा सिर्जना गर्दै

डाटाबेस सिर्जना गर्दै

के तपाई डेटाबेस र तालिकाहरू बनाएर सुरुवात क्वेरी भाषा सुरु गर्न तयार हुनुहुन्छ? यस लेखमा, हामीले मैन्युअल रूपमा CREATE DATABASE र सिर्जना तालिका तालिकाहरूसँग तालिकाहरू सिर्जना गर्ने प्रक्रिया खोज्छौं। यदि तपाइँ SQL मा नयाँ हुनुहुन्छ भने, तपाइँ पहिले हाम्रो SQL Basics आलेख समीक्षा गर्न चाहानुहुन्छ।

व्यवसाय आवश्यकताहरू

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

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

डाटाबेस प्लेटफर्म छनौट गर्नुहोस्

हामीले डेटाबेस व्यवस्थापन प्रणाली (वा DBMS) प्रयोग गर्ने निर्णय गरेको छ जुन स्ट्रक्चर गरिएको क्वेरी भाषा (SQL) मा बनाइएको छ। यसैले, हाम्रो सबै डेटाबेस र तालिका सिर्जना आदेशहरू मनमा मानक ANSI SQL सँग लिखित हुनुपर्छ।

थपिएको फाईलको रूपमा, ANSI-compliant SQL को प्रयोग गरेर यो आदेशले SQL मानकलाई समर्थन गर्दछ जुन कुनै पनि DBMS मा काम गर्नेछ, Oracle र Microsoft SQL Server सहित। यदि तपाइँले तपाइँको डाटाबेसको लागि प्लेटफर्म चयन गर्नुभएको छैन भने, आर्टिकल डेटाबेस सफ्टवेयर विकल्पले चयन प्रक्रियाको माध्यमबाट हिँड्छ।

डाटाबेस सिर्जना गर्दै

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

डेटाबेस प्रदायक सिर्जना गर्नुहोस्

माथिको उदाहरणमा प्रयोग गरिएको पूंजीकरणको विशेष टिप्पणी लिनुहोस्। एसएलसी प्रोग्रामरहरू बीचको साधारण अभ्यास भनेको SQL कुञ्जीहरू जस्तै "CREATE" र "DATABASE" को लागि सबै ठूला अक्षरहरूको प्रयोग गर्न प्रयोगकर्ता-परिभाषित नामहरूका लागि सबै सानो अक्षरहरू "कर्मचारीहरू" डाटाबेस नाम जस्तै प्रयोग गरेर। यी अधिवेशनहरूले सजिलो पढ्नको लागि उपलब्ध गराउँछ।

हामीले हाम्रो डाटाबेसको लागि तालिकाहरू सिर्जना गर्दा यो ट्यूटोरियल पढ्न जारी राख्नुहोस्।

थप सिक्नुहोस्

यदि तपाईं संरचित क्वेरी भाषाको बारे बढी जान्न चाहानुहुन्छ भने, एसएलसी परिचय परिचय वा हाम्रो नि: शुल्क सिकाउने SQL ई-मेल पाठ्यक्रमको लागि साइन अप गर्नुहोस्।

अब हामीले हाम्रो डाटाबेस डिजाइन र बनायौं, हामी XYZ निगमको सेन्सर डाटा स्टोर गर्न प्रयोग हुने तीन तालिकाहरू सुरु गर्न तयार छौं। हामी यो ट्यूटोरियलको अघिल्लो भागमा डिजाइन गरिएको तालिकाहरू लागू गर्नेछौं।

हाम्रो पहिलो तालिका सिर्जना गर्दै

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

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

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

यूएसईका कर्मचारीहरू;

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

टेबल कर्मचारीहरू सिर्जना गर्नुहोस् (कार्यकर्ता INTEGER NULL, अन्तिम नाम VARCHAR (25) NULL, firstname VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

माथिको उदाहरणको रूपमा, ध्यान दिनुहोस् कि प्रोग्रामिङ कन्भेन्सन भनिन्छ कि हामी SQL कुञ्जीशब्दहरूको लागि सबै नामको अक्षरहरू प्रयोग गर्दछौं र प्रयोगकर्ता नामको स्तम्भहरू र तालिकाहरूका लागि सानो अक्षरहरू। माथिको आदेश पहिलोमा भ्रामक लाग्न सक्छ, तर वास्तवमा त्यस पछि सरल संरचना हो। यहाँ एक सामान्य दृश्य हो जुन चीजहरू सार्न सक्दछ:

तालिका तालिकाको नाम सिर्जना गर्नुहोस् (विशेषता_नाम डेटा प्रकार विकल्पहरू, ..., विशेषता_नाम डेटा प्रकार विकल्पहरू);

विशेषताहरू र डाटा प्रकारहरू

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

NULL मानहरू

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

बाँकी रहेका तालिकाहरू निर्माण गर्दै

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

तालिका क्षेत्रहरू सिर्जना गर्नुहोस् (क्षेत्रीय INTEGER NULL, क्षेत्र विवरण VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

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

तालिका सृजनात्मक कार्यकर्ता (कर्मचारी कर्मचारी INTULLER NULL, क्षेत्रीय INTEGER NULL);

मेटिनेजियल एसक्यूएलले सिर्जना गरेपछि डेटाबेसको संरचना बदल्न प्रदान गर्दछ

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

यद्यपि, सबै हराएको छैन। हामी यो विशेषता हाम्रो अवस्थित डाटाबेसमा थप्न ALTER टेबल आदेश प्रयोग गर्न सक्छौं। हामी वेतन को पूर्णांक मान को रूप मा भण्डारण गर्न चाहन्छौं। सिन्ट्याक्स CREATE तालिका कमाण्डको एकदम समान छ, यहाँ यो हो:

ALTER TABLE कर्मचारीहरू वेतन वृद्धि ADD INTEGER NULL;

ध्यान दिनुहोस् कि हामीले निर्दिष्ट गर्यौं कि NULL मानहरू यो विशेषताको लागि अनुमति छ। अधिकतर अवस्थामा, त्यहाँ अवस्थित तालिकामा स्तम्भ थप्दा कुनै विकल्प छैन। यो तथ्यको कारण हो कि तालिका पहिले नै यस गुणको लागि कुनै प्रविष्टिको साथ पङ्क्तिहरू समावेश गर्दछ। यसैले, DBMS ले शून्य भर्नको लागी स्वचालित रूपमा एक NULL मान सम्मिलित गर्दछ।

र त्यो हाम्रो डाटा एसक्यूएल डाटाबेस र तालिका सिर्जना प्रक्रियामा ल्याउँदछ। हाम्रो SQL ट्यूटोरियल श्रृंखलामा नयाँ स्थापनाहरूको लागि प्रायः जाँच गर्नुहोस्। डेटाबेस साइटको बारेमा नयाँ लेख थपिँदा तपाईले एक ई-मेल अनुस्मारक चाहनुहुन्छ भने, हाम्रो न्यूजलेटरको सदस्यता लिन निश्चित हुनुहोस्!