Correlated vs Non-Correlated Subqueries In Hindi
एसक्यूएल डेटाबेस मैनेजमेंट सिस्टम मे डेटाबेस टेबल बेस्ड जनरेटेड सबक्वेरी कोरिलेटेड या नॉन-कोरिलेटेड नेचर की हो सकती हैं, डेटाबेस यूजर को कोरिलेटेड या नॉन-कोरिलेटेड सबक्वेरी के बीच मुख्य डिफ्रेंस को जानना बहुत ज़रूरी है, क्योंकि यह डेटाबेस यूजर द्वारा क्रिएटेड सबक्वेरी को डायरेक्ट इम्पैक्ट करता है. जहा यूजर क्रिएटेड सबक्वेरी रन होती है, या नहीं है, और कोरिलेटेड या नॉन-कोरिलेटेड आउटपुट सबक्वेरी क्वेरी आउटर क्वेरी से कैसे डायरेक्ट या इनडायरेक्ट रिलेटेड है।

So, let’s understand correlated and non-correlated subqueries better in SQL database management systems.
Non-Correlated Subqueries in SQL Databases.
एसक्यूएल डेटाबेस टेबल बेस्ड जनरेटेड एक नॉन-कोरिलेटेड सबक्वेरी एक ऐसी सबक्वेरी होती है, जिसे आउटर क्वेरी में इंडिपेंडेंटली आर्डर में एग्जीक्यूट या रन किया जा सकता है। जहा नॉन-कोरिलेटेड सबक्वेरी डेटाबेस टेबल सबक्वेरी आउटर क्वेरी के किसी भी कॉलम को रेफरेंस के रूप में इंडीकेट नहीं करती है, और आउटपुट रिजल्ट को डिटेल्ड आउटर क्वेरी में एक बार एनालाइज कर परफॉर्म किया जाता है।
Elements of Non-Correlated Subqueries.
- Execution – नॉन-कोरिलेटेड सबक्वेरी एक बार जरूर एग्जीक्यूट या रन होती है, और नॉन-कोरिलेटेड सबक्वेरी आउटपुट रिजल्ट का यूज़ आउटर क्वेरी में किया जाता है।
- Independence – नॉन-कोरिलेटेड सबक्वेरी अपने आप में इंडिपेंडेंट नेचर की होती है, और नॉन-कोरिलेटेड सबक्वेरी के रिजल्ट के लिए यह किसी आउटर क्वेरी पर यह कम्पलीट डिपेंड नहीं करती है।
- Performance – नॉन-कोरिलेटेड सबक्वेरी ज़्यादा एफ्फिसिएंट और इफेक्टिव नेचर की होती हैं, क्योंकि नॉन-कोरिलेटेड सबक्वेरी सिर्फ एक बार ही एग्जीक्यूट होती हैं।
Example of a Non-Correlated Subquery in a Database Table.
यहाँ माना की डेटाबेस यूजर के पास एम्प्लॉई और डिपार्टमेंट नाम से दो डेटाबेस टेबल हैं.
- यह employee नाम से टेबल है, जिसमें employee_id, emp_name, और salary टेबल कॉलम फील्ड हैं।
- यह department नाम से टेबल है, जिसमें department_id और department_name टेबल कॉलम फील्ड हैं।
यहाँ डेटाबेस यूजर उन एम्प्लॉई के नाम को एक्सट्रेक्ट करना चाहते हैं, जो एम्प्लॉई टेबल में सभी एम्प्लॉई के एवरेज सैलरी से अधिक कमाते हैं।
SELECT emp_name
FROM employee
WHERE salary > (
SELECT AVG(salary)
FROM employee
);
Explanation of Non-Correlated Subqueries.
- यहाँ एम्प्लॉई टेबल सबक्वेरी में SELECT AVG(salary) FROM employee employee टेबल में सभी एम्प्लॉई के लिए एवरेज सैलरी को कैलकुलेट करती है।
- यहाँ आउटर क्वेरी हर एम्प्लॉई के सैलरी को कम्पयेर कर कैलकुलेट किए गए एवरेज सैलरी से करती है।
- यहाँ नॉन-कोरिलेटेड सबक्वेरी का इंडिपेंडेंट बिहैवियर है, और यह डेटाबेस स्टेटमेंट में एवरेज सैलरी को डिस्प्ले करने के लिए केवल एक बार ही एग्जीक्यूट होती है।
Correlated Subqueries in SQL Databases.
एसक्यूएल डेटाबेस मैनेजमेंट सिस्टम मे एक डेटाबेस यूजर जनरेटेड कोरिलेटेड टेबल सबक्वेरी आउटर क्वेरी के एक या अधिक कॉलम को डायरेक्ट रेफरेंस या इंडीकेट करती है। जिससे की कोरिलेटेड टेबल सबक्वेरी आउटर क्वेरी के डाटा वैल्यूज पर कम्पलीट डिपेंड करती है, और डेटाबेस टेबल आउटर क्वेरी के हर रौ के लिए एक बार जरूर एग्जीक्यूट होती है।
Elements of Correlated Subqueries.
- Execution – याद रहे डेटाबेस टेबल में क्रिएटेड कोरिलेटेड सबक्वेरी एक्सेक्युशन के समय कई बार एग्जीक्यूट होती है, कोरिलेटेड आउटर क्वेरी में हर टेबल रौ के लिए यह एक बार अवश्य रन होती है।
- Dependency – कोरिलेटेड सबक्वेरी आउटर क्वेरी पर कम्पलीट डिपेंड करती है, स्पेशली, आर्डर में आउटर टेबल क्वेरी की करंट रौ के वैल्यूज पर ये कम्पलीट डिपेंड होती है।
- Performance – कोरिलेटेड सबक्वेरी नॉन-कोरिलेटेड सबक्वेरी के कम्पेरिज़न में स्लो प्रोसेस या रन होती हैं, क्योंकि कोरिलेटेड सबक्वेरी को कई बार एग्जीक्यूट या रन करने की आवश्यकता होती है।
Example of a Correlated Subquery.
यहाँ माना की डेटाबेस यूजर एम्प्लॉई टेबल में उन एम्प्लॉई की लिस्ट को फाइंड करना चाहते हैं, जो अपने डिपार्टमेंट के एवरेज सैलरी से ज़्यादा कमाते हैं। यहाँ रिजल्ट आउटपुट के रूप में यूजर के पास employee और department नाम से टेबल हैं।
SELECT emp_name
FROM employee e
WHERE salary > (
SELECT AVG(salary)
FROM employee
WHERE department_id = e.department_id
);
Explanation of Correlated Subquery.
- यहाँ कोरिलेटेड सबक्वेरी (SELECT AVG(salary) FROM employee WHERE department_id = e.department_id) यह प्रत्येक एम्प्लॉई डिपार्टमेंट के लिए एवरेज सैलरी को कैलकुलेट करती है।
- यहाँ आउटर टेबल क्वेरी उन एम्प्लॉई के नाम टेबल से एक्सट्रेक्ट करती है, जिन एम्प्लॉई की सैलरी उनके रिलेटेड डिपार्टमेंट के एवरेज सैलरी से अधिक है।
- यहाँ सबक्वेरी कोरिलेटेड नेचर की है, क्योंकि यह आउटर क्वेरी (e.department_id) से department_id को डायरेक्ट रेफेरेंस या इंडीकेट करती है।
- कोरिलेटेड सबक्वेरी आउटर क्वेरी के माध्यम से प्रोसेस प्रत्येक टेबल रोज के लिए एक बार जरूर एग्जीक्यूट होती है।
Main Differences Between Correlated and Non-Correlated Subqueries in sql
| Aspect of query | Non-Correlated Subquery features | Correlated Subquery features |
| Execution type | Here non-correlated subquery must Executed once for the entire outer query in given table statement. | Here corelated subquery Executed once for each row of the table outer query in database table until it doesn’t find its all matches. |
| Dependency on Outer Query or not | non-correlated subquery No dependency on the outer query or database it must run. | corelated subquery complete depend or References columns from the outer query table statement. |
| Each Performance | non-correlated subquery, more efficient and faster than other method. | corelated subquery, less efficient or slow in execution process due to multiple individual table row executions for each row. |
| Where to Use | non-correlated subquery Used when the result of the subquery doesn’t depend on the outer query statement. | corelated subquery Used when the subquery needs to access data from each row of the outer query statement. |
| Illustration | non-correlated subquery used to Find employee whose salary is greater than the average salary of all employee list in employee database table. | corelated subquery used to Find employee whose salary is greater than the average salary in their complete department employee. |
Conclusion on Correlated vs Non-Correlated Subqueries.
- Non-correlated subqueries – अपने आप में कम्प्लीटली रूप से इंडिपेंडेंट, एफ्फिसिएंट, फ़ास्ट और आउटर क्वेरी के लिए एक बार जरूर एग्जीक्यूट होती है। नॉन-कोरिलेटेड सबक्वेरी डेटाबेस में कुछ पर्टिकुलर कंडीशंस के लिए आइडियल और इफेक्टिव होती है, जो आउटर क्वेरी पर कम्पलीट डिपेंड नहीं करती हैं।
- Correlated subqueries – कोरिलेटेड सबक्वेरी आउटर क्वेरी पर कम्पलीट डिपेंड है, डेटाबेस टेबल में हर टेबल रौ के लिए यह एक बार जरूर एग्जीक्यूट होती है, और डेटाबेस टेबल में हर रोज के लिए यह बार-बार एग्जीक्यूट होने के कारण यह प्रोसेस में थोड़ी स्लो होती है।
