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

एसक्यूएल को छोड़कर

एसक्यूएल में, हम शायद एक या एक से अधिक टेबल से संयुक्त परिणाम प्राप्त करने के लिए जॉइन क्लॉज का उपयोग करते हैं। लेकिन कभी-कभी, हम ऐसा परिणाम चाहते हैं जिसमें एक तालिका का डेटा हो, और रिकॉर्ड दूसरी तालिका में उपलब्ध नहीं होना चाहिए। उस स्थिति में, SQL का कॉन्सेप्ट नाम SQL एक्सेप्ट है।

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

नियमों को छोड़कर SQL

SQL में EXCEPT क्वेरी का उपयोग करने से पहले हमें सभी नियमों और विनियमों को समझना चाहिए:

  • दी गई तालिका में कॉलम की संख्या और क्रम संपूर्ण SELECT क्वेरी में समान होना चाहिए।
  • स्तंभ का डेटा प्रकार समान या संगत होना चाहिए।

SQL EXCEPT

. के लिए सिंटैक्स
SELECT * FROM table1 EXCEPT SELECT * FROM table2;

टेबल 1 और टेबल 2 टेबल के नाम होंगे।

उदाहरण:

मान लें कि हमारे पास समान संख्या में स्तंभों और स्तंभों के क्रम वाली दो तालिकाएँ हैं।

  • तालिका 1:T1, स्तंभों की संख्या:3, डेटा:A, B, C, D
  • तालिका 2:T2, स्तंभों की संख्या:3, डेटा:B, D, F, G

जब भी हम इन दो तालिकाओं पर EXCEPT क्वेरी निष्पादित करते हैं, तो हमें A और C प्राप्त होंगे क्योंकि ये दोनों डेटा तालिका T2, B और D में मौजूद नहीं हैं, दोनों तालिकाओं में सामान्य हैं, जो छोड़ देते हैं।

आइए उदाहरणों के साथ SQL EXCEPT कॉन्सेप्ट को समझते हैं। दिए गए अभिलेखों के साथ निम्नलिखित तालिकाओं पर विचार करें।

तालिका1:Emp

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

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

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

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

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

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

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

उदाहरण 1: मान लीजिए कि हम EXCEPT ऑपरेटर का उपयोग करके उपरोक्त दो तालिकाओं Emp और Employee को हमारी SELECT क्वेरी में शामिल करना चाहते हैं।

SELECT EMPLOYEEID, CONCAT(FIRST_NAME, LAST_NAME) AS NAME, CITY, DEPARTMENT MANAGER1.MANAGERID, MANAGER1.MANAGER_NAME FROM EMPLOYEE INNER JOIN MANAGER ON EMP.MANAGERID = MANAGER.MANAGERID EXCEPT SELECT EMPLOYEEID, CONCAT(FIRST_NAME, LAST_NAME) AS NAME, CITY, DEPARTMENT, MANAGER1.MANAGERID, MANAGER1.MANAGER_NAME FROM EMPLOYEE INNER JOIN MANAGER1 ON EMPLOYEE.MANAGERID = MANAGER1.MANAGERID;

हम Emp और कर्मचारी तालिका के बीच INNER JOIN क्लॉज का उपयोग कर रहे हैं जहाँ हम EXCEPT ऑपरेटर का उपयोग करके कर्मचारी आईडी, नाम, शहर, विभाग, प्रबंधक आईडी और प्रबंधक का नाम प्रदर्शित करते हैं। उपरोक्त क्वेरी दोनों तालिकाओं के बीच केवल उन्हीं अद्वितीय मानों को प्रदर्शित करेगी।

उपरोक्त क्वेरी निम्न आउटपुट देती है:

यदि हम टेबल डेटा का निरीक्षण करते हैं, तो दोनों टेबल एम्प टेबल और कर्मचारी तालिका, यानी कर्मचारी आईडी 3002 और 4001 के बीच दो सामान्य डेटा हैं। कर्मचारी आईडी 4001 विवरण 3002 को छोड़कर प्रदर्शित होते हैं। क्योंकि कर्मचारी आईडी 3002 प्रबंधक का नाम दोनों तालिकाओं में समान है प्रबंधक और प्रबंधक1 लेकिन कर्मचारी आईडी 4001 प्रबंधक नाम दोनों तालिकाओं में भिन्न हैं, कर्मचारी आईडी 4002 विवरण प्रदर्शित होते हैं।

उदाहरण 2: मान लीजिए कि हम EXCEPT ऑपरेटर का उपयोग करके अपनी SELECT क्वेरी में उपरोक्त दो तालिकाओं Emp और Employee में शामिल होना चाहते हैं और परिणाम को उनके वेतन द्वारा अवरोही क्रम में क्रमबद्ध करते हैं। हम SQL क्वेरी में सेट किए गए परिणाम को सॉर्ट करने के लिए ORDER BY क्लॉज का उपयोग करेंगे।

SELECT EMPLOYEEID, CONCAT(FIRST_NAME, LAST_NAME) AS NAME, CITY, SALARY, MANAGER1.MANAGERID, MANAGER1.MANAGER_NAME FROM EMPLOYEE INNER JOIN MANAGER ON EMP.MANAGERID = MANAGER.MANAGERID EXCEPT SELECT EMPLOYEEID, CONCAT(FIRST_NAME, LAST_NAME) AS NAME, CITY, SALARY, MANAGER1.MANAGERID, MANAGER1.MANAGER_NAME FROM EMPLOYEE INNER JOIN MANAGER1 ON EMPLOYEE.MANAGERID = MANAGER1.MANAGERID ORDER BY SALARY;

उपरोक्त क्वेरी निम्न आउटपुट दिखाती है:

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

SELECT * FROM EMP WHERE SALARY > 55000 EXCEPT SELECT * FROM EMPLOYEE WHERE CITY IN ('Pune', 'Mumbai', 'Jaipur');   

उपरोक्त क्वेरी पहले सेलेक्ट स्टेटमेंट में उन कर्मचारियों के सभी विवरण प्राप्त होते हैं जिनका वेतन Emp तालिका से 55000 से अधिक है। दूसरा सेलेक्ट स्टेटमेंट उन कर्मचारियों के सभी विवरण प्राप्त करता है जिनके शहरों में कर्मचारी तालिका से पुणे, मुंबई, जयपुर शामिल हैं। फिर, EXCEPT ऑपरेटर को Emp तालिका और कर्मचारी तालिका के बीच निष्पादित किया जाएगा।

यह निम्न आउटपुट देता है:


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल ड्रॉप टेबल स्टेटमेंट और विभिन्न उपयोग के मामले

  2. Linux और UNIX को Azure SQL डेटा वेयरहाउस से कनेक्ट करना

  3. पहचान कॉलम को चौड़ा करने के प्रभाव को कम करना - भाग 2

  4. डेटाबेस के डेटा को फ़िल्टर करने के लिए अभिव्यक्तियों का उपयोग करना

  5. एसक्यूएल और नोएसक्यूएल के बीच अंतर