PostgreSQL SELECT के साथ EXISTS Operaउदाहरण

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

PostgreSQL EXISTS एक बूलियन ऑपरेटर है जो यह जांचता है कि क्या सहसंबंधित सबक्वेरी कोई पंक्ति लौटाती है, जिससे SELECT, INSERT, UPDATE और DELETE स्टेटमेंट मिलान करने वाले रिकॉर्ड की उपस्थिति या अनुपस्थिति के आधार पर डेटा को कुशलतापूर्वक फ़िल्टर कर सकते हैं।

  • ???? सिंटेक्स: WHERE EXISTS (subquery) तब true लौटाता है जब सबक्वेरी कम से कम एक पंक्ति प्रदान करती है।
  • 🔗 सहसंबंधित उपक्वेरी: EXISTS फ़ंक्शन आंतरिक और बाहरी क्वेरी को जोड़ता है, और एक साझा कुंजी पर पंक्तियों का मिलान करता है।
  • शार्ट सर्किट: EXISTS फ़ंक्शन पहली मेल खाने वाली पंक्ति पर रुक जाता है, इसलिए यह बड़ी तालिकाओं पर अच्छी तरह से काम करता है।
  • 🔁 चार कथन: यह ऑपरेटर SELECT, INSERT, UPDATE और DELETE क्वेरी के अंदर काम करता है।
  • अस्तित्व में नहीं है: यह सुरक्षित रूप से पंक्तियों को बाहर करता है और NULL ट्रैप से बचता है जो NOT IN को तोड़ देता है।
  • 🤖 एआई क्वेरीज़: असिस्टेंट EXISTS क्लॉज़ उत्पन्न करते हैं और सहसंबंधित सबक्वेरी के प्रदर्शन संबंधी जोखिमों को चिह्नित करते हैं।

PostgreSQL EXISTS with Select Operaटो

EXISTS in में क्या है? PostgreSQL?

RSI PostgreSQL मौजूद है यह ऑपरेटर जांच करता है कि सबक्वेरी में कोई पंक्ति मौजूद है या नहीं। इसका मतलब है कि इस ऑपरेटर का उपयोग सबक्वेरी के साथ किया जाता है। EXISTS ऑपरेटर तब पूरा माना जाता है जब सबक्वेरी में कम से कम एक पंक्ति पाई जाती है। आप इस ऑपरेशन का उपयोग SELECT, UPDATE, INSERT और DELETE स्टेटमेंट के साथ कर सकते हैं।

PostgreSQL EXISTS क्वेरी सिंटैक्स

यहाँ इसका वाक्यविन्यास है PostgreSQL EXISTS कथन:

WHERE EXISTS (subquery);

उपरोक्त सिंटैक्स से पता चलता है कि EXISTS ऑपरेटर एक तर्क लेता है, जो एक सबक्वेरी है। सबक्वेरी बस एक है चयन कथन जिसे स्तंभ नामों या अभिव्यक्तियों की सूची के बजाय SELECT * से शुरू होना चाहिए।

PostgreSQL SELECT स्टेटमेंट के साथ EXISTS

आइए देखते हैं कि SELECT स्टेटमेंट को EXISTS ऑपरेटर के साथ कैसे इस्तेमाल किया जाता है। हमारे पास निम्नलिखित टेबल हैं:

किताब:

PostgreSQL SELECT स्टेटमेंट के साथ EXISTS

मूल्य:

PostgreSQL SELECT स्टेटमेंट के साथ EXISTS

निम्नलिखित कथन चलाएँ:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

यह निम्नलिखित लौटाता है:

PostgreSQL SELECT स्टेटमेंट के परिणाम के साथ EXISTS

उपरोक्त कमांड को बुक टेबल में सभी रिकॉर्ड लौटाने चाहिए जिनकी आईडी सबक्वेरी द्वारा किसी भी रिकॉर्ड की आईडी से मेल खाती है। केवल एक आईडी मेल खाती थी। इसलिए, केवल एक रिकॉर्ड लौटाया गया।

PostgreSQL INSERT स्टेटमेंट के साथ EXISTS

हम EXISTS ऑपरेटर का उपयोग कर सकते हैं सम्मिलित कथनहमारे पास निम्नलिखित 3 तालिकाएँ हैं:

किताब:

PostgreSQL INSERT स्टेटमेंट के साथ EXISTS

मूल्य:

PostgreSQL INSERT स्टेटमेंट के साथ EXISTS

मूल्य2:

PostgreSQL INSERT स्टेटमेंट के साथ EXISTS

फिर हम निम्नलिखित कथन चला सकते हैं:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

मूल्य तालिका अब इस प्रकार है:

PostgreSQL INSERT स्टेटमेंट के परिणाम के साथ EXISTS

Price5 नामक तालिका में 2 की आईडी वाली पंक्ति का मिलान किया गया। फिर इस रिकॉर्ड को Price तालिका में डाला गया।

PostgreSQL अपडेट स्टेटमेंट के साथ मौजूद है

हम UPDATE स्टेटमेंट में EXISTS ऑपरेटर का उपयोग कर सकते हैं।

निम्नलिखित क्वेरी चलाएँ:

UPDATE Price
SET price = (SELECT price
              FROM Price2
              WHERE Price2.id = Price.id)
WHERE EXISTS (SELECT id, price
FROM Price2
WHERE Price2.id = Price.id);

PostgreSQL अपडेट स्टेटमेंट के साथ मौजूद है

हम मूल्य तालिका के मूल्य कॉलम को अपडेट कर रहे हैं। हमारा उद्देश्य एक आईडी साझा करने वाली वस्तुओं की कीमतों को समान बनाना है। केवल एक पंक्ति का मिलान किया गया, यानी 5।

लेकिन चूंकि कीमतें बराबर यानी 205 हैं, इसलिए कोई अपडेट नहीं किया गया। अगर कोई अंतर होता तो अपडेट किया जाता।

PostgreSQL EXISTS के साथ DELETE स्टेटमेंट

A PostgreSQL DELETE कथन EXISTS ऑपरेटर का उपयोग कर सकता है। यहाँ एक उदाहरण दिया गया है:

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

मूल्य तालिका अब इस प्रकार है:

PostgreSQL EXISTS के साथ DELETE स्टेटमेंट

5 आईडी वाली पंक्ति हटा दी गई है।

PostgreSQL pgAdmin का उपयोग करके EXISTS स्टेटमेंट

SQL शेल के अलावा, pgAdmin इंटरफ़ेस के माध्यम से उन्हीं EXISTS क्वेरी को दृश्य रूप से निष्पादित किया जा सकता है। अब आइए देखते हैं कि pgAdmin का उपयोग करके ये क्रियाएँ कैसे की जा सकती हैं:

SELECT स्टेटमेंट के साथ

नीचे EXISTS क्वेरी का उपयोग करने के चरण दिए गए हैं। PostgreSQL pgAdmin का उपयोग करके SELECT स्टेटमेंट के साथ:

चरण 1) अपने pgAdmin खाते में लॉग इन करें। pgAdmin खोलें और अपने क्रेडेंशियल का उपयोग करके अपने खाते में लॉग इन करें।

चरण 2) एक डेमो डेटाबेस बनाएं।

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

PostgreSQL pgAdmin का उपयोग करके EXISTS स्टेटमेंट

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

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

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

PostgreSQL pgAdmin का उपयोग करके EXISTS स्टेटमेंट

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

PostgreSQL pgAdmin का उपयोग करके EXISTS स्टेटमेंट

INSERT कथन के साथ

pgAdmin के माध्यम से ऐसा करने के लिए, यह करें:

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

चरण 2)

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

EXISTS स्टेटमेंट में PostgreSQL pgAdmin का उपयोग करके

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

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

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

EXISTS स्टेटमेंट में PostgreSQL pgAdmin का उपयोग करके

मूल्य तालिका अब इस प्रकार होनी चाहिए:

EXISTS स्टेटमेंट में PostgreSQL pgAdmin का उपयोग करके

अद्यतन विवरण के साथ

pgAdmin के माध्यम से ऐसा करने के लिए, यह करें:

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

चरण 2)

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

EXISTS स्टेटमेंट में PostgreSQL pgAdmin का उपयोग करके

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

UPDATE Price
SET price = (SELECT price
              FROM Price2
              WHERE Price2.id = Price.id)
WHERE EXISTS (SELECT id, price
FROM Price2
WHERE Price2.id = Price.id);

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

PostgreSQL pgAdmin का उपयोग करके EXISTS स्टेटमेंट

मूल्य तालिका अब इस प्रकार होनी चाहिए:

PostgreSQL pgAdmin का उपयोग करके EXISTS स्टेटमेंट

DELETE कथन के साथ

pgAdmin के माध्यम से ऐसा करने के लिए, यह करें:

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

चरण 2)

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

PostgreSQL pgAdmin का उपयोग करके EXISTS स्टेटमेंट

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

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

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

PostgreSQL pgAdmin का उपयोग करके EXISTS स्टेटमेंट

मूल्य तालिका अब इस प्रकार होनी चाहिए:

PostgreSQL pgAdmin का उपयोग करके EXISTS स्टेटमेंट

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

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

EXISTS यह जांचता है कि क्या सहसंबंधित सबक्वेरी कोई पंक्ति लौटाती है और पहले मिलान पर रुक जाती है, इसलिए यह बड़ी सबक्वेरी के लिए उपयुक्त है। IN एक मान की तुलना सूची से करता है और छोटे, स्थिर सेट के लिए उपयुक्त है।

सबक्वेरी में NULL मान होने पर NOT IN शून्य पंक्तियाँ लौटा सकता है, क्योंकि तुलना अज्ञात हो जाती है। NOT EXISTS NULL को अनदेखा करता है और प्रत्येक पंक्ति का सही मूल्यांकन करता है, जिससे यह एंटी-जॉइन के लिए एक विश्वसनीय विकल्प बन जाता है।

एक सहसंबंधित सबक्वेरी बाहरी क्वेरी के एक कॉलम को संदर्भित करती है, जैसे कि WHERE Book.id = Price.id। EXISTS प्रत्येक बाहरी पंक्ति के लिए इसकी पुनः जाँच करता है और मिलान मिलने पर true लौटाता है।

जी हाँ। EXISTS फ़ंक्शन सबक्वेरी द्वारा एक पंक्ति उत्पन्न होते ही true लौटा देता है, इसलिए यह बाकी पंक्तियों को स्कैन नहीं करता है। यह त्वरित प्रक्रिया इसे बड़ी सहसंबंधित सबक्वेरियों पर कारगर बनाती है।

नहीं। EXISTS केवल यह जांचता है कि सबक्वेरी एक पंक्ति लौटाती है या नहीं, इसलिए SELECT *, SELECT 1, या SELECT id का व्यवहार एक जैसा होता है। सबक्वेरी के अंदर कॉलम सूची परिणाम को प्रभावित नहीं करती है।

सबक्वेरी के अंदर जुड़े कॉलमों को इंडेक्स करें, सहसंबंध स्थिति को सर्गेबल रखें और EXPLAIN ANALYZE चलाएं। PostgreSQL जब इंडेक्स इसका समर्थन करते हैं, तो अक्सर EXISTS को एक कुशल सेमी-जॉइन के रूप में पुनर्लिखित किया जाता है।

एआई सहायक सरल अंग्रेजी नियमों को EXISTS क्लॉज़ में परिवर्तित करते हैं, सहसंबंधित सबक्वेरी बनाते हैं और NOT IN NULL त्रुटियों के बारे में चेतावनी देते हैं। वे इंडेक्स और EXPLAIN संकेत भी सुझाते हैं ताकि ट्यूनिंग में मदद मिल सके।

जी हां। एक एआई कोपायलट सबक्वेरी पैटर्न का पता लगाता है और IN को EXISTS या NOT IN को NOT EXISTS के रूप में पुनर्लेखन करता है, जिससे बड़ी तालिकाओं पर NULL सुरक्षा और प्रदर्शन में सुधार होता है।

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