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

शुरुआती के लिए SQL IN ऑपरेटर

SQL में, IN ऑपरेटर आपको मानों की सूची के आधार पर अपने क्वेरी परिणामों को फ़िल्टर करने की अनुमति देता है।

आप इसका उपयोग किसी सबक्वेरी द्वारा लौटाए गए किसी भी मान से मेल खाने के लिए भी कर सकते हैं (एक सबक्वेरी एक क्वेरी है जो किसी अन्य क्वेरी के अंदर नेस्टेड है)।

स्रोत तालिकाएं

इस पृष्ठ पर उदाहरणों के लिए निम्नलिखित तालिकाओं का उपयोग किया जाता है।

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)

उदाहरण

IN को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है ऑपरेटर।

SELECT 
    PetId, 
    PetName, 
    DOB 
FROM Pets
WHERE PetName IN ('Fluffy', 'Bark', 'Wag');

परिणाम:

+---------+-----------+------------+
| PetId   | PetName   | DOB        |
|---------+-----------+------------|
| 1       | Fluffy    | 2020-11-20 |
| 4       | Wag       | 2020-03-15 |
| 6       | Fluffy    | 2020-09-17 |
| 7       | Bark      | NULL       |
+---------+-----------+------------+

हम दो OR . का उपयोग करके एक ही परिणाम प्राप्त कर सकते हैं ऑपरेटर:

SELECT 
    PetId, 
    PetName, 
    DOB 
FROM Pets
WHERE PetName = 'Fluffy' 
    OR PetName = 'Bark' 
    OR PetName = 'Wag';

हालांकि, IN ऑपरेटर इसे करने का एक संक्षिप्त तरीका है। IN ऑपरेटर विशेष रूप से फायदेमंद होता है जब आपके पास मूल्यों की एक लंबी सूची होती है जिसके खिलाफ तुलना की जा सकती है।

IN ऑपरेटर लगभग हमेशा एक से अधिक OR . की तुलना में जल्दी निष्पादित करता है ऑपरेटरों, विशेष रूप से बड़े डेटा सेट पर।

संख्यात्मक मान

मान केवल तार तक सीमित नहीं हैं। उदाहरण के लिए, आप IN . का उपयोग कर सकते हैं संख्यात्मक मानों की सूची पर।

SELECT 
    PetId, 
    PetName, 
    DOB 
FROM Pets
WHERE PetId IN (1, 3, 5);

परिणाम:

+---------+-----------+------------+
| PetId   | PetName   | DOB        |
|---------+-----------+------------|
| 1       | Fluffy    | 2020-11-20 |
| 3       | Scratch   | 2018-10-01 |
| 5       | Tweet     | 2020-11-28 |
+---------+-----------+------------+

तारीख

यहां एक उदाहरण दिया गया है जो तिथियों की सूची का उपयोग करता है।

SELECT 
    PetId, 
    PetName, 
    DOB 
FROM Pets
WHERE DOB IN (
    '2020-11-20', 
    '2018-10-01', 
    '2015-10-01'
    );

परिणाम:

+---------+-----------+------------+
| PetId   | PetName   | DOB        |
|---------+-----------+------------|
| 1       | Fluffy    | 2020-11-20 |
| 3       | Scratch   | 2018-10-01 |
+---------+-----------+------------+

IN का उपयोग करना सबक्वेरी के साथ

IN . का एक अन्य लाभ ऑपरेटर, यह है कि इसमें एक और SELECT हो सकता है सूची। इसे सबक्वायरी . के रूप में जाना जाता है . एक सबक्वेरी एक क्वेरी है जो किसी अन्य क्वेरी (या किसी अन्य सबक्वेरी) के अंदर नेस्ट की जाती है।

यहां एक उदाहरण दिया गया है।

SELECT 
    PetTypeId,
    PetType
FROM PetTypes
WHERE PetTypeId IN ( SELECT PetTypeId FROM Pets );

परिणाम:

+-------------+-----------+
| PetTypeId   | PetType   |
|-------------+-----------|
| 1           | Bird      |
| 2           | Cat       |
| 3           | Dog       |
+-------------+-----------+

यह उदाहरण हमें दिखाता है कि हमारे पालतू होटल में कितने प्रकार के पालतू जानवर हैं।

NOT IN का उपयोग करना

हम NOT जोड़ सकते हैं ऑपरेटर को इसे इधर-उधर करने के लिए और देखें कि कितने पालतू प्रकार हैं नहीं हमारे पालतू होटल में।

SELECT 
    PetTypeId,
    PetType
FROM PetTypes
WHERE PetTypeId NOT IN ( SELECT PetTypeId FROM Pets );

परिणाम:

+-------------+-----------+
| PetTypeId   | PetType   |
|-------------+-----------|
| 4           | Rabbit    |
+-------------+-----------+

इस मामले में, हमारे डेटाबेस में एक पालतू प्रकार का Rabbit . होता है , लेकिन वर्तमान में हमारे पास पालतू जानवर के रूप में कोई खरगोश नहीं है।

अभिव्यक्ति

प्रदान किए गए मान अभिव्यक्तियों की एक सूची है। इसलिए, आप इस तरह की चीजें कर सकते हैं:

SELECT 
    PetId, 
    PetName, 
    DOB 
FROM Pets
WHERE PetId IN (1, 3, 2 + 3);

परिणाम:

+---------+-----------+------------+
| PetId   | PetName   | DOB        |
|---------+-----------+------------|
| 1       | Fluffy    | 2020-11-20 |
| 3       | Scratch   | 2018-10-01 |
| 5       | Tweet     | 2020-11-28 |
+---------+-----------+------------+

  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. NULL के 50 शेड्स – SQL में NULL के विभिन्न अर्थ

  3. इंस्टेंस सेटिंग्स प्राप्त करने के लिए संग्रहीत प्रक्रिया

  4. SQL तालिका में डुप्लिकेट रिकॉर्ड्स को हटाने के लिए संग्रहीत प्रक्रिया

  5. पंक्ति लक्ष्य, भाग 4:विरोधी विरोधी पैटर्न में शामिल हों