इस विषय में, हम सीखेंगे कि WHERE क्लॉज का उपयोग करके कई शर्तों को कैसे जोड़ा जाए।
सबसे पहले, WHERE क्लॉज की अवधारणा को समझते हैं।
तालिका से रिकॉर्ड प्राप्त करते समय एक शर्त निर्दिष्ट करने के लिए जहां क्लॉज का उपयोग किया जाता है।
WHERE क्लॉज आमतौर पर SQL में SELECT स्टेटमेंट के साथ प्रयोग किया जाता है
SELECT क्वेरी केवल WHERE क्लॉज में निर्दिष्ट शर्तों को पूरा करने वाले रिकॉर्ड प्रदर्शित करेगी
एक सेलेक्ट क्वेरी की WHERE क्लॉज कंडीशन में निर्दिष्ट एक या एक से अधिक शर्तें हो सकती हैं।
AND और OR ऑपरेटरों का उपयोग एक ही क्वेरी में WHERE क्लॉज का उपयोग करके कई स्थितियों की जांच करने के लिए किया जाता है।
- और WHERE क्लॉज वाला ऑपरेटर
जब भी सेलेक्ट क्वेरी में कई शर्तों की जांच करने के लिए WHERE क्लॉज के साथ शर्तों के बीच AND ऑपरेटर का उपयोग किया जाता है, तो परिणाम तब प्रदर्शित होते हैं जब क्वेरी में दी गई केवल एक से अधिक शर्तें पूरी होती हैं।
वाक्यविन्यास:
SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];
उदाहरण 1:
नीचे दी गई छात्र तालिका पर विचार करें। हम निम्नलिखित सभी उदाहरणों के लिए एक ही तालिका पर विचार करेंगे।
Student_RollNo | Student_Name | Student_Gender | Student_MobileNumber | Student_HomeTown | विद्यार्थी_आयु | छात्र_प्रतिशत |
1 | रोहित मोरे | पुरुष | 9890786123 | लखनऊ | 23 | 75 |
2 | कुणाल शाह | पुरुष | 7789056784 | चंडीगढ़ | 20 | 68 |
3 | कार्तिक गोयनका | पुरुष | 9908743576 | अहमदाबाद | 22 | 92 |
4 | अनुपमा शाह | महिला | 8890907656 | चंडीगढ़ | 24 | 94 |
5 | स्नेहल जैन | महिला | 8657983476 | सूरत | 21 | 94 |
अब, इस अवधारणा को व्यावहारिक रूप से समझने के लिए कुछ उदाहरण देखते हैं।
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";
आउटपुट:
रोल नंबर 2 के साथ छात्र तालिका में केवल एक रिकॉर्ड है, जिसमें पुरुष के रूप में लिंग और चंडीगढ़ के रूप में गृहनगर है। यदि निर्दिष्ट शर्तों में से कोई एक भी पूरी नहीं होती है, तो उस स्थिति में, आउटपुट समान नहीं होगा। प्रदर्शित रिकॉर्ड/रिकॉर्ड अलग होंगे, या कुछ मामलों में, यदि कोई रिकॉर्ड दोनों शर्तों को पूरा नहीं करता है, तो आउटपुट एक खाली सेट हो सकता है।
उदाहरण 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;
आउटपुट:
छात्र तालिका में रोल नंबर '5' के साथ केवल एक रिकॉर्ड है, जिसकी उम्र '21' के बराबर और प्रतिशत '94' के बराबर है।
उदाहरण 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;
आउटपुट:
छात्र तालिका में सभी अभिलेखों में, रोल नंबर '4' के साथ केवल एक रिकॉर्ड है, जिसमें लिंग 'पुरुष' है, गृह नगर 'चंडीगढ़' है, और आयु '24' के बराबर है। यह एकमात्र रिकॉर्ड है जो तीनों शर्तों को पूरा करता है।
उदाहरण 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_Name = "Kartik Goenka" AND Student_Percentage = 92;
आउटपुट:
छात्र तालिका में सभी अभिलेखों में, रोल नंबर '3' के साथ केवल एक रिकॉर्ड है जिसमें तीनों शर्तें पूरी होती हैं, यानी पुरुष के रूप में लिंग, नाम 'कार्तिक गोयनका' के बराबर और प्रतिशत '92' के बराबर है।
- या WHERE क्लॉज वाला ऑपरेटर
जब भी सेलेक्ट क्वेरी में कई शर्तों की जांच करने के लिए WHERE क्लॉज वाली स्थितियों के बीच OR ऑपरेटर का उपयोग किया जाता है, तो परिणाम तब प्रदर्शित होते हैं जब किसी क्वेरी में लिखी गई अन्य सभी शर्तों के बीच कम से कम एक शर्त पूरी होती है।
वाक्यविन्यास:
SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];
उदाहरण 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";
आउटपुट:
छात्रों की तालिका में, रोल नंबर 1, 2, 3 और 4 के साथ चार रिकॉर्ड हैं, जिनमें लिंग पुरुष या गृहनगर चंडीगढ़ है। यहां तक कि अगर कोई निर्दिष्ट शर्तें पूरी होती हैं, तो उस रिकॉर्ड को आउटपुट के हिस्से के रूप में माना जाएगा। कुछ मामलों में, आउटपुट एक खाली सेट हो सकता है यदि कोई रिकॉर्ड किसी भी शर्त को पूरा नहीं करता है।
उदाहरण 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;
आउटपुट:
छात्र तालिका में दो रिकॉर्ड रोल नंबर '4,' और '5' हैं, जिनकी उम्र या तो '21' के बराबर है या प्रतिशत '94' के बराबर है।
उदाहरण 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;
आउटपुट:
छात्र तालिका के सभी अभिलेखों में, रोल नंबर '2', '4' और '5' के साथ तीन रिकॉर्ड हैं, जिनमें या तो 'महिला' के रूप में लिंग है; होम टाउन 'चंडीगढ़' या उम्र '24' के बराबर है। ये वे रिकॉर्ड हैं जो तीन शर्तों में से किसी एक को पूरा करते हैं।
उदाहरण 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_Name = "Kartik Goenka" OR Student_Percentage = 92;
आउटपुट:
छात्र तालिका में सभी अभिलेखों में, रोल नंबर '1', '2' और '3' के साथ तीन रिकॉर्ड हैं जिनमें तीन में से कोई भी शर्त पूरी होती है, यानी पुरुष के रूप में लिंग, नाम 'कार्तिक गोयनका' के बराबर है। या प्रतिशत '92' के बराबर है।
- AND और OR ऑपरेटर WHERE क्लॉज के साथ एक ही क्वेरी में
WHERE क्लॉज क्वेरी में सेलेक्ट स्टेटमेंट के साथ, हम एक ही क्वेरी में AND और OR ऑपरेटरों के संयोजन का भी उपयोग कर सकते हैं। एक ही प्रश्न में AND और OR ऑपरेटरों के संयोजन का उपयोग करने का उद्देश्य जटिल परिस्थितियों के उच्च स्तर का परीक्षण करना है।
वाक्यविन्यास:
SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];
उदाहरण 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;
आउटपुट:
एक प्रश्न में शर्तों के अनुसार, रिकॉर्ड में 'महिला' के रूप में लिंग और 'चंडीगढ़' के रूप में गृहनगर होना चाहिए। छात्र की आयु '24' हो भी सकती है और नहीं भी। तो, रोल नंबर '4' के साथ केवल एक रिकॉर्ड है, जो इन शर्तों को पूरा करता है। यहां तक कि अगर किसी रिकॉर्ड में 'महिला' के रूप में लिंग और 'चंडीगढ़' के अलावा गृहनगर या इसके विपरीत है, तो उस रिकॉर्ड को आउटपुट में नहीं माना जाएगा।
उदाहरण 2:
SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;
आउटपुट:
एक प्रश्न में शर्तों के अनुसार, रिकॉर्ड में 'महिला' के रूप में लिंग या 'चंडीगढ़' के रूप में गृह नगर होना चाहिए। छात्र की उम्र '24' के अलावा और नहीं होनी चाहिए। तो, रोल नंबर '4' और '5' के साथ दो रिकॉर्ड हैं जो इन शर्तों को पूरा करते हैं।
उदाहरण 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;
आउटपुट:
छात्र तालिका में 'पुरुष' के रूप में लिंग, 'लखनऊ' के रूप में गृह नगर और छात्र का प्रतिशत '75' होना चाहिए। एक छात्र की उम्र 23 या 23 से अधिक हो सकती है।
उदाहरण 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;
आउटपुट:
छात्र तालिका में, तीन रिकॉर्ड हैं जिनमें लिंग 'पुरुष' और आयु '23' है। होम टाउन 'लखनऊ' हो भी सकता है और नहीं भी। साथ ही, प्रतिशत '75' हो भी सकता है और नहीं भी।