Oracle में SubQueries
(1) एक सबक्वेरी या नेस्टेड क्वेरी एक अन्य SQL क्वेरी के भीतर एक क्वेरी है और WHERE क्लॉज के भीतर एम्बेडेड है। एक सबक्वेरी एक क्वेरी के भीतर एक क्वेरी है
(2) डेटा को वापस करने के लिए एक सबक्वेरी का उपयोग किया जाता है जिसका उपयोग मुख्य क्वेरी में डेटा को पुनर्प्राप्त करने के लिए और अधिक प्रतिबंधित करने की शर्त के रूप में किया जाएगा।
(3) उपश्रेणियाँ उन प्रश्नों का उत्तर देती हैं जिनमें कई भाग होते हैं। पैरेंट क्वेरी एक भाग का उत्तर देती है और उप क्वेरी दूसरे भाग का उत्तर देती है
(4) उपश्रेणियों का उपयोग SELECT, INSERT, UPDATE, और DELETE स्टेटमेंट के साथ-साथ ऑपरेटरों जैसे =, <,>,> =, <=, IN, BETWEEN आदि के साथ किया जा सकता है।
(5) FROM क्लॉज में सबक्वेरी का उपयोग करना इनलाइन व्यू . के रूप में जाना जाता है ।
(6) WHERE क्लॉज में सबक्वेरी का उपयोग करना नेस्टेड सबक्वेरी . कहलाता है . 255 तक नेस्टेड प्रश्नों की अनुमति है।
Oracle SubQueries के लिए कुछ दिशानिर्देश
(1) हमें उप प्रश्नों को हमेशा कोष्ठक में रखना होगा
(2) हमें तुलना ऑपरेटर के दाईं ओर सबक्वेरी रखने की जरूरत है
(3) सिंगल रो सबक्वेरी के साथ सिंगल रो ऑपरेटर और मल्टीपल रो सबक्वेरी के साथ मल्टीपल रो ऑपरेटर का उपयोग करें
सामान्य सिंटैक्स
SELECT col1, col2 FROM table1 WHERE col1 OPERATOR (SELECT col1 FROM table2 [WHERE])
एकल पंक्ति सबक्वेरी
यह परिणामों की केवल एक पंक्ति देता है और एकल पंक्ति ऑपरेटर का उपयोग करता है (सबसे आम समान ऑपरेटर (=) है)। अन्य ऑपरेटर हैं > ,<,>= ,=<
एकल पंक्ति उपश्रेणियाँ उसी तालिका या किसी अन्य तालिका से डेटा का चयन कर सकती हैं
SELECT ENAME FROM EMP WHERE SAL = (SELECT MIN(SAL) FROM EMP);SELECT ENAME FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM DEPT WHERE DNAME = 'RESEARCH');
एकाधिक पंक्ति सबक्वेरी
यह सबक्वेरी से परिणामों की कई पंक्तियाँ देता है, IN ऑपरेटर का उपयोग करता है। पिछली क्वेरी में, यदि एक से अधिक शोध विभाग होते, तो क्वेरी विफल हो जाती। सबक्वेरी में एक से अधिक पंक्तियों को वापस करने का उदाहरण
उपयोग किए जाने वाले अन्य ऑपरेटर कोई भी और सभी हैं
SELECT ENAME, DEPTNO FROM EMP WHERE DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE DNAME LIKE 'R%');
सहसंबंधित सबक्वेरी
एक सहसंबद्ध सबक्वेरी एक सबक्वेरी है जो पेरेंट क्वेरी के कॉलम पर निर्भर करती है। पैरेंट क्वेरी द्वारा संसाधित प्रत्येक पंक्ति के लिए एक सहसंबद्ध सबक्वेरी का मूल्यांकन किया जाता है। पैरेंट स्टेटमेंट SELECT, UPDATE या DELETE हो सकता है।
SELECT ENAME,SAL FROM EMP E1 WHERE SAL = (SELECT MAX(SAL) FROM EMP E2 WHERE E1.DEPTNO = E2.DEPTNO);
एम्पी और विभाग के समान डेटा के आधार पर, यहां परिणाम है
स्केलर सबक्वेरी
यह एक पंक्ति से ठीक एक मान लौटाता है, जिसका उपयोग अक्सर INSERT कथन के VALUES खंड में और ORDER BY या WHERE खंड और एक चयन खंड में किया जाता है:
SELECT ENAME, DEPTNO, (SELECT MAX(SAL) FROM EMP E2 WHERE E2.DEPTNO = E1.DEPTNO) HIGH_SAL FROM EMP E1 WHERE ENAME LIKE 'B%';
उप क्वेरी मास्टर क्वेरी के प्रत्येक निष्पादन के लिए एक बार निष्पादित होती है। एकल-पंक्ति सबक्वेरी का उपयोग केवल एकल-पंक्ति ऑपरेटरों के साथ किया जा सकता है
बहु-स्तंभ उपश्रेणियाँ
क्वेरी में किसी सबक्वेरी के SELECT क्लॉज़ में या UPDATE स्टेटमेंट में एक से ज़्यादा कॉलम हो सकते हैं
SELECT CITY,CITY_CODE,CITY_DESCRIPTION FROM LOCATIONS WHERE (LOCATION_ID, COUNTRY_ID) IN (SELECT LOCATION_ID, COUNTRY_ID FROM LOCATIONS WHERE STATE_PROVINCE = 'NEWYORK');
अन्य DML स्टेटमेंट में सबक्वेरी
उपश्रेणियों का उपयोग UPDATE, DELETE और INSERT कथनों में किया जा सकता है
Update Statement UPDATE EMP SET SALARY = (SELECT SALARY FROM EMP WHERE EMPLOYEE_ID = 112408) WHERE EMPLOYEE_ID = 193711; Insert Statement INSERT INTO DEPT (DEPT_ID, DEPT_NAME) VALUES ((SELECT MAX(DEPT_ID) FROM DEPT), 'NEW DEPT'); Delete Statement DELETE FROM CUSTOMERS WHERE AGE IN (SELECT AGE FROM CUST_BACK WHERE AGE > 40 );
संबंधित लेख
एसक्यूएल प्रश्न कैसे लिखें:उदाहरणों के साथ ओरेकल जॉइन क्या हैं (एसक्यूएल जॉइन), विभिन्न प्रकार के जॉइन, इनर जॉइन, आउटर जॉइन, लेफ्ट आउटर जॉइन, राइट आउटर जॉइन, उदाहरणों के साथ क्रॉस जॉइन
ओरेकल जॉइन :उदाहरणों के साथ ओरेकल जॉइन क्या हैं (एसक्यूएल जॉइन), विभिन्न प्रकार के जॉइन, इनर जॉइन, आउटर जॉइन, लेफ्ट आउटर जॉइन, राइट आउटर जॉइन, उदाहरणों के साथ क्रॉस जॉइन
ऑरेकल में डेट फंक्शन्स:ऑरैकल के लिए इस पोस्ट को देखें दिनांक फ़ंक्शंस, वर्षों में ऑरेकल दिनांक अंतर, दिनों में ऑरैकल दिनांक अंतर, महीनों में ऑरेकल दिनांक अंतर.
ओरेकल में JSON:इस पोस्ट को देखें कि कैसे oracle में JSON का उपयोग करें, JSON डेटा वाली तालिका कैसे बनाएं, कैसे निकालने के लिए, oracle में JSON डेटा डालें
Oracle Sql ट्यूटोरियल:उन सभी sql ट्यूटोरियल पाठों की सूची, जिनका उपयोग sql में महारत हासिल करने और Oracle, डेटा प्रबंधन और हेरफेर में उपयोग करने के लिए किया जा सकता है
https://livesql. oracle.com/apex/livesql/file/tutorial_GMLYIBY74FPBS888XO8F1R95I.html