इस लेख में, हम INNER JOIN अवधारणा के बारे में जानेंगे और SQL में WHERE क्लॉज के साथ इसका उपयोग कैसे करें।
एसक्यूएल में इनर जॉइन क्या है?
इनर जॉइन SQL में शामिल होने का एक प्रकार है। SQL में इनर जॉइन व्यापक रूप से इस्तेमाल किया जाने वाला जॉइन है। यह जॉइन केवल उन पंक्तियों को लौटाता है जो दोनों तालिकाओं में सामान्य हैं। इनर जॉइन का उपयोग दो टेबल को जोड़ने के लिए किया जाता है।
एसक्यूएल में इनर जॉइन का सिंटैक्स:
SELECT table1.columname1, table1.columnname2, table2.columnname1, table2.columnname2 FROM TABLE1 INNER JOIN TABLE2 ON table1.column = table2.column;
Table1.column =table2.column वह सामान्य कॉलम है जो इन दो तालिकाओं के बीच पैरेंट चाइल्ड संबंध बनाए रखता है।
SQL क्वेरी में इनर जॉइन में हमें कुछ चरणों का उपयोग करना होगा:
1. डेटाबेस नाम के बाद USE कीवर्ड का उपयोग करके डेटाबेस का चयन करके एक नया डेटाबेस बनाएं या मौजूदा डेटाबेस का उपयोग करें।
2. चयनित डेटाबेस के अंदर एक नई तालिका बनाएं, या आप पहले से बनाई गई तालिका का उपयोग कर सकते हैं।
3. यदि तालिका नई बनाई गई है, तो INSERT क्वेरी का उपयोग करके नए बनाए गए डेटाबेस में रिकॉर्ड डालें।
4. इनर जॉइन क्वेरी के बिना SELECT क्वेरी का उपयोग करके डाला गया डेटा देखें।
5 अब, हम SQL क्वेरी में इनर जॉइन का उपयोग करने के लिए तैयार हैं।
चरण 1:एक नया डेटाबेस बनाएं या पहले से बनाए गए डेटाबेस का उपयोग करें।
मैंने पहले ही एक डेटाबेस बना लिया है। मैं अपने मौजूदा बनाए गए डेटाबेस नाम, कंपनी का उपयोग करूंगा।
USE Company;
कंपनी डेटाबेस का नाम है।
जिन लोगों ने डेटाबेस नहीं बनाया है, वे डेटाबेस बनाने के लिए नीचे दी गई क्वेरी का पालन करते हैं:
CREATE DATABASE database_name;
डेटाबेस बनाने के बाद, डेटाबेस नाम के बाद USE कीवर्ड का उपयोग करके डेटाबेस का चयन करें।
चरण 2:एक नई तालिका बनाएं या पहले से मौजूद तालिका का उपयोग करें:
मैंने पहले ही एक टेबल बना लिया है। मैं कर्मचारी और प्रबंधक नाम की मौजूदा तालिका का उपयोग करूंगा क्योंकि हम इनर जॉइन क्वेरी को निष्पादित कर रहे हैं।
नई तालिका बनाने के लिए, नीचे दिए गए CREATE TABLE सिंटैक्स का पालन करें:
CREATE TABLE table_name(
columnname1 datatype(column size),
columnname2 datatype(column size),
columnname3 datatype(column size)
);
चरण 3:INSERT क्वेरी का उपयोग करके नई बनाई गई तालिका में रिकॉर्ड डालें
तालिका में नए रिकॉर्ड सम्मिलित करने के लिए नीचे दिए गए सिंटैक्स का उपयोग करें:
INSERT INTO table_name VALUES(value1, value2, value3);
चरण 4: चयन क्वेरी का उपयोग करके रिकॉर्ड देखें।
निम्नलिखित सिंटैक्स का उपयोग करके तालिका से रिकॉर्ड देखें:
SELECT * FROM table_name;
निम्न क्वेरी कर्मचारियों के रिकॉर्ड प्रदर्शित करेगी।
SELECT * FROM Employees;
उपरोक्त SELECT क्वेरी का आउटपुट है:
कर्मचारी | FIRST_NAME | LAST_NAME | वेतन | शहर | विभाग | मैनेजरिड |
1001 | वैभवी | मिश्रा | 65500 | पुणे | ओरेकल | 1 |
1002 | वैभव | शर्मा | 60000 | नोएडा | सी# | 5 |
1003 | निखिल | वाणी | 50500 | जयपुर | FMW | 2 |
2001 | प्राची | शर्मा | 55500 | चंडीगढ़ | ओरेकल | 1 |
2002 | भावेश | जैन | 65500 | पुणे | FMW | 2 |
2003 | रुचिका | जैन | 50000 | मुंबई | सी# | 5 |
3001 | प्रानोटी | शेंडे | 55500 | पुणे | जावा | 3 |
3002 | अनुजा | WANRE | 50500 | जयपुर | FMW | 2 |
3003 | दीपम | जौहारी | 58500 | मुंबई | जावा | 3 |
4001 | राजेश | GOUD | 60500 | मुंबई | परीक्षण | 4 |
4002 | अश्विनी | बगत | 54500 | नोएडा | जावा | 3 |
4003 | रुचिका | अग्रवाल | 60000 | दिल्ली | ओरेकल | 1 |
5001 | ARCHIT | शर्मा | 55500 | दिल्ली | परीक्षण | 4 |
5002 | संकेट | चौहान | 70000 | हैदराबाद | जावा | 3 |
5003 | रोशन | NEHTE | 48500 | चंडीगढ़ | सी# | 5 |
6001 | राहुल | निकम | 54500 | बैंगलोर | परीक्षण | 4 |
6002 | आतिश | जाधव | 60500 | बैंगलोर | सी# | 5 |
6003 | निकिता | इंगले | 65000 | हैदराबाद | ओरेकल | 1 |
निम्न क्वेरी प्रबंधक के रिकॉर्ड प्रदर्शित करेगी।
SELECT * FROM Manager;
उपरोक्त SELECT क्वेरी का आउटपुट है:
प्रबंधक | manager_name | प्रबंधक_विभाग |
1 | स्नेहदीप कौर | ओरेकल |
2 | कीर्ति कीर्तन | FMW |
3 | अभिषेक मनीष | जावा |
4 | अनुपम मिश्रा | परीक्षण |
5 | आकाश कदम | सी# |
निम्न क्वेरी लैपटॉप के रिकॉर्ड प्रदर्शित करेगी।
SELECT * FROM Laptop;
उपरोक्त SELECT क्वेरी का आउटपुट है:
लैपटॉपिड | नाम | कर्मचारी |
101 | डेल | शून्य |
102 | हिमाचल प्रदेश | 1002 |
103 | लेनोवो | शून्य |
104 | हिमाचल प्रदेश | 3003 |
105 | डेल | 4002 |
106 | लेनोवो | 4003 |
107 | डेल | 5001 |
108 | हिमाचल प्रदेश | शून्य |
109 | डेल | शून्य |
110 | हिमाचल प्रदेश | शून्य |
111 | लेनोवो | 2002 |
112 | लेनोवो | 6003 |
113 | हिमाचल प्रदेश | 1003 |
चरण 5:हम प्रश्नों में INNER JOIN का उपयोग करने के लिए तैयार हैं
आइए उदाहरणों की मदद से इनर जॉइन को समझते हैं।
उदाहरण 1: इनर जॉइन का उपयोग करके कर्मचारी आईडी, प्रथम नाम, अंतिम नाम, वेतन, कर्मचारी की तालिका से शहर और प्रबंधक तालिका से प्रबंधक आईडी और प्रबंधक का नाम प्रदर्शित करने के लिए एक प्रश्न लिखें।
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, E.CITY, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID;
उपरोक्त प्रश्न में, हमने कर्मचारी आईडी, प्रथम नाम, अंतिम नाम, वेतन, कर्मचारी की तालिका से शहर और प्रबंधक आईडी, प्रबंधक तालिका से प्रबंधक का नाम प्राप्त किया है जहां कर्मचारी तालिका प्रबंधक आईडी कॉलम प्रबंधक तालिका प्रबंधक आईडी कॉलम के बराबर है। क्वेरी दोनों तालिकाओं से सभी मिलान रिकॉर्ड लौटाएगी। प्रबंधक आईडी दोनों तालिकाओं के बीच एक सामान्य स्तंभ है। ई कर्मचारी तालिका के लिए उपनाम नाम है, जबकि एम प्रबंधक तालिका के लिए है। प्रबंधक आईडी कॉलम कर्मचारी तालिका में एक विदेशी कुंजी के रूप में कार्य करता है। प्रबंधक आईडी प्रबंधक तालिका में प्राथमिक कुंजी के रूप में कार्य करती है, जो दो तालिकाओं के बीच अभिभावक-बाल संबंध बनाती है।
उपरोक्त क्वेरी का आउटपुट है:
कर्मचारी | FIRST_NAME | LAST_NAME | वेतन | शहर | विभाग | मैनेजरिड |
1001 | वैभवी | मिश्रा | 65500 | पुणे | ओरेकल | 1 |
2001 | प्राची | शर्मा | 55500 | चंडीगढ़ | ओरेकल | 1 |
4003 | रुचिका | अग्रवाल | 60000 | दिल्ली | ओरेकल | 1 |
6003 | निकिता | इंगले | 65000 | हैदराबाद | ओरेकल | 1 |
1003 | निखिल | वाणी | 50500 | जयपुर | FMW | 2 |
2002 | भावेश | जैन | 65500 | पुणे | FMW | 2 |
3002 | अनुजा | WANRE | 50500 | जयपुर | FMW | 2 |
3001 | प्रानोटी | शेंडे | 55500 | पुणे | जावा | 3 |
3003 | दीपम | जौहारी | 58500 | मुंबई | जावा | 3 |
4002 | अश्विनी | बगत | 54500 | नोएडा | जावा | 3 |
5002 | संकेट | चौहान | 70000 | हैदराबाद | जावा | 3 |
4001 | राजेश | GOUD | 60500 | मुंबई | परीक्षण | 4 |
5001 | ARCHIT | शर्मा | 55500 | दिल्ली | परीक्षण | 4 |
6001 | राहुल | निकम | 54500 | बैंगलोर | परीक्षण | 4 |
1002 | वैभव | शर्मा | 60000 | नोएडा | सी# | 5 |
2003 | रुचिका | जैन | 50000 | मुंबई | सी# | 5 |
5003 | रोशन | NEHTE | 48500 | चंडीगढ़ | सी# | 5 |
6002 | आतिश | जाधव | 60500 | बैंगलोर | सी# | 5 |
डिफ़ॉल्ट प्रबंधक आईडी द्वारा रिकॉर्ड आरोही क्रम में प्रदर्शित होते हैं।
उदाहरण 2: कर्मचारी की तालिका से कर्मचारी आईडी, प्रथम नाम, अंतिम नाम, शहर और विभाग प्रदर्शित करने के लिए एक प्रश्न लिखें और प्रबंधक आईडी और प्रबंधक तालिका से प्रबंधक का नाम इनर जॉइन का उपयोग करके जहां कर्मचारी विभाग C# है।
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.CITY, E.DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE DEPARTMENT = ‘C#’;
उपरोक्त प्रश्न में, हमने कर्मचारी तालिका से कर्मचारी आईडी, प्रथम नाम, अंतिम नाम, शहर और विभाग, प्रबंधक आईडी, और प्रबंधक तालिका से प्रबंधक नाम प्राप्त किया है, जहां प्रबंधक तालिका से प्रबंधक आईडी केवल प्रबंधक तालिका से प्रबंधक आईडी के बराबर है वे कर्मचारी रिकॉर्ड करते हैं जिनका कर्मचारी विभाग C# है।
उपरोक्त क्वेरी का आउटपुट है:
कर्मचारी | FIRST_NAME | LAST_NAME | वेतन | शहर | विभाग | मैनेजरिड |
1002 | वैभव | शर्मा | 60000 | नोएडा | सी# | 5 |
2003 | रुचिका | जैन | 50000 | मुंबई | सी# | 5 |
5003 | रोशन | NEHTE | 48500 | चंडीगढ़ | सी# | 5 |
6002 | आतिश | जाधव | 60500 | बैंगलोर | सी# | 5 |
उपरोक्त आउटपुट में, हम देख सकते हैं कि केवल उन कर्मचारियों से रिकॉर्ड प्राप्त किए गए हैं जिनका विभाग सी # है। हम INNER जॉइन के साथ WHERE क्लॉज का उपयोग करते हैं।
उदाहरण 3: इनर जॉइन का उपयोग करके कर्मचारी आईडी, प्रथम नाम, वेतन, शहर, और कर्मचारी की तालिका से विभाग, और लैपटॉप तालिका से लैपटॉप आईडी और लैपटॉप का नाम प्रदर्शित करने के लिए एक प्रश्न लिखें।
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY, E.DEPARTMENT, L.LAPTOPID, L.NAME FROM EMPLOYEES E INNER JOIN LAPTOP L ON E.EMPLOYEEID = L.EMPLOYEEID;
उपरोक्त प्रश्न में, हमने कर्मचारी आईडी, प्रथम नाम, वेतन, शहर और विभाग कर्मचारियों की तालिका से, और लैपटॉप आईडी, और लैपटॉप तालिका से नाम प्राप्त किया है जहां कर्मचारी तालिका से कर्मचारी आईडी लैपटॉप तालिका से कर्मचारी आईडी के बराबर है . कर्मचारी आईडी लैपटॉप तालिका में एक विदेशी कुंजी है, जो कर्मचारी तालिका और लैपटॉप तालिका के बीच अभिभावक-बाल संबंध बनाता है।
उपरोक्त क्वेरी का आउटपुट है:
कर्मचारी | FIRST_NAME | वेतन | शहर | विभाग | लैपटॉपिड | नाम |
1002 | वैभव | 60000 | नोएडा | सी# | 102 | हिमाचल प्रदेश |
3003 | दीपम | 58500 | मुंबई | जावा | 104 | हिमाचल प्रदेश |
4002 | अश्विनी | 54500 | नोएडा | जावा | 105 | डेल |
4003 | रुचिका | 60000 | दिल्ली | ओरेकल | 106 | लेनोवो |
5001 | ARCHIT | 55500 | दिल्ली | परीक्षण | 107 | डेल |
2002 | भावेश | 65500 | पुणे | FMW | 111 | लेनोवो |
6003 | निकिता | 65000 | हैदराबाद | ओरेकल | 112 | लेनोवो |
1003 | निखिल | 50500 | जयपुर | FMW | 113 | हिमाचल प्रदेश |
दिए गए आउटपुट में केवल वही रिकॉर्ड प्रदर्शित होते हैं जिन्हें लैपटॉप सौंपा गया है।
उदाहरण 4: कर्मचारी तालिका से कर्मचारी आईडी, पहला नाम, वेतन और विभाग प्रदर्शित करने के लिए एक प्रश्न लिखें, और प्रबंधक आईडी और प्रबंधक का नाम प्रबंधक तालिका से आंतरिक जुड़ाव का उपयोग करके जहां वेतन> 57000 या विभाग Oracle है।
SELECT EMPLOYEEID, FIRST_NAME, SALARY, DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID = M.MANAGERID WHERE SALARY > 57000 OR DEPARTMENT = 'ORACLE';
उपरोक्त प्रश्न में, हमने कर्मचारी आईडी, प्रथम नाम, वेतन और विभाग को कर्मचारी तालिका से प्राप्त किया है, और प्रबंधक आईडी और प्रबंधक का नाम प्रबंधक तालिका से प्राप्त किया है जहां कर्मचारी तालिका से प्रबंधक आईडी प्रबंधक से केवल उन कर्मचारियों के प्रबंधक आईडी के बराबर है जिनके वेतन 57000 से अधिक है या विभाग Oracle है।
उपरोक्त क्वेरी का आउटपुट है:
कर्मचारी | FIRST_NAME | LAST_NAME | वेतन | शहर | विभाग | मैनेजरिड |
1001 | वैभवी | मिश्रा | 65500 | पुणे | ओरेकल | 1 |
2001 | प्राची | शर्मा | 55500 | चंडीगढ़ | ओरेकल | 1 |
4003 | रुचिका | अग्रवाल | 60000 | दिल्ली | ओरेकल | 1 |
6003 | निकिता | इंगले | 65000 | हैदराबाद | ओरेकल | 1 |
2002 | भावेश | जैन | 65500 | पुणे | FMW | 2 |
3003 | दीपम | जौहारी | 58500 | मुंबई | जावा | 3 |
5002 | संकेट | चौहान | 70000 | हैदराबाद | जावा | 3 |
4001 | राजेश | GOUD | 60500 | मुंबई | परीक्षण | 4 |
1002 | वैभव | शर्मा | 60000 | नोएडा | सी# | 5 |
6002 | आतिश | जाधव | 60500 | बैंगलोर | सी# | 5 |
उपरोक्त आउटपुट में, केवल वे कर्मचारी रिकॉर्ड प्रदर्शित होते हैं जिनका वेतन 57000 से अधिक है या कर्मचारी विभाग 'ओरेकल' है। यदि क्वेरी में दी गई शर्तों में से कोई एक सत्य है तो OR ऑपरेटर रिकॉर्ड प्रदर्शित करता है।