PostgreSQL संघ, संघ सभी उदाहरण सहित

⚡ स्मार्ट सारांश

PostgreSQL UNION दो या दो से अधिक SELECT कथनों के परिणामों को एक ही परिणाम सेट में संयोजित करता है और डुप्लिकेट पंक्तियों को हटा देता है, जबकि UNION ALL प्रत्येक पंक्ति को रखता है, जिससे डुप्लिकेट पंक्तियों के महत्व न होने पर एक तेज़ विकल्प मिलता है।

  • 🔗 जोड़ना: UNION कई SELECT कथनों से पंक्तियों को एक परिणाम सेट में मर्ज करता है।
  • 🧹 डुप्लिकेट: UNION डुप्लिकेट पंक्तियों को हटा देता है, जबकि UNION ALL सभी मेल खाने वाली पंक्तियों को रखता है।
  • 📐 नियम: प्रत्येक SELECT क्वेरी में संगत डेटा प्रकारों वाले समान संख्या में कॉलम होने चाहिए।
  • द्वारा आदेश: अंत में एक बार ORDER BY लगाने से संयुक्त परिणाम सेट को सॉर्ट किया जाता है।
  • प्रदर्शन: UNION ALL तेजी से चलता है क्योंकि यह डुप्लिकेट हटाने वाले चरण को छोड़ देता है।
  • 🤖 एआई सहायता: एआई सहायक कॉलम को संरेखित करते हैं और यूनियन और यूनियन ऑल के बीच चयन करते हैं।

PostgreSQL यूनियन और यूनियन ऑल

एचएमबी क्या है? PostgreSQL संघ?

RSI PostgreSQL UNION ऑपरेटर का उपयोग एक से अधिक SELECT कथनों के परिणाम सेटों को एक परिणाम सेट में संयोजित करने के लिए किया जाता है। SELECT कथनों के परिणामों से कोई भी डुप्लिकेट पंक्तियाँ हटा दी जाती हैं। UNION ऑपरेटर दो स्थितियों में काम करता है:

  • SELECT क्वेरी में कॉलम की संख्या समान होनी चाहिए।
  • सभी संगत कॉलमों के डेटा प्रकार संगत होने चाहिए।

UNION ऑपरेटर का उपयोग सामान्यतः उन संबंधित तालिकाओं से डेटा को संयोजित करने के लिए किया जाता है जिन्हें पूरी तरह से सामान्यीकृत नहीं किया गया है।

वाक्य - विन्यास

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

उपरोक्त मापदंडों के लिए स्पष्टीकरण इस प्रकार है:

अभिव्यक्ति_1, अभिव्यक्ति_2, ... अभिव्यक्ति_एन वे गणनाएं या कॉलम हैं जिन्हें आपको पुनर्प्राप्त करने की आवश्यकता है।

ये तालिकाएं वे तालिकाएं हैं जिनसे आपको रिकॉर्ड प्राप्त करने की आवश्यकता होती है।

WHERE शर्तें वे शर्तें हैं जिन्हें रिकॉर्ड पुनः प्राप्त करने के लिए पूरा किया जाना चाहिए।

नोट: चूंकि UNION ऑपरेटर डुप्लिकेट मान नहीं लौटाता है, इसलिए UNION DISTINCT का उपयोग परिणामों पर कोई प्रभाव नहीं डालेगा।

PostgreSQL संघ

UNION ऑपरेटर डुप्लिकेट को हटाता है, ठीक उसी तरह जैसे DISTINCT का चयन करें हाँ, ऐसा होता है। चलिए इसे प्रदर्शित करते हैं। हमारे पास डेमो नाम का एक डेटाबेस है जिसमें निम्नलिखित तालिकाएँ हैं:

किताब:

PostgreSQL संघ

मूल्य:

PostgreSQL संघ

आइये निम्नलिखित कमांड चलायें:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

यह आदेश निम्नलिखित परिणाम देगा:

PostgreSQL संघ

आईडी कॉलम बुक और प्राइस दोनों टेबल में दिखाई देता है। हालाँकि, यह परिणाम में केवल एक बार दिखाई देता है। इसका कारण यह है कि PostgreSQL UNION ऑपरेटर डुप्लिकेट मान नहीं लौटाता है।

PostgreSQL संघ सभी

यह ऑपरेटर डुप्लिकेट को हटाए बिना एक से अधिक SELECT कथन से परिणाम सेट को जोड़ता है। ऑपरेटर को प्रत्येक SELECT कथन के लिए समान डेटा प्रकारों के परिणाम सेट में समान संख्या में फ़ील्ड की आवश्यकता होती है।

सिंटेक्स:

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION ALL
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

उपरोक्त मापदंडों के लिए स्पष्टीकरण इस प्रकार है:

अभिव्यक्ति_1, अभिव्यक्ति_2, ... अभिव्यक्ति_एन वे गणनाएं या कॉलम हैं जिन्हें आपको पुनर्प्राप्त करने की आवश्यकता है।

ये तालिकाएं वे तालिकाएं हैं जिनसे आपको रिकॉर्ड प्राप्त करने की आवश्यकता होती है।

WHERE शर्तें वे शर्तें हैं जिन्हें रिकॉर्ड पुनः प्राप्त करने के लिए पूरा किया जाना चाहिए।

नोट: दोनों SELECT कथनों में अभिव्यक्तियों की संख्या बराबर होनी चाहिए।

हम निम्नलिखित तालिकाओं का उपयोग करेंगे:

किताब:

PostgreSQL संघ सभी

मूल्य:

PostgreSQL संघ सभी

निम्न कमांड चलाएं:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

इसे निम्नलिखित लौटना चाहिए:

PostgreSQL संघ सभी

डुप्लिकेट को हटाया नहीं गया है.

द्वारा आदेश

RSI PostgreSQL UNION ऑपरेटर का उपयोग ORDER BY क्लॉज के साथ क्वेरी परिणामों को क्रमबद्ध करने के लिए किया जा सकता है। इसे प्रदर्शित करने के लिए, हम निम्नलिखित तालिकाओं का उपयोग करेंगे:

मूल्य:

द्वारा आदेश

मूल्य2:

द्वारा आदेश

यहां वह कमांड दी गई है जो यह प्रदर्शित करती है कि ORDER BY क्लॉज के साथ UNION ऑपरेटर का उपयोग कैसे किया जाता है:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price;

यह आदेश निम्नलिखित परिणाम देगा:

द्वारा आदेश

रिकॉर्ड्स को मूल्य कॉलम के अनुसार क्रमबद्ध किया गया था। क्लॉज डिफ़ॉल्ट रूप से रिकॉर्ड्स को आरोही क्रम में क्रमबद्ध करता है। उन्हें अवरोही क्रम में क्रमबद्ध करने के लिए, नीचे दिखाए अनुसार DESC क्लॉज जोड़ें:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

यह आदेश निम्नलिखित परिणाम देगा:

द्वारा आदेश

रिकॉर्ड्स को मूल्य कॉलम के आधार पर अवरोही क्रम में व्यवस्थित किया गया है।

यूनियन का उपयोग कब करें और यूनियन ऑल का उपयोग कब करें?

जब आपके पास समान संरचना वाली कई टेबल हों, लेकिन किसी कारणवश उन्हें अलग किया गया हो, तो UNION ऑपरेटर का उपयोग करें। डुप्लिकेट रिकॉर्ड हटाने या मिटाने के लिए यह उपयोगी है।

जब आपको डुप्लिकेट रिकॉर्ड को हटाने या समाप्त करने की आवश्यकता न हो, तो UNION ALL ऑपरेटर का उपयोग करें।

pgAdmin का उपयोग करना

अब आइए देखते हैं कि pgAdmin का उपयोग करके ये तीनों क्रियाएं कैसे की जाती हैं।

इसका उपयोग कैसे करें PostgreSQL pgAdmin का उपयोग करके यूनियन

नीचे दिए गए चरण-दर-चरण तरीके से इसका उपयोग करें। PostgreSQL pgAdmin के माध्यम से UNION:

चरण 1) अपने pgAdmin खाते में लॉगिन करें.

चरण 2) बाईं ओर स्थित नेविगेशन बार से, डेटाबेस पर क्लिक करें, फिर डेमो पर क्लिक करें।

उपयोग PostgreSQL pgAdmin का उपयोग करके यूनियन

चरण 3) क्वेरी संपादक में क्वेरी टाइप करें:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

चरण 4) निष्पादित करें बटन पर क्लिक करें.

उपयोग PostgreSQL pgAdmin का उपयोग करके यूनियन

इसे निम्नलिखित लौटना चाहिए:

उपयोग PostgreSQL pgAdmin का उपयोग करके यूनियन

संघ सभी

चरण 1) अपने pgAdmin खाते में लॉगिन करें.

चरण 2) बाईं ओर स्थित नेविगेशन बार से, डेटाबेस पर क्लिक करें, फिर डेमो पर क्लिक करें।

उपयोग PostgreSQL pgAdmin का उपयोग करके सभी को एक साथ जोड़ें

चरण 3) क्वेरी संपादक में क्वेरी टाइप करें:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

चरण 4) निष्पादित करें बटन पर क्लिक करें.

उपयोग PostgreSQL pgAdmin का उपयोग करके सभी को एक साथ जोड़ें

इसे निम्नलिखित लौटना चाहिए:

उपयोग PostgreSQL pgAdmin का उपयोग करके सभी को एक साथ जोड़ें

द्वारा आदेश

UNION ALL ऑपरेटर को ORDER BY क्लॉज के साथ संयोजित करके परिणाम सेट में परिणामों को क्रमित किया जा सकता है। उदाहरण के लिए:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price
ORDER BY id;

यह आदेश निम्नलिखित परिणाम देगा:

उपयोग PostgreSQL pgAdmin का उपयोग करके ऑर्डर करें

परिणामों का आदेश दे दिया गया है।

इस ट्यूटोरियल में प्रयुक्त डेटाबेस डाउनलोड करें

अक्सर पूछे जाने वाले प्रश्न

UNION ALL तेज़ है क्योंकि यह केवल पंक्तियों को जोड़ता है। UNION को डुप्लिकेट हटाने के लिए संयुक्त पंक्तियों को सॉर्ट या हैश करना पड़ता है, जिससे अतिरिक्त कार्य समय की बचत होती है। जब डुप्लिकेट का कोई महत्व नहीं होता, तो UNION ALL अधिक कुशल विकल्प है।

हाँ। UNION में प्रत्येक SELECT स्टेटमेंट में कॉलम की संख्या समान होनी चाहिए, और मिलान करने वाले कॉलम में संगत डेटा प्रकार समान क्रम में होने चाहिए। अन्यथा PostgreSQL इससे त्रुटि उत्पन्न होती है और क्वेरी विफल हो जाती है।

जी हां। कॉलम के नाम अलग-अलग हो सकते हैं क्योंकि UNION कॉलम को नाम से नहीं बल्कि उनकी स्थिति के आधार पर मिलाता है। डेटा प्रकार संगत होने चाहिए, और परिणाम सेट पहले SELECT स्टेटमेंट के कॉलम नामों का उपयोग करता है।

UNION दो परिणाम सेटों की पंक्तियों को लंबवत रूप से एक कॉलम सूची में व्यवस्थित करता है, जिससे डुप्लिकेट हट जाते हैं। JOIN संबंधित कुंजी के आधार पर विभिन्न तालिकाओं के कॉलमों को क्षैतिज रूप से जोड़ता है, इसलिए यह पंक्तियों को जोड़ने के बजाय उनकी चौड़ाई बढ़ाता है।

ORDER BY अंतिम संयुक्त परिणाम को क्रमबद्ध करता है, इसलिए PostgreSQL अंतिम SELECT के बाद केवल एक ORDER BY लगाने की अनुमति है। पंक्तियों को एक साथ मर्ज करने के बाद, अलग-अलग क्वेरी को पहले सॉर्ट करना अर्थहीन होगा।

GitHub Copilot जैसे AI सहायक प्रत्येक SELECT के कॉलम सूचियों को संरेखित करते हैं, बेमेल डेटा प्रकारों को चिह्नित करते हैं, और डुप्लिकेट को रखा जाना चाहिए या नहीं, इसके आधार पर UNION या UNION ALL की अनुशंसा करते हैं, जिससे सामान्य क्वेरी त्रुटियां कम हो जाती हैं।

जी हां। आपकी तालिकाओं और लक्ष्य की जांच करके, एक एआई सहायक यह बता सकता है कि क्या डुप्लिकेट पंक्तियाँ संभव और सार्थक हैं, फिर गति बढ़ाने के लिए डुप्लिकेट स्वीकार्य होने पर UNION ALL का सुझाव दे सकता है, या उन्हें हटाने की आवश्यकता होने पर UNION का सुझाव दे सकता है।

UNION फ़ंक्शन दोनों क्वेरी में मौजूद पंक्तियों को लौटाता है। INTERSECT फ़ंक्शन केवल उन पंक्तियों को लौटाता है जो दोनों क्वेरी में मौजूद हैं, और EXCEPT फ़ंक्शन उन पंक्तियों को लौटाता है जो पहली क्वेरी में मौजूद हैं लेकिन दूसरी में नहीं। ये तीनों फ़ंक्शन डिफ़ॉल्ट रूप से डुप्लिकेट पंक्तियों को हटा देते हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: