एसक्यूएल सेलेक्ट स्टेटमेंट
SQL सेलेक्ट स्टेटमेंट का उपयोग करके डेटा को पुनः प्राप्त करना
एसक्यूएल एक व्यापक डेटाबेस भाषा है। एसक्यूएल, सीक्वल या बस एसक्यूएल, एक कंप्यूटर प्रोग्रामिंग भाषा है जिसका उपयोग गैर-प्रक्रियात्मक दृष्टिकोण के बाद संबंधपरक डेटाबेस को क्वेरी करने के लिए किया जाता है। जब आप SQL का उपयोग कर डेटाबेस से जानकारी निकालते हैं, तो इसे डेटाबेस को क्वेरी करना कहा जाता है।
एक रिलेशनल डेटाबेस एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) के उपयोग के माध्यम से कार्यान्वित किया जाता है। एक RDBMS DBMS सॉफ़्टवेयर के सभी बुनियादी कार्यों के साथ-साथ अन्य कार्यों की एक भीड़ के साथ करता है जो संबंधपरक मॉडल को समझने और लागू करने के लिए आसान बनाते हैं। RDBMS उपयोगकर्ता एक विशेष डेटा हेरफेर भाषा के उपयोग के माध्यम से डेटा में हेरफेर करते हैं। डेटाबेस संरचनाओं को डेटा परिभाषा भाषा के उपयोग के माध्यम से परिभाषित किया गया है। आदेश जो सिस्टम उपयोगकर्ता डेटा को स्टोर करने और पुनः प्राप्त करने के लिए निष्पादित करते हैं, उन्हें कमांड टाइप करके RDBMS इंटरफ़ेस के साथ टर्मिनल में प्रवेश किया जा सकता है, या कुछ प्रकार के ग्राफ़िकल इंटरफ़ेस के उपयोग के माध्यम से दर्ज किया जा सकता है। DBMS तब कमांड को प्रोसेस करता है।
सेलेक्ट स्टेटमेंट की क्षमताएं
डेटा बेस से डेटा पुनर्प्राप्ति SQL के उचित और कुशल उपयोग के माध्यम से किया जाता है। संबंधपरक सिद्धांत से तीन अवधारणाएं चयन कथन की क्षमता को शामिल करती हैं: प्रक्षेपण, चयन और शामिल होना।
प्रोजेक्शन: एक प्रोजेक्ट ऑपरेशन एक टेबल से केवल कुछ कॉलम (फ़ील्ड) का चयन करता है। परिणाम तालिका में उपलब्ध कॉलमों का एक सबसेट होता है और इसमें एकल कॉलम से लेकर सभी उपलब्ध कॉलमों तक कुछ भी शामिल हो सकता है।
चयन: एक चयन ऑपरेशन एक तालिका (संबंध) में पंक्तियों (रिकॉर्ड) के एक सबसेट का चयन करता है जो चयन की स्थिति को संतुष्ट करता है। पूर्ण परिणाम सेट से पंक्तियों का चयन करने की क्षमता को चयन कहा जाता है। इसमें सशर्त फ़िल्टरिंग और डेटा स्टेजिंग शामिल है। सबसेट बिना पंक्तियों के हो सकती है, यदि कोई भी पंक्ति किसी तालिका में सभी पंक्तियों के चयन की स्थिति को संतुष्ट नहीं करती है।
ज्वाइनिंग: एक ज्वाइन ऑपरेशन एक या एक से अधिक सामान्य कॉलम वैल्यू के आधार पर दो या अधिक टेबलों से डेटा को जोड़ता है। एक जुड़ने वाला ऑपरेशन तालिकाओं के बीच मौजूद रिश्तों को संसाधित करने के लिए एक सूचना प्रणाली उपयोगकर्ता को सक्षम बनाता है। ज्वाइन ऑपरेशन बहुत शक्तिशाली है क्योंकि यह सिस्टम उपयोगकर्ताओं को डेटा तत्वों के बीच संबंधों की जांच करने की अनुमति देता है जो उस समय अनुमानित नहीं हो सकते हैं जब एक डेटाबेस डिज़ाइन किया गया हो।
उपरोक्त तालिका संरचनाओं पर विचार करें। EMPLOYEES तालिका से एक कर्मचारी के लिए First_name नाम, विभाग_एड और वेतन प्राप्त करना प्रोजेक्शन है। कर्मचारी विवरण प्राप्त करना, जिसका वेतन EMPLOYEES तालिका से 5000 से कम है, चयन है। कर्मचारी का पहला नाम, विभाग का नाम EMPLOYEES और DEPARTMENTS जोड़कर प्राप्त करना है।
बेसिक सेलेक्ट स्टेटमेंट
एक चयन कथन के लिए मूल वाक्यविन्यास नीचे प्रस्तुत किया गया है।
SELECT [DISTINCT | ALL] {* | select_list}
FROM {table_name [alias] | view_name}
[{table_name [alias] | view_name}]...
[WHERE condition]
[GROUP BY condition_list]
[HAVING condition]
[ORDER BY {column_name | column_# [ ASC | DESC ] } ...
चयन खंड अनिवार्य है और रिलेशनल प्रोजेक्ट ऑपरेशन को पूरा करता है।
FROM क्लॉज भी अनिवार्य है। यह एक या एक से अधिक तालिकाओं और / या विचारों की पहचान करता है जिससे परिणाम तालिका में प्रदर्शित कॉलम डेटा को पुनः प्राप्त किया जा सकता है।
WHERE क्लॉज वैकल्पिक है और रिलेशनल सेलेक्शन ऑपरेशन को पूरा करता है। यह निर्दिष्ट करता है कि किन पंक्तियों का चयन किया जाना है।
ग्रुप बाय क्लॉज वैकल्पिक है। यह सेलेक्ट क्लॉज में सूचीबद्ध एक या अधिक कॉलम नामों द्वारा समूहों में डेटा को व्यवस्थित करता है।
वैकल्पिक एचएवी क्लॉजिंग परिणाम तालिका में किन समूहों को शामिल करना है इसके बारे में स्थितियां निर्धारित करता है। समूह समूह द्वारा खंड द्वारा निर्दिष्ट किए गए हैं।
खंड द्वारा आदेश वैकल्पिक है। यह आरोही या अवरोही क्रम में एक या अधिक स्तंभों द्वारा क्वेरी परिणामों को क्रमबद्ध करता है।
सिलेक्ट स्टेटमेंट में अंकगणित के भाव और NULL मान
स्तंभ के नाम, संचालक और स्थिर मानों का उपयोग करके किसी अंकगणितीय अभिव्यक्ति का चयन किसी चयन कथन में किया जा सकता है। एक कॉलम पर लागू ऑपरेटर कॉलम के डेटा प्रकार पर निर्भर करता है। उदाहरण के लिए, अंकगणितीय संचालक चरित्र शाब्दिक मूल्यों के लिए फिट नहीं होंगे। उदाहरण के लिए,
SELECT employee_id, sal * 12 ANNUAL_SAL
FROM employees;
प्रत्येक कर्मचारी के वार्षिक वेतन की गणना करने के लिए उपरोक्त क्वेरी में अंकगणितीय अभिव्यक्ति (सैल * 12) शामिल है।
अंकगणितीय आपरेटर
ऑपरेटर्स कॉलम (ऑपरेंड्स के रूप में जाना जाता है) पर एक अलग परिणाम के लिए कार्य करते हैं। एक अभिव्यक्ति में कई ऑपरेटरों के मामले में, ऑपरेटर पूर्ववर्ती द्वारा निकासी का क्रम तय किया जाता है। यहाँ पूर्वता के प्रारंभिक नियम हैं -
जोड़ और घटाव से पहले गुणन और विभाजन होता है।
एक ही प्राथमिकता पर ऑपरेटरों का मूल्यांकन बाएं से दाएं किया जाता है।
ऑपरेटरों के डिफ़ॉल्ट व्यवहार को ओवरराइड करने के लिए पेरेथेस का उपयोग करें।
नीचे दी गई तालिका ऐसे मामलों में ऑपरेटरों की पूर्वता दर्शाती है। प्रिसेंस लेवल ऑपरेटर प्रतीक ऑपरेशन
Description Operator Precedence
Addition + Lowest
Subtraction - Lowest
Multiplication * Medium
Division / Medium
Brackets ( ) Highest
नीचे दिए गए प्रश्नों की जांच करें (ए), (बी), और (सी)
SQL> SELECT 2*35 FROM DUAL;
SQL> SELECT salary + 1500 FROM employees;
SQL> SELECT first_name, salary, salary + (commission_pct* salary) FROM employees;
क्वेरी (a) दो संख्याओं को गुणा करती है, जबकि (b) सभी कर्मचारियों के वेतन में $ 1500 का जोड़ दिखाती है। प्रश्न (ग) कर्मचारी के वेतन में कमीशन घटक को शामिल करता है। पूर्वता के अनुसार, पहले कमीशन की गणना वेतन पर की जाएगी, और फिर वेतन में जोड़ा जाएगा।
कॉलम उपनाम
एक उपनाम का उपयोग प्रदर्शन के दौरान एक स्तंभ या एक अभिव्यक्ति का नाम बदलने के लिए किया जाता है। स्तंभ या अभिव्यक्ति के लिए उपनाम किसी क्वेरी के आउटपुट में शीर्षक के रूप में प्रकट होता है। यह चयन क्वेरी में लंबी अभिव्यक्तियों को सार्थक शीर्षक प्रदान करने में उपयोगी है। डिफ़ॉल्ट रूप से, उपनाम रिक्त स्थान के बिना क्वेरी आउटपुट में अपरकेस में प्रकट होता है। इस व्यवहार को ओवरराइड करने के लिए, उपनाम और उपनाम नाम में रिक्त स्थान को संरक्षित करने के लिए दोहरे उद्धरण चिह्नों के भीतर संलग्न होना चाहिए।
SELECT price * 2 as DOUBLE_PRICE, price * 10 "Double Price"
FROM products;
DOUBLE_PRICE Double Price
------------ ------------
39.9 39.9
60 60
51.98 51.98
कॉन्टैक्नेशन ऑपरेटर्स
कॉन्टेक्टेशन ऑपरेटर का चयन एक सेलेक्ट क्वेरी में दो स्ट्रिंग वैल्यू या एक्सप्रेशन को जोड़ने के लिए किया जा सकता है। डबल वर्टिकल बार सिंबल का इस्तेमाल स्ट्रिंग कंसंट्रेशन ऑपरेटर के रूप में किया जाता है। यह केवल चरित्र और स्ट्रिंग स्तंभ मानों के लिए लागू होता है, जिसके परिणामस्वरूप एक नई वर्ण अभिव्यक्ति होती है। उदाहरण
SQL> SELECT 'ORACLE'||' CERTIFICATION' FROM dual;
उपरोक्त क्वेरी दो वर्ण शाब्दिक मानों का संघटन दिखाती है।
शाब्दिक
कोई हार्ड कोडित मूल्य, जो डेटाबेस में, सेलेक्ट क्लॉज में संग्रहित नहीं होता है, उसे लिटरल कहा जाता है। यह संख्या, वर्ण या दिनांक मान हो सकता है। वर्ण और दिनांक मान उद्धरण के भीतर संलग्न होने चाहिए। एसक्यूएल प्रश्नों में विभिन्न डेटा प्रकारों के शाब्दिक उपयोग करने के नीचे दिए गए एसक्यूएल प्रश्नों पर ध्यान दें।
नीचे दी गई क्वेरी उन्हें एक साथ जोड़ने के लिए दो वर्ण शाब्दिक का उपयोग करती है।
SQL> SELECT 'ORACLE'||' CERTIFICATION' FROM DUAL
नीचे दिए गए प्रश्न में कर्मचारी के वेतन को प्रिंट करने के लिए चरित्र शाब्दिक का उपयोग किया गया है।
SQL> SELECT first_name ||'earns'|| salary||' as of '|||sysdate
FROM employees
भाव संचालक
उद्धरण ऑपरेटर का उपयोग आपके स्वयं के उद्धरण चिह्न को निर्दिष्ट करने के लिए किया जाता है। आप एक सुविधाजनक सीमांकक चुन सकते हैं, जो डेटा पर डिपेंड करता है।
SELECT department_name|| ' Department' ||q'['s Manager Id: ]'|| manager_id
FROM departments;
शून्य
यदि किसी स्तंभ का कोई निश्चित मान नहीं है, तो उसे NULL माना जाता है। NULL मान अज्ञात या अनुपलब्ध को दर्शाता है। यह संख्यात्मक मानों के लिए शून्य नहीं है, वर्ण मानों के लिए रिक्त स्थान नहीं है।
NULL मान वाले स्तंभों को एक चयनित क्वेरी में चुना जा सकता है और एक अंकगणितीय अभिव्यक्ति का हिस्सा हो सकता है। NULL मानों का उपयोग करके कोई भी अंकगणितीय अभिव्यक्ति NULL में परिणत होती है। इस कारण से, NULL मान वाले स्तंभों को अलग-अलग तरीके से संभाला जाना चाहिए, जो कि NVL या NULLIF जैसे ओरेकल सप्लाई किए गए फ़ंक्शंस का उपयोग करके उनके वैकल्पिक मूल्यों को निर्दिष्ट करते हैं।
SQL> SELECT NULL + 1000 NUM
FROM DUAL;
NUM
--------
DISTINCT कीवर्ड
यदि डेटा में डुप्लिकेट परिणाम होने की उम्मीद है, तो डुप्लिकेट को समाप्त करने के लिए DISTINCT कीवर्ड का उपयोग करें और क्वेरी आउटपुट में केवल अद्वितीय परिणाम को डिप्लोमा करें। केवल चयनित कॉलम दोहराव के लिए मान्य हैं और पंक्तियों को क्वेरी आउटपुट से तार्किक रूप से समाप्त कर दिया जाएगा। ध्यान दिया जाए, DISTINCT कीवर्ड को सिलेक्ट क्लॉज के बाद ही दिखाई देना चाहिए।
नीचे दी गई सरल क्वेरी EMPLOYEES तालिका से अद्वितीय विभाग आईडी प्रदर्शित करने के लिए DISTINCT के उपयोग को प्रदर्शित करती है।
SQL> SELECT DISTINCT DEPARTMENT_ID
FROM employees;
DEPARTMENT_ID
---------------
10
20
30
40
DESCRIBE कमांड
किसी तालिका की संरचनात्मक मेटाडेटा डेटाबेस को स्तंभों की सूची के लिए क्वेरी करके प्राप्त की जा सकती है, जिसमें DESCRIBE कमांड का उपयोग करके इसे शामिल किया गया है। इसमें उपयोग किए गए कॉलम के नाम, उनकी अशक्त संपत्ति और डेटा प्रकार सूचीबद्ध होंगे।
Syntax:
DESC[RIBE] [SCHEMA].object name
उदाहरण के लिए,
DESC EMPLOYEE
EMPLOYEE तालिका संरचना यानी कॉलम, उनके डेटा प्रकार, सटीक और अशक्त संपत्ति प्रदर्शित करेगा।