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

ओरेकल में सबक्वेरी क्या है?

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


  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. JDBC प्रकार के लिए कोई बोली मानचित्रण नहीं:-9

  3. Oracle में RM स्वरूप तत्व के बारे में

  4. ओरेकल में सक्रिय/खुले कनेक्शन कैसे सूचीबद्ध करें?

  5. क्या Oracle डेटाबेस में कोई बूलियन प्रकार है?