SQL आधारभूत

DDL, DML र JOIN को बारेमा जान्नुहोस्

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

SQL को पछि मौलिकता को परिचय यो डेटाबेस को निर्माण र संशोधित गर्न को लागी उपयोग को केहि कमांड मा केहि संक्षिप्त दृश्य लेता छ।

SQL को बारे मा

SQL को सही उच्चारण डाटाबेस समुदाय भित्र एक संदिग्ध मुद्दा हो। यसको SQL मानकमा, अमेरिकन राष्ट्रिय मानक संस्थानले घोषणा गरे कि आधिकारिक उच्चारण "es queue el।" यद्यपि, धेरै डेटाबेस प्रोफेसरले slang उच्चारण "अग्निल" मा लिएका छन्। छनौट तपाईंको हो।

SQL धेरै स्वादहरूमा आउँछ। Oracle डेटाबेसहरू यसको मालिकाना PL / SQL प्रयोग गर्दछ। माइक्रोसफ्ट SQL सर्भरले ट्र्याक्ट-एसएक्सको प्रयोग गर्दछ। सबै भिन्नता उद्योग मानक ANSI SQL मा आधारित छन्। यो परिचयले ANSI-compliant SQL आदेशहरू प्रयोग गर्दछ जुन कुनै पनि आधुनिक रिजर्भेसन डाटाबेस प्रणालीमा काम गर्दछ।

डीडीएल र डीएमएल

SQL आदेशहरू दुई मुख्य उप-भाषाहरूमा विभाजन गर्न सकिन्छ। डेटा परिभाषा भाषा (DDL) डेटाबेस र डाटाबेस वस्तुहरू सिर्जना गर्न र नष्ट गर्न प्रयोग गरिने आदेशहरू समावेश गर्दछ। डाटाबेस ढाँचा DDL सँग परिभाषित भएपछि, डाटाबेस प्रशासक र प्रयोगकर्ताले डेटा हेरफेर भाषा (DML) को प्रयोग गर्न सक्छन्, भित्र भित्र राखिएको डेटा सम्मिलित, पुन: प्राप्त गर्न र परिमार्जन गर्न।

डेटा परिभाषा भाषा आदेशहरू

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

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

डेटाबेस कर्मचारीहरू सिर्जना गर्नुहोस्

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

तालिका निजी_इन्फो सिर्जना गर्नुहोस् (first_name चार (20) शून्य होइन, last_name चार (20) शून्य छैन, कर्मचारी nid int null)

हालको डाटाबेसमा "personal_info" शीर्षकको तालिका स्थापना गर्दछ। उदाहरणमा, तालिकामा तीन विशेषताहरू छन्: first_name, last_name र employee_id केहि अतिरिक्त जानकारी सहित।

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

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

यो सँधै डाटाबेस हेरफेर SQL आदेशहरू जारी गर्नु अघि काम गरिरहनु भएको डाटाबेसको होशियार हुनु महत्त्वपूर्ण छ।

ALTER। एक पटक डाटाबेस भित्र एक तालिका सिर्जना गरेपछि, तपाईं यसको परिभाषा परिमार्जन गर्न चाहनुहुन्छ। ALTER आदेशले तपाईंलाई मेट्ने संरचना र मेट्ने बिना तालिकाको संरचनामा परिवर्तन गर्न अनुमति दिन्छ। निम्न आदेशमा एउटा अवलोकन लिनुहोस्:

ALTER TABLE personal_info वेतन रकम ADD AD

यो उदाहरणले व्यक्तिगत_इनफोको तालिका-एक कर्मचारीको वेतनमा नयाँ विशेषता थप्छ। "पैसा" तर्कले निर्दिष्ट गर्दछ कि कर्मचारीको वेतन एक डलर र सेन्ट ढाँचा प्रयोग गरी भण्डारण गरिएको छ। अन्तमा, "खाली" कीवर्डले डाटाबेसलाई भन्छ कि यो यस क्षेत्रको लागि कुनै पनि कर्मचारीको लागि कुनै मान समावेश गर्न ठीक छ।

DROP। डाटा परिभाषा भाषाको अन्तिम आदेश, DROP ले हामीलाई हाम्रो DBMS बाट सम्पूर्ण डाटाबेस वस्तुहरू हटाउन अनुमति दिन्छ। उदाहरणका लागि, यदि हामी स्थायी रूपमा व्यक्तिगत_इनफोभ तालिका बनायौं जुन हामीले सिर्जना गर्यौं, हामी निम्न आदेश प्रयोग गर्दछौं:

DROP तालिका personal_info

त्यसै गरी, तलको आदेश प्रयोग गरिने सम्पूर्ण कर्मचारी डेटाबेस हटाउन प्रयोग गरिनेछ:

DROP DATABASE कर्मचारीहरू

यस आदेशलाई हेरचाहको साथ प्रयोग गर्नुहोस्। DROP आदेशले तपाईको डेटाबेसबाट सम्पूर्ण डाटा ढाँचाहरू हटाउँछ। यदि तपाइँ व्यक्तिगत रेकर्डहरू हटाउन चाहनुहुन्छ भने, डाटा हेरफेर भाषाको DELETE आदेश प्रयोग गर्नुहोस्।

डेटा हेरफेर भाषा आदेशहरू

डेटा हेरफेर भाषा (DML) डेटाबेस जानकारी पुन: प्राप्त, सम्मिलित गर्न र परिमार्जन गर्न प्रयोग गरिन्छ। यी आदेशहरू सबै डेटाबेस प्रयोगकर्ताहरू द्वारा डाटाबेसको नियमित अपरेसनमा प्रयोग गरिन्छ।

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

इन्टरनेट मा व्यक्तिगत_इन्फो मान ('बार्ट', 'सिम्पसन', 12345, $ 45000)

याद गर्नुहोस् कि रेकर्डको लागि निर्दिष्ट चार मानहरू छन्। यी तालिकाहरूसँग परिभाषित क्रममा यी विशेषताहरू: पहिलो_नाम, last_name, कर्मचारी_id र वेतन।

चयन गर्नुहोस्। SELECT आदेश SQL मा सबै भन्दा सामान्य प्रयोग गरिएको आदेश हो। यसले डेटाबेस प्रयोगकर्ताहरूलाई विशेष जानकारी जुन उनीहरूको इच्छात्मक डेटाबेसबाट प्राप्त गर्न पुनःप्राप्त गर्न अनुमति दिन्छ। केही उदाहरणहरू हेर्नुहोस्, फेरि व्यक्तिगत डेटाको तालिका प्रयोग गरेर डेटाबेसबाट प्रयोग गर्नुहोस्।

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

SELECT * personal_info बाट

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

Last_name बाट personal_info चयन गर्नुहोस्

WHERE खण्ड निर्दिष्ट मापदण्ड पूरा गर्ने रेकर्डहरूमा सीमित गर्न प्रयोग गर्न सकिन्छ। सीईओ सबै अत्यधिक सशुल्क कर्मचारियों को कर्मचारियों को रेकर्ड को समीक्षा गर्न मा रुचि हुन सक्छ। निम्न आदेश व्यक्तिगत_इफो भित्र रहेको सबै डाटा पुन: प्राप्ति गर्दछ जुन रिचार्जको लागि $ 50,000 भन्दा ठूलो मान छ:

SELECT * व्यक्तिगत_इन्फो देखि जब वेतन> $ 50000

UPDATE। UPDATE आदेश प्रयोग तालिकामा अवस्थित जानकारी परिमार्जन गर्न प्रयोग गर्न सकिन्छ, वा थोकमा वा व्यक्तिगत रूपमा। कम्पनीलाई मान्नुहोस् हरेक कर्मचारीले वार्षिक वेतनमा 3 प्रतिशत मूल्य-प्रति-जीवन वृद्धि प्रदान गर्दछ। निम्न SQL आदेश प्रयोग गर्न को लागी डेटाबेस मा भन्डार भएका सबै कर्मचारीहरूलाई छिट्टै यो लागू गर्न सकिन्छ:

व्यक्तिगत जानकारी अपडेट गर्नुहोस् SET वेतन = वेतन * 1.03

जब नयाँ कर्मचारी बर्ट सिम्पसनले डेरिङ्गको कल माथि र परे प्रदर्शन प्रदर्शन गर्दछ, व्यवस्थापनले आफ्नो तारिखिक उपलब्धिहरूलाई $ 5,000 बढाउनको लागी पहिचान गर्न चाहन्छ। WHERE खण्ड यो उठाउनको लागि बर्ट बाहिर एकल प्रयोग गर्न सकिन्छ:

व्यक्तिगत जानकारी अपडेट गर्नुहोस् SET वेतन = वेतन + $ 5000 WHERE employee_id = 12345

मेटाउन। अन्तमा, DELETE आदेशमा एक नजर राखौं। तपाईले यो आदेशको सिन्ट्याक्स अन्य DML आदेशहरूको जस्तो छ भनेर फेला पार्नुहुनेछ। दुर्भाग्यवश, हाम्रो नवीनतम कर्पोरेट आय रिपोर्टले धेरै अपेक्षाहरु पूरा गरेन र गरीब बार्ट हटाइएको छ। WHERE खण्डको साथ DELETE आदेश प्रयोग व्यक्तिगत_इनफाइल तालिकाबाट हटाउन प्रयोग गर्न सकिन्छ:

व्यक्तिगत_इन्फो बाट हटाईएको कर्मचारी कर्मचारी कहाँ छ? 12345

JOINs

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

दुई टेबलबाट एकत्रित डेटाको आधारभूत JOIN अपरेसनको प्रयोग अन्वेषण गर्न, PERSONAL_INFO तालिका प्रयोग गरी उदाहरणको साथ जारी राख्नुहोस् र मिश्रणमा थप तालिका थप गर्नुहोस्। मान्नुहोस् तपाईंकोसँग तालिका छ DISCIPLINARY_ACTION जुन निम्न कथनसँग सिर्जना गरिएको थियो:

तालिका अनुशासनात्मक प्रतिक्रिया सिर्जना गर्नुहोस् (action_id int होइन null, employee_id int not null, comments char (500))

यस तालिकामा कम्पनी कर्मचारीहरूमा अनुशासनिक कार्यहरूको परिणामहरू छन्। तपाईं ध्यान दिनुहुनेछ कि यसमा कर्मचारी नम्बर भन्दा अन्य कर्मचारीको बारेमा कुनै पनि जानकारी समावेश छैन। धेरै परिदृश्यहरू कल्पना गर्न सजिलो छ जहाँ तपाईं DISCIPLINARY_ACTION र PERSONAL_INFO तालिकाहरूबाट जानकारी संयोजन गर्न चाहानुहुन्छ।

तपाईंलाई रिपोर्ट रिपोर्ट गरीएको छ जुन सबै कर्मचारीहरू विरुद्ध $ 40,000 भन्दा बढि वेतनको साथ लिईएका अनुशासनिक कार्यहरू सूचीबद्ध गर्दछ। JOIN सञ्चालनको प्रयोग, यस अवस्थामा, सीधा छ। हामी निम्न जानकारी प्रयोग गरेर यो जानकारी पुन: प्राप्त गर्न सक्छौं:

SELECT personal_info.first_name, personal_info.last_name, personal_info बाट, अनुशासनात्मक प्रतिक्रिया, व्यक्तिगत_info.employee_id = अनुशासनिक_क्रिया.मेमी कर्मचारी र personal_info.salary> 40000

कोडले दुई तालिकाहरू जुन हामी FROM क्लजमा सामेल हुन चाहन्छौं र त्यसपछि WHERE क्लजमा एक बयान समावेश गर्दछ जुन परिणामहरू कर्मचारी आईडीहरूसँग मेल खाने र $ 40,000 भन्दा बढि वेतनको हाम्रो मापदण्डसँग मेल खाने रेकर्डहरूमा सीमित गर्दछ।