Database
 sql >> डेटाबेस >  >> RDS >> Database

SQL में सेट ऑपरेटर्स

दो प्रश्नों को जोड़ने या संयोजित करने के लिए उपयोग किया जाने वाला ऑपरेटर कोई और नहीं बल्कि SET ऑपरेटर है। SET ऑपरेटरों में वर्गीकृत ऑपरेटर इस प्रकार हैं:

  1. यूनियन ऑपरेटर।
  2. यूनियन ऑल' ऑपरेटर।
  3. इंटर्सेक्ट ऑपरेटर।
  4. माइनस ऑपरेटर।

SET ऑपरेटर का उपयोग करके संचालन के लिए पालन किए जाने वाले नियम इस प्रकार हैं:

  • कॉलम की संख्या और कॉलम का क्रम समान होना चाहिए।
  • डेटा प्रकार संगत होना चाहिए।

आइए प्रत्येक SET संचालकों को उदाहरणों के साथ समझते हैं।

दिए गए अभिलेखों के साथ निम्नलिखित तालिकाओं पर विचार करें।

तालिका1:कर्मचारी

कर्मचारी FIRST_NAME LAST_NAME वेतन शहर विभाग मैनेजरिड WORKING_HOURS लिंग
1001 वैभवी मिश्रा 65000 पुणे ओरेकल 1 12 एफ
1002 वैभव शर्मा 60000 नोएडा ओरेकल 1 9 एम
1003 निखिल वाणी 50000 जयपुर FMW 2 10 एम
2001 प्राची शर्मा 55500 चंडीगढ़ ओरेकल 1 10 एफ
2002 भावेश जैन 65500 पुणे FMW 2 12 एम
2003 रुचिका जैन 50000 मुंबई परीक्षण 4 9 एफ
3001 प्रानोटी शेंडे 55500 पुणे जावा 3 9 एफ
3002 अनुजा कहां 50500 जयपुर FMW 2 9 एफ
3003 दीपम जौहारी 58500 मुंबई जावा 3 12 एम
4001 राजेश GOUD 60500 मुंबई परीक्षण 4 10 एम

तालिका2:कर्मचारी।

कर्मचारी FIRST_NAME LAST_NAME वेतन शहर विभाग मैनेजरिड WORKING_HOURS लिंग
1001 वैभव शर्मा 65000 पुणे ओरेकल 1 12 एम
1002 निखिल वाणी 60000 नोएडा ओरेकल 1 9 एम
1003 वैभवी मिश्रा 50000 जयपुर FMW 2 10 एफ
2001 रुचिका जैन 55500 चंडीगढ़ ओरेकल 1 10 एफ
2002 प्राची शर्मा 65500 पुणे FMW 2 12 एफ
2003 भावेश जैन 50000 मुंबई परीक्षण 4 9 एम
3001 दीपम जौहारी 55500 पुणे जावा 3 9 एम
3002 अनुजा कहां 50500 जयपुर FMW 2 9 एफ
3003 प्रनोती शेंडे 58500 मुंबई जावा 3 12 एफ
4001 राजेश GOUD 60500 मुंबई परीक्षण 4 10 एम

तालिका3:प्रबंधक।

प्रबंधक manager_name प्रबंधक_विभाग
1 स्नेहदीप कौर ओरेकल
2 कीर्ति कीर्तन FMW
3 अभिषेक मनीष जावा
4 अनुपम मिश्रा परीक्षण

तालिका4:प्रबंधक1.

प्रबंधक manager_name प्रबंधक_विभाग
1 इशिता अग्रवाल ओरेकल
2 कीर्ति कीर्तन FMW
3 अभिषेक मनीष जावा
4 पॉल ओकिप परीक्षण

यूनियन ऑपरेटर

यूनियन ऑपरेटर पहला ऑपरेटर है जिसका उपयोग दो या दो से अधिक SELECT स्टेटमेंट को मर्ज या संयोजित करने के लिए किया जाता है। यदि और केवल यदि उनके स्तंभों की संख्या और स्तंभों का क्रम समान है।

UNION ऑपरेशन के बाद प्राप्त परिणाम में डुप्लिकेट पंक्तियों पर विचार नहीं किया जाएगा।

यूनियन ऑपरेशन के लिए सिंटैक्स इस प्रकार है,

SELECT * FROM TABLE_NAME1 UNION SELECT * FROM TABLE_NAME2;

उदाहरण 1: कर्मचारी तालिका और कर्मचारी तालिका के बीच यूनियन संचालन करने के लिए एक क्वेरी निष्पादित करें।

SELECT * FROM EMPLOYEES UNION SELECT * FROM EMPLOYEE;

उपरोक्त क्वेरी में, हमने दो सेलेक्ट प्रश्नों का उपयोग किया है। पहली चयन क्वेरी कर्मचारियों से डेटा पुनर्प्राप्त करती है और दूसरी चयन क्वेरी कर्मचारी डेटा से डेटा पुनर्प्राप्त करती है, और यूनियन ऑपरेशन दोनों चयन प्रश्नों पर किया जाता है।

यूनियन ऑपरेशन दोनों तालिकाओं के बीच डुप्लिकेट पंक्तियों को त्याग देगा। निम्न आउटपुट इस प्रकार दिखाया गया है:

डुप्लिकेट रिकॉर्ड को छोड़कर दोनों तालिका रिकॉर्ड प्रदर्शित होते हैं।

उदाहरण 2: कर्मचारी तालिका और कर्मचारी तालिका के बीच यूनियन संचालन करने के लिए एक क्वेरी निष्पादित करें। लेकिन कर्मचारियों की तालिका से केवल उन कर्मचारियों के रिकॉर्ड प्रदर्शित करें जो शहर मुंबई से संबंधित हैं और कर्मचारी तालिका से केवल उन कर्मचारियों के रिकॉर्ड प्रदर्शित करें जिनका कर्मचारी वेतन 50000 से अधिक और 60000 से कम है।

SELECT * FROM EMPLOYEES WHERE CITY = 'MUMBAI' UNION SELECT * FROM EMPLOYEE WHERE SALARY > 50000 AND SALARY < 60000;

उपरोक्त क्वेरी में, हमने दो सेलेक्ट प्रश्नों का उपयोग किया है। पहली चयन क्वेरी केवल उन रिकॉर्ड को प्राप्त करती है जिसका कर्मचारी कर्मचारी तालिका से मुंबई शहर से संबंधित है। और दूसरी सेलेक्ट क्वेरी के साथ यूनियन ऑपरेशन निष्पादित करें केवल उन रिकॉर्ड्स को प्राप्त करें जिनके कर्मचारी वेतन 50000 से अधिक है लेकिन कर्मचारी तालिका से 60000 से कम है। UNION ऑपरेशन दोनों तालिकाओं के बीच डुप्लिकेट पंक्तियों को त्याग देगा।

निम्न आउटपुट इस प्रकार दिखाया गया है:

डुप्लिकेट रिकॉर्ड को छोड़कर दोनों तालिका रिकॉर्ड प्रदर्शित होते हैं।

उदाहरण 3: कर्मचारी तालिका और कर्मचारी तालिका के बीच यूनियन संचालन करने के लिए एक क्वेरी निष्पादित करें। हम कर्मचारी तालिका से केवल वही रिकॉर्ड चाहते हैं जिसका कर्मचारी शहर 'पुणे' और 'जयपुर' से संबंधित है।

SELECT* FROM EMPLOYEES WHERE CITY IN ('PUNE', 'JAIPUR') UNION SELECT * FROM EMPLOYEE;

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

यूनियन ऑपरेशन दोनों तालिकाओं के बीच डुप्लिकेट पंक्तियों को त्याग देगा। निम्न आउटपुट इस प्रकार दिखाया गया है:

जैसा कि हम सभी देख सकते हैं, परिणाम पहले पांच रिकॉर्ड वे कर्मचारी हैं जो पुणे या जयपुर शहर से संबंधित हैं। और बाकी रिकॉर्ड कर्मचारी तालिका से हैं, दूसरी SELECT क्वेरी।

डुप्लिकेट रिकॉर्ड को छोड़कर दोनों तालिका रिकॉर्ड प्रदर्शित होते हैं।

उदाहरण 4: कर्मचारी तालिका और कर्मचारी तालिका के बीच यूनियन संचालन करने के लिए एक क्वेरी निष्पादित करें। हम कर्मचारी तालिका से केवल वे रिकॉर्ड चाहते हैं जिनके कर्मचारी का पहला नाम V से शुरू होता है।

SELECT * FROM EMPLOYEES UNION SELECT * FROM EMPLOYEE WHERE FIRST_NAME LIKE 'V%';

उपरोक्त क्वेरी में, हमने दो सेलेक्ट प्रश्नों का उपयोग किया है। पहली चयन क्वेरी कर्मचारी तालिका से सभी रिकॉर्ड प्राप्त करती है। यूनियन ऑपरेशन तालिका कर्मचारी से दूसरी चयन क्वेरी से प्राप्त रिकॉर्ड्स के साथ किया जाता है जिसका पहला नाम 'वी' से शुरू होता है।

यूनियन ऑपरेशन दोनों तालिकाओं के बीच डुप्लिकेट पंक्तियों को त्याग देगा। निम्न आउटपुट इस प्रकार दिखाया गया है:

जैसा कि हम सभी पहले 10 परिणाम कर्मचारी तालिका से कर सकते हैं, और शेष कर्मचारी तालिका से हैं जिसका कर्मचारी पहला नाम 'वी' से शुरू होता है।

उदाहरण 5: प्रबंधक तालिका और प्रबंधक1 तालिका के बीच UNION संचालन करने के लिए एक क्वेरी निष्पादित करें।

SELECT * FROM MANAGER UNION SELECT * FROM MANAGER1;

उपरोक्त क्वेरी में, हमने दो सेलेक्ट प्रश्नों का उपयोग किया है। पहली चयन क्वेरी प्रबंधक से डेटा पुनर्प्राप्त करती है और दूसरी चयन क्वेरी प्रबंधक 1 डेटा से डेटा पुनर्प्राप्त करती है, और यूनियन ऑपरेशन दोनों चयन प्रश्नों पर किया जाता है।

यूनियन ऑपरेशन दोनों तालिकाओं के बीच डुप्लिकेट पंक्तियों को त्याग देगा। निम्न आउटपुट इस प्रकार दिखाया गया है:

डुप्लिकेट रिकॉर्ड को छोड़कर दोनों तालिका रिकॉर्ड प्रदर्शित होते हैं।

यूनियन सभी ऑपरेटर्स

यूनियन ऑल ऑपरेटर दोनों प्रश्नों के सभी डेटा को जोड़ता है। UNION ऑपरेटर में, परिणाम में डुप्लिकेट रिकॉर्ड पर विचार नहीं किया गया था, लेकिन UNION ALL ने UNION ALL ऑपरेशन के बाद प्राप्त परिणाम में डुप्लिकेट रिकॉर्ड माना।

UNION ALL ऑपरेशन का सिंटैक्स इस प्रकार है,

SELECT * FROM TABLE_NAME1 UNION ALL SELECT * FROM TABLE_NAME2;

उदाहरण 1: कर्मचारी तालिका और कर्मचारी तालिका के बीच यूनियन सभी संचालन करने के लिए एक क्वेरी निष्पादित करें।

SELECT * FROM EMPLOYEES UNION ALL SELECT * FROM EMPLOYEE;

उपरोक्त क्वेरी में, हमने दो सेलेक्ट प्रश्नों का उपयोग किया है। पहली चयन क्वेरी कर्मचारियों से डेटा प्राप्त करती है और दूसरी चयन क्वेरी द्वारा प्राप्त डेटा के साथ यूनियन सभी ऑपरेशन करती है, कर्मचारी तालिका से डेटा पुनर्प्राप्त करती है।

निम्न आउटपुट इस प्रकार दिखाया गया है:

सभी रिकॉर्ड कर्मचारी और कर्मचारी दोनों टेबल से प्रदर्शित होंगे, डुप्लिकेट रिकॉर्ड भी प्रदर्शित होते हैं क्योंकि हम यूनियन ऑल ऑपरेशन करते हैं।

उदाहरण 2: कर्मचारी तालिका और कर्मचारी तालिका के बीच यूनियन सभी संचालन करने के लिए एक क्वेरी निष्पादित करें। लेकिन कर्मचारियों की तालिका से केवल उन कर्मचारियों के रिकॉर्ड प्रदर्शित करें जो शहर मुंबई से संबंधित हैं। कर्मचारी तालिका से, केवल उन कर्मचारियों के रिकॉर्ड जिनका कर्मचारी वेतन 60500 है और शहर 'मुंबई' है।

SELECT * FROM EMPLOYEES WHERE CITY = 'MUMBAI' UNION ALL SELECT * FROM EMPLOYEE WHERE SALARY = 60500 AND CITY = 'MUMBAI';

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

निम्न आउटपुट इस प्रकार दिखाया गया है:

दोनों तालिका रिकॉर्ड प्रदर्शित होते हैं, जिसमें डुप्लिकेट रिकॉर्ड भी शामिल हैं, जब हम UNION सभी संचालन करते हैं।

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

SELECT* FROM EMPLOYEES WHERE CITY IN ('PUNE', 'MUMBAI', 'JAIPUR') UNION ALL SELECT * FROM EMPLOYEE;

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

निम्न आउटपुट इस प्रकार दिखाया गया है:

दोनों तालिका रिकॉर्ड प्रदर्शित होते हैं, जिसमें डुप्लिकेट रिकॉर्ड भी शामिल हैं, जब हम UNION सभी संचालन करते हैं।

उदाहरण 4: प्रबंधक तालिका और प्रबंधक1 तालिका के बीच यूनियन सभी संचालन करने के लिए एक क्वेरी निष्पादित करें।

SELECT * FROM MANAGER UNION ALL SELECT * FROM MANAGER1;

उपरोक्त क्वेरी में, हमने दो सेलेक्ट प्रश्नों का उपयोग किया है। पहली चयन क्वेरी प्रबंधक से डेटा प्राप्त करती है और दूसरी चयन क्वेरी द्वारा प्राप्त डेटा के साथ यूनियन सभी संचालन करती है, प्रबंधक 1 तालिका से डेटा पुनर्प्राप्त करती है।

निम्न आउटपुट इस प्रकार दिखाया गया है:

सभी अभिलेख प्रबंधक और प्रबंधक1 दोनों तालिकाओं से प्रदर्शित किए जाएंगे; जब हम UNION सभी ऑपरेशन करते हैं तो डुप्लिकेट रिकॉर्ड प्रदर्शित होते हैं।

इंटर्सेक्ट ऑपरेटर्स

इंटरसेक्ट ऑपरेटर का उपयोग दो या दो से अधिक SELECT स्टेटमेंट को मिलाने के लिए किया जाता है, लेकिन यह केवल SELECT स्टेटमेंट के समान डेटा प्रदर्शित करता है।

इंटरसेक्ट ऑपरेशन के लिए सिंटैक्स इस प्रकार है,

SELECT * FROM TABLE_NAME1 INTERSECT SELECT * FROM TABLE_NAME2;

उदाहरण 1: कर्मचारी तालिका और कर्मचारी तालिका के बीच इंटरसेक्ट ऑपरेशन करने के लिए एक क्वेरी निष्पादित करें।

SELECT * FROM EMPLOYEES INTERSECT SELECT * FROM EMPLOYEE;

उपरोक्त क्वेरी में, हमने दो सेलेक्ट प्रश्नों का उपयोग किया है। पहली चयन क्वेरी कर्मचारियों से डेटा प्राप्त करती है और दूसरी चयन क्वेरी द्वारा प्राप्त डेटा के साथ इंटरसेक्ट ऑपरेशन करती है, कर्मचारी तालिका से डेटा पुनर्प्राप्त करती है।

निम्न आउटपुट इस प्रकार दिखाया गया है:

दोनों तालिकाओं से केवल समान रिकॉर्ड प्रदर्शित होंगे, क्योंकि हमने कर्मचारी तालिका और कर्मचारी तालिका के बीच इंटरसेक्ट ऑपरेशन किया था।

उदाहरण 2: प्रबंधक तालिका और प्रबंधक1 तालिका के बीच इंटरसेक्ट संचालन करने के लिए एक क्वेरी निष्पादित करें।

SELECT * FROM MANAGER INTERSECT SELECT * FROM MANAGER1;

उपरोक्त क्वेरी में, हमने दो सेलेक्ट प्रश्नों का उपयोग किया है। पहली चयन क्वेरी प्रबंधक से डेटा प्राप्त करती है और दूसरी चयन क्वेरी द्वारा प्राप्त डेटा के साथ इंटरसेक्ट ऑपरेशन करती है, प्रबंधक 1 तालिका से डेटा पुनर्प्राप्त करती है।

निम्न आउटपुट इस प्रकार दिखाया गया है:

दोनों तालिकाओं से केवल समान रिकॉर्ड प्रदर्शित होंगे, क्योंकि हमने प्रबंधक तालिका और प्रबंधक1 तालिका के बीच इंटरसेक्ट ऑपरेशन किया था।

माइनस ऑपरेटर्स

माइनस ऑपरेटर का उपयोग पहली क्वेरी में मौजूद पंक्तियों को वापस करने के लिए किया जाता है, लेकिन शेष प्रश्नों में बिना किसी डुप्लीकेट के अनुपस्थित रहता है।

माइनस ऑपरेशन का सिंटैक्स इस प्रकार है।

SELECT * FROM TABLE_NAME1 EXCEPT SELECT * FROM TABLE_NAME2;

नोट: माइनस कीवर्ड केवल ORACLE डेटाबेस में समर्थित है। हम समान ऑपरेशन करने के लिए अन्य डेटाबेस के लिए EXCEPT कीवर्ड का उपयोग कर सकते हैं।

उदाहरण 1: कर्मचारी तालिका और कर्मचारी तालिका के बीच माइनस ऑपरेशन करने के लिए एक क्वेरी निष्पादित करें।

SELECT * FROM EMPLOYEES EXCEPT SELECT * FROM EMPLOYEE;

उपरोक्त क्वेरी में, हमने दो सेलेक्ट प्रश्नों का उपयोग किया है। पहली चयन क्वेरी कर्मचारियों से डेटा प्राप्त करती है और दूसरी चयन क्वेरी द्वारा प्राप्त डेटा के साथ माइनस ऑपरेशन करती है, कर्मचारी तालिका से डेटा पुनर्प्राप्त करती है।

निम्न आउटपुट इस प्रकार दिखाया गया है:

दोनों तालिकाओं से केवल बेजोड़ रिकॉर्ड प्रदर्शित होंगे, क्योंकि हमने कर्मचारी तालिका और कर्मचारी तालिका के बीच माइनस ऑपरेशन किया था।

उदाहरण 2: प्रबंधक तालिका और प्रबंधक1 तालिका के बीच माइनस संचालन करने के लिए एक क्वेरी निष्पादित करें।

SELECT * FROM MANAGER EXCEPT SELECT * FROM MANAGER1;

उपरोक्त क्वेरी में, हमने दो सेलेक्ट प्रश्नों का उपयोग किया है। पहली चयन क्वेरी प्रबंधक से डेटा प्राप्त करती है और दूसरी चयन क्वेरी द्वारा प्राप्त डेटा के साथ माइनस ऑपरेशन करती है, प्रबंधक 1 तालिका से डेटा पुनर्प्राप्त करती है।

निम्न आउटपुट इस प्रकार दिखाया गया है:

दोनों टेबलों से केवल बेजोड़ रिकॉर्ड ही प्रदर्शित होंगे, क्योंकि हमने मैनेजर टेबल और मैनेजर1 टेबल के बीच माइनस ऑपरेशन किया था।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टी-एसक्यूएल मंगलवार #106 :ट्रिगर्स के बजाय

  2. बड़े डिलीट ऑपरेशंस को टुकड़ों में तोड़ें

  3. ईटीएल बनाम ईएलटी:हम मानते हैं, आप जज

  4. डेटा मॉडल वैश्वीकरण के बारे में याद रखने योग्य 7 प्रमुख बातें

  5. SQLintersection के लिए लास वेगास में हमसे जुड़ें और $100 बचाएं