SQL Subqueries

From binaryoption
Jump to navigation Jump to search
Баннер1
    1. एसक्यूएल सबक्वेरीज़

एसक्यूएल (स्ट्रक्चर्ड क्वेरी लैंग्वेज) डेटाबेस प्रबंधन के लिए एक मानक भाषा है। एसक्यूएल का उपयोग डेटाबेस में डेटा को स्टोर करने, पुनः प्राप्त करने, अपडेट करने और प्रबंधित करने के लिए किया जाता है। एसक्यूएल में, सबक्वेरी एक क्वेरी के अंदर एम्बेडेड एक अन्य क्वेरी है। सबक्वेरीज़ का उपयोग जटिल प्रश्नों को सरल बनाने और अधिक लचीलापन प्रदान करने के लिए किया जाता है। यह लेख शुरुआती लोगों के लिए एसक्यूएल सबक्वेरीज़ की अवधारणा को विस्तार से समझाएगा, उदाहरणों के साथ विभिन्न प्रकार की सबक्वेरीज़ और उनके उपयोग को कवर करेगा।

सबक्वेरी क्या है?

एक सबक्वेरी एक एसक्यूएल क्वेरी है जो किसी अन्य एसक्यूएल क्वेरी के अंदर एम्बेडेड होती है। इसे नेस्टेड क्वेरी या इनर क्वेरी के रूप में भी जाना जाता है। सबक्वेरी का उपयोग मुख्य क्वेरी के लिए डेटा फ़िल्टर करने, डेटा पुनर्प्राप्त करने या अन्य गणना करने के लिए किया जाता है।

सबक्वेरी का सामान्य सिंटैक्स इस प्रकार है:

```sql SELECT column1, column2 FROM table_name WHERE column3 IN (SELECT column3 FROM another_table WHERE condition); ```

इस उदाहरण में, `(SELECT column3 FROM another_table WHERE condition)` एक सबक्वेरी है। यह सबक्वेरी `another_table` से `column3` के मानों का एक सेट लौटाती है जो `condition` को संतुष्ट करते हैं। मुख्य क्वेरी फिर `table_name` से उन पंक्तियों को चुनती है जहां `column3` का मान सबक्वेरी द्वारा लौटाए गए मानों में से एक है।

सबक्वेरी के प्रकार

एसक्यूएल में विभिन्न प्रकार की सबक्वेरीज़ होती हैं, जिनमें शामिल हैं:

  • **सिंगल-रो सबक्वेरी:** यह सबक्वेरी केवल एक पंक्ति लौटाती है। इसका उपयोग आमतौर पर `WHERE` क्लॉज में तुलना ऑपरेटरों (जैसे `=`, `!=`, `>`, `<`) के साथ किया जाता है।
  • **मल्टी-रो सबक्वेरी:** यह सबक्वेरी एक से अधिक पंक्तियाँ लौटाती है। इसका उपयोग आमतौर पर `WHERE` क्लॉज में `IN`, `NOT IN`, `ANY`, या `ALL` ऑपरेटरों के साथ किया जाता है।
  • **कोरिलेटेड सबक्वेरी:** यह सबक्वेरी बाहरी क्वेरी के कॉलम पर निर्भर करती है। यह बाहरी क्वेरी की प्रत्येक पंक्ति के लिए एक बार निष्पादित होती है।
  • **एक्सिस्टेंस सबक्वेरी:** यह सबक्वेरी यह जांचती है कि क्या सबक्वेरी द्वारा लौटाए गए परिणाम सेट में कोई पंक्ति मौजूद है।

सिंगल-रो सबक्वेरी

सिंगल-रो सबक्वेरी एक ऐसी सबक्वेरी है जो केवल एक पंक्ति लौटाती है। इसका उपयोग आमतौर पर `WHERE` क्लॉज में तुलना ऑपरेटरों के साथ किया जाता है।

उदाहरण:

```sql SELECT employee_name, salary FROM employees WHERE salary > (SELECT AVG(salary) FROM employees); ```

इस उदाहरण में, `(SELECT AVG(salary) FROM employees)` एक सिंगल-रो सबक्वेरी है जो सभी कर्मचारियों के औसत वेतन की गणना करती है। मुख्य क्वेरी फिर उन कर्मचारियों के नाम और वेतन चुनती है जिनका वेतन औसत वेतन से अधिक है।

मल्टी-रो सबक्वेरी

मल्टी-रो सबक्वेरी एक ऐसी सबक्वेरी है जो एक से अधिक पंक्तियाँ लौटाती है। इसका उपयोग आमतौर पर `WHERE` क्लॉज में `IN`, `NOT IN`, `ANY`, या `ALL` ऑपरेटरों के साथ किया जाता है।

उदाहरण:

```sql SELECT customer_name FROM customers WHERE customer_id IN (SELECT customer_id FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31'); ```

इस उदाहरण में, `(SELECT customer_id FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31')` एक मल्टी-रो सबक्वेरी है जो 2023 में ऑर्डर देने वाले सभी ग्राहकों की ग्राहक आईडी लौटाती है। मुख्य क्वेरी फिर उन ग्राहकों के नाम चुनती है जिनकी ग्राहक आईडी सबक्वेरी द्वारा लौटाए गए ग्राहक आईडी में से एक है।

कोरिलेटेड सबक्वेरी

कोरिलेटेड सबक्वेरी एक ऐसी सबक्वेरी है जो बाहरी क्वेरी के कॉलम पर निर्भर करती है। यह बाहरी क्वेरी की प्रत्येक पंक्ति के लिए एक बार निष्पादित होती है।

उदाहरण:

```sql SELECT employee_name FROM employees e1 WHERE salary > (SELECT AVG(salary) FROM employees e2 WHERE e2.department_id = e1.department_id); ```

इस उदाहरण में, `(SELECT AVG(salary) FROM employees e2 WHERE e2.department_id = e1.department_id)` एक कोरिलेटेड सबक्वेरी है जो बाहरी क्वेरी में वर्तमान कर्मचारी के विभाग के औसत वेतन की गणना करती है। मुख्य क्वेरी फिर उन कर्मचारियों के नाम चुनती है जिनका वेतन उनके विभाग के औसत वेतन से अधिक है।

एक्सिस्टेंस सबक्वेरी

एक्सिस्टेंस सबक्वेरी एक ऐसी सबक्वेरी है जो यह जांचती है कि क्या सबक्वेरी द्वारा लौटाए गए परिणाम सेट में कोई पंक्ति मौजूद है।

उदाहरण:

```sql SELECT department_name FROM departments d WHERE EXISTS (SELECT 1 FROM employees e WHERE e.department_id = d.department_id); ```

इस उदाहरण में, `(SELECT 1 FROM employees e WHERE e.department_id = d.department_id)` एक एक्सिस्टेंस सबक्वेरी है जो यह जांचती है कि क्या विभाग में कम से कम एक कर्मचारी है। मुख्य क्वेरी फिर उन विभागों के नाम चुनती है जिनमें कम से कम एक कर्मचारी है।

सबक्वेरी का उपयोग करने के लाभ

सबक्वेरी का उपयोग करने के कई लाभ हैं, जिनमें शामिल हैं:

  • **सरलता:** सबक्वेरी जटिल प्रश्नों को सरल बनाने में मदद कर सकती है।
  • **लचीलापन:** सबक्वेरी अधिक लचीलापन प्रदान करती है।
  • **मॉड्यूलरिटी:** सबक्वेरी कोड को अधिक मॉड्यूलर बनाती है।
  • **पुन: प्रयोज्यता:** सबक्वेरी को अन्य प्रश्नों में पुन: उपयोग किया जा सकता है।

सबक्वेरी का उपयोग करने के नुकसान

सबक्वेरी का उपयोग करने के कुछ नुकसान भी हैं, जिनमें शामिल हैं:

  • **प्रदर्शन:** सबक्वेरी प्रदर्शन को कम कर सकती है, खासकर यदि सबक्वेरी को बार-बार निष्पादित करने की आवश्यकता होती है।
  • **जटिलता:** सबक्वेरी जटिल प्रश्नों को और भी जटिल बना सकती है।
  • **डीबगिंग:** सबक्वेरी को डीबग करना मुश्किल हो सकता है।

सबक्वेरी का उपयोग करने के लिए सर्वोत्तम अभ्यास

सबक्वेरी का उपयोग करते समय निम्नलिखित सर्वोत्तम प्रथाओं का पालन करना महत्वपूर्ण है:

  • **सरल सबक्वेरी का उपयोग करें:** जटिल सबक्वेरी से बचें।
  • **सबक्वेरी को अनुकूलित करें:** सुनिश्चित करें कि सबक्वेरी को कुशलतापूर्वक निष्पादित किया जा रहा है।
  • **सबक्वेरी को ध्यान से डीबग करें:** सबक्वेरी को डीबग करने के लिए उपकरणों और तकनीकों का उपयोग करें।
  • **वैकल्पिक दृष्टिकोणों पर विचार करें:** सबक्वेरी के बजाय `JOIN` या `COMMON TABLE EXPRESSIONS` (CTE) का उपयोग करने पर विचार करें।

सबक्वेरी के उदाहरण

यहाँ कुछ अतिरिक्त उदाहरण दिए गए हैं जो सबक्वेरी के उपयोग को दर्शाते हैं:

  • **सबसे महंगा उत्पाद ढूंढना:**

```sql SELECT product_name, price FROM products WHERE price = (SELECT MAX(price) FROM products); ```

  • **उन ग्राहकों को ढूंढना जिन्होंने कोई ऑर्डर नहीं दिया है:**

```sql SELECT customer_name FROM customers WHERE customer_id NOT IN (SELECT customer_id FROM orders); ```

  • **प्रत्येक विभाग में उच्चतम वेतन वाले कर्मचारी को ढूंढना:**

```sql SELECT e.employee_name, e.salary, d.department_name FROM employees e JOIN departments d ON e.department_id = d.department_id WHERE e.salary = (SELECT MAX(salary) FROM employees e2 WHERE e2.department_id = e.department_id); ```

निष्कर्ष

सबक्वेरी एसक्यूएल की एक शक्तिशाली सुविधा है जो जटिल प्रश्नों को सरल बनाने और अधिक लचीलापन प्रदान करने में मदद कर सकती है। इस लेख में, हमने एसक्यूएल सबक्वेरीज़ की अवधारणा, विभिन्न प्रकार की सबक्वेरीज़ और उनके उपयोग को कवर किया है। सबक्वेरी का उपयोग करते समय सर्वोत्तम प्रथाओं का पालन करके, आप अपने एसक्यूएल कोड की दक्षता और पठनीयता में सुधार कर सकते हैं।

डेटाबेस मैनेजमेंट सिस्टम | एसक्यूएल सिंटैक्स | एसक्यूएल फंक्शन | एसक्यूएल जॉइन | एसक्यूएल इंडेक्स | एसक्यूएल व्यू | एसक्यूएल ट्रिगर | एसक्यूएल स्टोरड प्रक्रिया | एसक्यूएल सामान्यीकरण | एसक्यूएल सुरक्षा | एसक्यूएल प्रदर्शन ट्यूनिंग | रिलेशनल डेटाबेस | नोएसक्यूएल | डेटा मॉडलिंग | एरडाईग्राम | एसक्यूएल इंजेक्शन | एसक्यूएल डेटा प्रकार | एसक्यूएल ऑपरेटर | एसक्यूएल क्लॉज | एसक्यूएल एग्रीगेट फंक्शन

यहाँ कुछ संबंधित विषय दिए गए हैं जो बाइनरी ऑप्शन ट्रेडिंग में उपयोगी हो सकते हैं:

तकनीकी विश्लेषण | वॉल्यूम विश्लेषण | चार्ट पैटर्न | जोखिम प्रबंधन | धन प्रबंधन | बाइनरी ऑप्शन रणनीति | बाइनरी ऑप्शन ब्रोकर | बाइनरी ऑप्शन प्लेटफॉर्म | बाइनरी ऑप्शन सिग्नल | बाइनरी ऑप्शन जोखिम | बाइनरी ऑप्शन लाभ | बाइनरी ऑप्शन विनियमन | वित्तीय बाजार | व्यापार मनोविज्ञान | निवेश रणनीति ट्रेडिंग मनोविज्ञान जोखिम मूल्यांकन पूंजी प्रबंधन लाभप्रदता विश्लेषण बाजार की भविष्यवाणी

अभी ट्रेडिंग शुरू करें

IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)

हमारे समुदाय में शामिल हों

हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री

Баннер