SQL में, EXISTS
ऑपरेटर पंक्तियों के अस्तित्व के परीक्षण के लिए एक सबक्वेरी निर्दिष्ट करता है। यह TRUE
returns लौटाता है जब सबक्वेरी एक या अधिक पंक्तियाँ लौटाती है।
एक सबक्वेरी एक क्वेरी है जो किसी अन्य क्वेरी (या किसी अन्य सबक्वेरी) के अंदर नेस्ट की जाती है
इस लेख में EXISTS
. के कुछ बुनियादी उदाहरण हैं ऑपरेटर।
स्रोत तालिकाएं
इस पृष्ठ पर उदाहरणों के लिए निम्नलिखित तालिकाओं का उपयोग किया जाता है।
SELECT * FROM PetTypes;
SELECT * FROM Pets;
परिणाम:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | | 2 | Cat | | 3 | Dog | | 4 | Rabbit | +-------------+-----------+ (4 rows affected) +---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +---------+-------------+-----------+-----------+------------+ (8 rows affected)
उदाहरण
EXISTS
को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है ऑपरेटर।
SELECT
pt.PetTypeId,
pt.PetType
FROM PetTypes pt
WHERE EXISTS (
SELECT p.PetTypeId
FROM Pets p
WHERE p.PetTypeId = pt.PetTypeId
);
परिणाम:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | | 2 | Cat | | 3 | Dog | +-------------+-----------+
यह उदाहरण हमें दिखाता है कि हमारे पालतू होटल में कितने प्रकार के पालतू जानवर हैं। वास्तव में चार प्रकार के पालतू जानवर होते हैं, लेकिन उनमें से केवल तीन ही Pets
. में एक वास्तविक पालतू जानवर से मेल खाते हैं टेबल।
यह वही परिणाम प्रदान करता है जो हमें निम्न क्वेरी के साथ प्राप्त होता जो IN
. का उपयोग करता है ऑपरेटर।
SELECT
PetTypeId,
PetType
FROM PetTypes
WHERE PetTypeId IN ( SELECT PetTypeId FROM Pets );
NOT EXISTS
का उपयोग करना
हम NOT
जोड़ सकते हैं परिणामों को नकारने के लिए ऑपरेटर और देखें कि कितने पालतू प्रकार हैं नहीं हमारे पालतू होटल में।
SELECT
pt.PetTypeId,
pt.PetType
FROM PetTypes pt
WHERE NOT EXISTS (
SELECT p.PetTypeId
FROM Pets p
WHERE p.PetTypeId = pt.PetTypeId
);
परिणाम:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 4 | Rabbit | +-------------+-----------+
इस मामले में, हमारे डेटाबेस में एक पालतू प्रकार का Rabbit
. होता है , लेकिन वर्तमान में हमारे पास पालतू जानवर के रूप में कोई खरगोश नहीं है।