सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि SQLite EXISTS
का उपयोग कैसे करें एक सबक्वेरी द्वारा लौटाई गई पंक्तियों के अस्तित्व का परीक्षण करने के लिए ऑपरेटर।
SQLite का परिचय EXISTS
ऑपरेटर
EXISTS
ऑपरेटर एक तार्किक ऑपरेटर है जो यह जांचता है कि कोई सबक्वेरी कोई पंक्ति लौटाती है या नहीं।
यहां EXISTS
का मूल सिंटैक्स दिया गया है ऑपरेटर:
EXISTS(subquery)
Code language: SQL (Structured Query Language) (sql)
इस सिंटैक्स में, सबक्वेरी एक SELECT
है बयान जो शून्य या अधिक पंक्तियों को लौटाता है।
यदि सबक्वेरी एक या अधिक पंक्ति लौटाती है, तो EXISTS
ऑपरेटर सच लौटता है। अन्यथा, EXISTS
ऑपरेटर गलत या NULL
लौटाता है ।
ध्यान दें कि यदि सबक्वेरी NULL
. के साथ एक पंक्ति लौटाती है , EXISTS
. का परिणाम ऑपरेटर अभी भी सही है क्योंकि परिणाम सेट में NULL वाली एक पंक्ति है।
EXISTS
को नकारने के लिए ऑपरेटर, आप NOT EXISTS
. का उपयोग करते हैं ऑपरेटर इस प्रकार है:
NOT EXISTS (subquery)
Code language: SQL (Structured Query Language) (sql)
NOT EXISTS
यदि सबक्वेरी कोई पंक्ति नहीं लौटाती है, तो ऑपरेटर सत्य लौटाता है।
SQLite EXISTS
ऑपरेटर उदाहरण
निम्नलिखित देखें Customers
और Invoices
नमूना डेटाबेस से टेबल:
निम्नलिखित कथन उन ग्राहकों को ढूंढता है जिनके पास चालान हैं:
SELECT
CustomerId,
FirstName,
LastName,
Company
FROM
Customers c
WHERE
EXISTS (
SELECT
1
FROM
Invoices
WHERE
CustomerId = c.CustomerId
)
ORDER BY
FirstName,
LastName;
Code language: SQL (Structured Query Language) (sql)
निम्न चित्र आंशिक परिणाम सेट दिखाता है:
इस उदाहरण में, प्रत्येक ग्राहक के लिए, EXISTS
ऑपरेटर जाँचता है कि क्या ग्राहक आईडी Invoices
. में मौजूद है टेबल।
- यदि हाँ, तो सबक्वेरी मान 1 के साथ एक पंक्ति लौटाती है जो
EXISTS
का कारण बनती है ऑपरेटर सत्य का मूल्यांकन करता है। इसलिए, क्वेरी में परिणाम सेट में कर्सर शामिल है। - यदि ग्राहक आईडी
Invoices
में मौजूद नहीं है तालिका, सबक्वेरी कोई पंक्ति नहीं लौटाती है जोEXISTS
. का कारण बनती है असत्य का मूल्यांकन करने के लिए ऑपरेटर, इसलिए क्वेरी में ग्राहक को परिणाम सेट में शामिल नहीं किया जाता है।
ध्यान दें कि आप IN
. का उपयोग कर सकते हैं EXISTS
. के बजाय ऑपरेटर इस मामले में एक ही परिणाम प्राप्त करने के लिए ऑपरेटर:
SELECT
CustomerId,
FirstName,
LastName,
Company
FROM
Customers c
WHERE
CustomerId IN (
SELECT
CustomerId
FROM
Invoices
)
ORDER BY
FirstName,
LastName;
Code language: SQL (Structured Query Language) (sql)
एक बार जब सबक्वेरी पहली पंक्ति लौटा देती है, तो EXISTS
ऑपरेटर खोजना बंद कर देता है क्योंकि यह परिणाम निर्धारित कर सकता है। दूसरी ओर, IN
परिणाम निर्धारित करने के लिए ऑपरेटर को सबक्वेरी द्वारा लौटाई गई सभी पंक्तियों को स्कैन करना होगा।
सामान्यतया, EXISTS
ऑपरेटर IN
. से तेज है ऑपरेटर यदि सबक्वायरी द्वारा लौटाया गया परिणाम सेट बड़ा है। इसके विपरीत, IN
ऑपरेटर EXISTS
. से तेज है ऑपरेटर यदि सबक्वेरी द्वारा लौटाया गया परिणाम सेट छोटा है।
SQLite NOT EXISTS
ऑपरेटर उदाहरण
नमूना डेटाबेस से निम्नलिखित कलाकार और एल्बम तालिका देखें:
यह क्वेरी उन सभी कलाकारों को ढूंढती है जिनके पास एल्बम तालिका में कोई एल्बम नहीं है:
SELECT
*
FROM
Artists a
WHERE
NOT EXISTS(
SELECT
1
FROM
Albums
WHERE
ArtistId = a.ArtistId
)
ORDER BY Name;
Code language: SQL (Structured Query Language) (sql)
यहाँ आंशिक आउटपुट है:
इस ट्यूटोरियल में, आपने सीखा है कि SQLite EXISTS
. का उपयोग कैसे किया जाता है एक सबक्वेरी द्वारा लौटाई गई पंक्तियों के अस्तित्व का परीक्षण करने के लिए ऑपरेटर।