SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLite मौजूद है

सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि 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 . का उपयोग कैसे किया जाता है एक सबक्वेरी द्वारा लौटाई गई पंक्तियों के अस्तित्व का परीक्षण करने के लिए ऑपरेटर।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऐसा कोई कॉलम स्क्लाइट अपवाद नहीं

  2. एम्यूलेटर बनाम सैमसंग डिवाइस एसडी कार्ड स्टोरेज

  3. SQLite में NULL को "N/A" से बदलने के 3 तरीके

  4. SQLite में विदेशी कुंजी उल्लंघन खोजें

  5. Node.js और SQLite के साथ एक ऑफ़लाइन-प्रथम एप्लिकेशन बनाना