What is a Subquery? In Hindi
एसक्यूएल टेबल में सबक्वेरी जिसे इनर डेटाबेस क्वेरी या मौजूदा टेबल नेस्टेड क्वेरी के रूप में उपयोग करते है. एसक्यूएल टेबल में एक सब क्वेरी वह है, जो किसी अन्य एसक्यूएल टेबल क्वेरी के अंदर एम्बेड या इन्सर्ट की जाती है। एसक्यूएल में सबक्वेरी का उपयोग उन एसक्यूएल टेबल डेटाबेस ऑपरेशनों को परफर्म करने में किया जाता है. जिनके लिए डेटाबेस इंजीनियर को किसी अन्य टेबल क्वेरी से रिजल्ट की जरूरत होती है. जिससे की किसी लार्ज वॉल्यूम डेटा को अधिक काम्प्लेक्स और डायनामिक आर्डर में फ़िल्टर करना, सॉर्ट करना, डाटा कलेक्शन, डाटा ट्रांसफॉर्मेशन करना, टेबल डेटाबेस को स्टोर और रिट्रीव करना इजी और पॉसिबल हो जाता है। एसक्यूएल टेबल में सबक्वेरी का उपयोग मल्टीप्ल एसक्यूएल डेटाबेस क्लॉज़ ऑपरेशन्स को हैंडल करने में किया जा सकता है. आप एसक्यूएल डेटाबेस टेबल में सबक्वेरी से एक से अधिक डेटाबेस को रिट्रीव या एक्सट्रेक्ट कर सकते है. जैसे, SELECT, WHERE, FROM और HAVING आदि क्लॉज़ का उपयोग कर सकते है।

एसक्यूएल टेबल में सबक्वेरी को डेटाबेस में पहले एक्सेक्यूट किया जाता है. और सबक्वेरी के रिजल्ट का उपयोग एक्सटर्नल क्वेरी रूप में किया जाता है।
Types of Subqueries in SQL Database.
Subqueries in SQL table are mainly of two types.
- स्केलर एसक्यूएल टेबल सबक्वेरी।
- मल्टी-रो एसक्यूएल टेबल सबक्वेरी।
Furthermore, in SQL tables, table subqueries are divided into categories based on their different locations and usage.
- Subquery in SELECT clause.
- Subquery in WHERE clause.
- Subquery in FROM clause.
- Subquery in HAVING clause.
Scalar Subquery in SQL Table.
किसी भी एसक्यूएल टेबल में एक स्केलर सबक्वेरी एक सिंगल वैल्यू (सिंगल रौ और सिंगल कॉलम ) वैल्यू में टेबल रिजल्ट को रिटर्न करती है। जहा इस वैल्यू का उपयोग डेटाबेस टेबल एक्सप्रेशन या कपरिशंस में किया जा सकता है।
Example of scalar subquery in SQL table.
यहाँ हम मान लेते है, कि हमारे पास दो अलग अलग एसक्यूएल टेबल हैं.
employe table with columns employee_id, name, salary, and department_id.
department table with columns department_id, department_name.
पहली टेबल में एम्प्लोयी टेबल है, जिसमें एम्प्लोयी _आईडी, एम्प्लोयी नाम, एम्प्लोयी सैलरी और एम्प्लोयी डिपार्टमेंट_आईडी कॉलम टेबल फील्ड हैं।
इसी तरह सेकंड डिपार्टमेंट टेबल है, जिसमें डिपार्टमेंट_आईडी, डिपार्टमेंट_नाम आदि टेबल कॉलम हैं।
यहाँ दोनों टेबल में आप उन एम्प्लोयी के नाम रिट्रीव करना चाहते हैं, जिनका सैलरी उनके डिपार्टमेंट में एवरेज सैलरी से अधिक है।
SELECT name
FROM employe
WHERE salary > (
SELECT AVG(salary)
FROM employe
WHERE department_id = employe.department_id
);
Scalar Subquery in SQL Explanation.
एसक्यूएल टेबल में इंटरनल क्वेरी (सबक्वेरी) प्रत्येक डिपार्टमेंट टेबल के लिए एवरेज सैलरी को कैलकुलेट करता है।
एसक्यूएल टेबल में एक्सटर्नल क्वेरी उन एम्प्लोयी को रिट्रीव करती है. जिनका सैलरी डिपार्टमेंट के एवरेज सैलरी से अधिक है।
Multi-row subquery in SQL Table.
एसक्यूएल टेबल में एक मल्टी-रो सबक्वेरी मल्टीप्ल रौ वैल्यू को रिटर्न करता है, और मल्टी-रौ सबक्वेरी का उपयोग IN, ANY और ALL जैसे एसक्यूएल डेटाबेस ऑपरेटरों के साथ सबक्वेरी द्वारा रिटर्न किए गए मल्टीप्ल वैल्यूज वाले कॉलम को कम्पपेयर करने में किया जा सकता है।
Example of a multi-row subquery in a SQL table.
माना कि एसक्यूएल टेबल में आप उन एम्प्लोयी के नाम रिट्रीव करना चाहते हैं. जो ‘मुंबई’ या ‘दिल्ली’ लोकेशन डिपार्टमेंट में वर्किंग हैं। यहाँ आपके पास दो अलग अलग एसक्यूएल टेबल हैं.
पहली टेबल जिसमे एम्प्लोयी टेबल है, जिसमें एम्प्लोयी_आईडी, एम्प्लोयी नाम, एम्प्लोयी डिपार्टमेंट_आईडी आदि कॉलम हैं।
सेकंड टेबल में डिपार्टमेंट टेबल है, जिसमें डिपार्टमेंट_आईडी, डिपार्टमेंट_नाम, डिपार्टमेंट लोकेशन कॉलम फील्ड हैं।
SELECT name
FROM employe
WHERE department_id IN (
SELECT department_id
FROM department
WHERE location IN (Mumbai, ‘Delhi’)
);
Explanation of a multi-row subquery in a SQL table.
यहाँ इंटरनल एसक्यूएल टेबल क्वेरी ‘मुंबई’ या ‘दिल्ली’ में लोकेटेड डिपार्टमेंट के लिए डिपार्टमेंट_आईडी वैल्यू को रिटर्न करती है।
वही एक्सटर्नल एसक्यूएल टेबल क्वेरी उन डिपार्टमेंट में काम करने वाले एम्प्लोयी के नाम रिट्रीव करती है।
Subquery output in different SQL clauses in SQL tables.
Subquery in SELECT clause in SQL table.
एसक्यूएल टेबल में एक्सटर्नल क्वेरी द्वारा रिटर्न की गई प्रत्येक रौ के लिए वैल्यू को कैलकुलेट करने के लिए SELECT क्लॉज़ में सबक्वेरी का उपयोग किया जाता है।
SELECT clause in SQL table Example.
SELECT name,
(SELECT AVG(salary) FROM employe WHERE department_id = e.department_id) AS avg_salary
FROM employe AS e;
SELECT clause Explanation.
यहाँ एसक्यूएल टेबल में सबक्वेरी प्रत्येक डिपार्टमेंट के लिए एवरेज सैलरी को कैलकुलेट करता है, और यह हर इंडिविजुअल एम्प्लोयी के लिए एक अतिरिक्त कॉलम avg_salary के रूप में रिटर्न करता है।
Subquery in WHERE clause in SQL table.
किसी भी एसक्यूएल टेबल में सबक्वेरी का एक कॉमन उपयोग WHERE क्लॉज़ में किसी अन्य क्वेरी के रिजल्ट को कम्बाइंड करने वाली कंडीशन के आधार पर रिजल्ट को फ़िल्टर करने के लिए होता है।
Subquery in WHERE clause Example.
SELECT name, salary
FROM employe
WHERE department_id = (
SELECT department_id
FROM department
WHERE department_name = ‘IT’
);
Subquery in WHERE clause Explanation.
यहाँ एसक्यूएल टेबल में सबक्वेरी ‘आईटी’ डिपार्टमेंट के लिए डिपार्टमेंट_आईडी को रिट्रीव करती है।
एक्सटर्नल क्वेरी डिपार्टमेंट_आईडी से मिलान करके ‘आईटी’ डिपार्टमेंट में काम करने वाले एम्प्लोयी इनफार्मेशन को रिट्रीव करती है।
Subquery in the FROM clause in SQL table.
एसक्यूएल टेबल में FROM क्लॉज में टेबल सबक्वेरी को अक्सर इनलाइन व्यू या व्युत्पन्न टेबल के रूप में जाना जाता है। यह एक टेम्पररी टेबल क्रिएट करता है, जिसे एक्सटर्नल क्वेरी में ऐड या क्वेरी कर डिस्प्ले किया जाता है।
FROM clause in SQL table Example.
SELECT department_name, AVG(salary) AS avg_salary
FROM (
SELECT department_name, salary
FROM employe
JOIN department ON employe.department_id = departments.department_id
) AS dept_salaries
GROUP BY department_name;
FROM clause in SQL Explanation.
टेबल में FROM क्लॉज में सबक्वेरी एम्प्लोयी और डिपार्टमेंट्स को कम्बाइंड करती है, और एक टेम्पररी रिजल्ट सेट (dept_salaries) प्रोवाइड करती है।
एक्सटर्नल क्वेरी इस रिजल्ट सेट का उपयोग करके प्रत्येक डिपार्टमेंट के लिए एवरेज सैलरी को कैलकुलेट कर डिस्प्ले करता है.
Subquery in HAVING clause SQL table.
एसक्यूएल टेबल में HAVING क्लॉज में सबक्वेरी का उपयोग कलेक्टेड डेटा के रिजल्ट को फ़िल्टर करने के लिए किया जाता है।
HAVING clause SQL table example.
SELECT department_name, AVG(salary) AS avg_salary
FROM employe
JOIN departments ON employe.department_id = departments.department_id
GROUP BY department_name
HAVING AVG(salary) > (
SELECT AVG(salary)
FROM employe
);
HAVING clause SQL table explanation.
मौजूदा एसक्यूएल टेबल में HAVING क्लॉज में सबक्वेरी सभी एम्प्लोयी के टोटल एवरेज सैलरी को कैलकुलेट करता है।
एक्सटर्नल क्वेरी उन डिपार्टमेंट को पुनः रिट्रीव करता है, जहाँ एवरेज सैलरी टोटल एवरेज सैलरी से अधिक है।
Advantages and Disadvantages of Subqueries in SQL Database Table.
Advantages of Subqueries.
- Subqueries simplicity – एसक्यूएल डेटाबेस टेबल में सबक्वेरी आपको काम्प्लेक्स डेटाबेस क्वेरी को स्माल, मैनेजेबल पीस ऑफ़ इनफार्मेशन में तोड़ने में हेल्प करते है।
- Subqueries flexibility – एसक्यूएल डेटाबेस टेबल में सबक्वेरी उपयोग SQL क्वेरी के मल्टीप्ल एलिमेंट (SELECT, WHERE, FROM, HAVING) के साथ में किया जाता है।
- Subqueries Readability – एसक्यूएल डेटाबेस टेबल में सबक्वेरी काम्प्लेक्स लॉजिकल कंडीशन को मर्ज करके क्वेरी को अधिक फ्लेक्सिबल बनाती है।
Disadvantages of Subqueries.
- Subqueries Performance – एसक्यूएल डेटाबेस टेबल में सबक्वेरी कुछ मामलों में, सबक्वेरी (विशेष रूप से को-रिलेटेड) जॉइन का उपयोग करने की तुलना में कम कुशल या एफ्फिसिएंट हो सकती हैं. क्योंकि वे एक्सटर्नल क्वेरी की इंडिविजुअल रौ के लिए सबक्वेरी के कई एक्सेक्युशन आउटपुट हो सकते हैं।
- Subqueries Complexity – एसक्यूएल डेटाबेस टेबल में सबक्वेरी मल्टीप्ल लेयर वाली कम्प्लेक्स सबक्वेरी के लिए, क्वेरी को अंडरस्टैंड और डीबग करना अधिक काम्प्लेक्स हो सकता है।
Conclusion of Subqueries in SQL Database Table.
- एसक्यूएल डेटाबेस टेबल में सबक्वेरी एक पावरफुल डाटा एंड इनफार्मेशन एक्सट्रैक्ट टूल या फीचर्स है. जो आपको एक क्वेरी को दूसरे के अंदर नेस्टेड क्वेरी परमिशन अल्लॉव करता है।
- एसक्यूएल डेटाबेस टेबल में सबक्वेरी से काम्प्लेक्स क्वेरी को ब्रेक करना पॉसिबल है।
- एसक्यूएल डेटाबेस टेबल में सबक्वेरी से ऐसे ऑपरेशन करना पॉसिबल है, जहाँ एक क्वेरी के रिजल्ट की जरूरत दूसरे को हो।
- एसक्यूएल डेटाबेस टेबल में सबक्वेरी मध्यवर्ती रिजल्ट्स के आधार पर डेटा को फ़िल्टर करना, कलेक्ट करना या कम्पपेयर करना आसान होता है।