MySQL कहां क्लॉज: और, या, में, क्वेरी उदाहरण में नहीं

विषय - सूची:

Anonim

MySQL में WHERE क्लॉज क्या है?

जहां MySQL में क्लॉज एक कीवर्ड है जिसका उपयोग डेटा या पंक्तियों के सटीक मानदंडों को निर्दिष्ट करने के लिए किया जाता है जो निर्दिष्ट SQL कथन से प्रभावित होंगे। WHERS क्लॉज का उपयोग INSERT, UPDATE, SELECT, और DELETE जैसे SQL स्टेटमेंट्स के साथ किया जा सकता है, जो रिकॉर्ड को फ़िल्टर करने और डेटा पर विभिन्न ऑपरेशन करने के लिए करते हैं।

हमने पिछले ट्यूटोरियल में सेलेक्ट स्टेटमेंट का उपयोग करते हुए डेटाबेस से डेटा क्वेरी करने के तरीके को देखा। सेलेक्ट किए गए डेटाबेस तालिका से SELECT स्टेटमेंट ने सभी परिणाम लौटा दिए।

हालांकि, ऐसे समय होते हैं जब हम क्वेरी परिणामों को एक निर्दिष्ट स्थिति तक सीमित रखना चाहते हैं। ऐसी स्थितियों में SQL में WHERE क्लॉज काम आता है।

MySQL में कहां क्लॉज है

जहां उपवाक्य वाक्य

जब MySQL Select WHERE स्टेटमेंट में उपयोग किया जाता है तो WHERE क्लॉज के लिए मूल सिंटैक्स निम्नानुसार है।

SELECT * FROM tableName WHERE condition;

यहां

  • "SELECT * FROM tableName" मानक SELECT स्टेटमेंट है
  • "WHERE" वह कीवर्ड है जो हमारे चुनिंदा क्वेरी परिणाम सेट को प्रतिबंधित करता है और "कंडीशन" परिणामों पर लागू होने वाला फ़िल्टर है। फ़िल्टर एक सीमा, एकल मान या उप क्वेरी हो सकता है।

आइए अब एक व्यावहारिक उदाहरण देखें

मान लीजिए कि हम सदस्यता नंबर 1 को दिए गए सदस्य तालिका से एक सदस्य के व्यक्तिगत विवरण प्राप्त करना चाहते हैं, तो हम इसे प्राप्त करने के लिए निम्न स्क्रिप्ट का उपयोग करेंगे।

SELECT * FROM `members` WHERE `membership_number` = 1;

"Myflixdb" पर MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्नलिखित परिणाम प्राप्त होंगे।

 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.

जहां - और तार्किक ऑपरेटर के साथ संयुक्त खंड

MySQL में WHERE की स्थिति और तार्किक ऑपरेटर के साथ एक साथ उपयोग किए जाने पर, केवल तभी निष्पादित की जाती है यदि निर्दिष्ट सभी फ़िल्टर मानदंड पूरे किए जाते हैं। आइए अब एक व्यावहारिक उदाहरण देखें - मान लीजिए कि हम श्रेणी 2 की सभी फिल्मों की एक सूची प्राप्त करना चाहते हैं जो 2008 में जारी की गई थीं, हम नीचे दी गई स्क्रिप्ट का उपयोग करेंगे जो कि प्राप्त होता है।

SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;

"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्न परिणाम उत्पन्न होते हैं।

 
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

जहां - या संचालक के साथ संयुक्त खंड

जब OR ऑपरेटर के साथ मिलकर उपयोग किया जाता है, तो केवल तब ही निष्पादित किया जाता है जब कोई या संपूर्ण निर्दिष्ट फ़िल्टर मापदंड पूरा हो जाता है। निम्नलिखित स्क्रिप्ट को श्रेणी 1 या श्रेणी 2 में सभी फिल्में मिलती हैं
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;

"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्न परिणाम उत्पन्न होते हैं।

 
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

कहां खंड के साथ संयुक्त - में कीवर्ड

MySQL क्लॉज में WHERE, जब IN कीवर्ड के साथ एक साथ प्रयोग किया जाता है, केवल उन पंक्तियों को प्रभावित करता है जिनके मान IN कीवर्ड में दिए गए मानों की सूची से मेल खाते हैं। MySQL IN स्टेटमेंट आपके द्वारा उपयोग किए जा सकने वाले OR क्लॉज़ की संख्या को कम करने में मदद करता है। निम्नलिखित MySQL WHERE IN क्वेरी उन पंक्तियों को देती है जहाँ membership_number या तो 1, 2 या 3 है
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);

"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्न परिणाम उत्पन्न होते हैं।

 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.

कहाँ से जोड़ा गया है - कीवर्ड में नहीं

जब कीवर्ड के साथ प्रयोग नहीं किया जाता है तो यह खंड उन पंक्तियों को प्रभावित नहीं करता है जिनके मूल्य कीवर्ड में मौजूद मान की सूची से मेल खाते हैं। निम्न क्वेरी पंक्तियाँ देती है जहाँ सदस्यता_नंबर 1, 2 या 3 नहीं है
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);

"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्न परिणाम उत्पन्न होते हैं।

 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

जहां - साथ संयुक्त संचालक कॉमरेड संचालक

की तुलना में कम (), के बराबर (=), बराबर नहीं () तुलना ऑपरेटरों का उपयोग WHERE क्लॉज के साथ किया जा सकता है

= समान

निम्न स्क्रिप्ट सभी महिला सदस्यों को सदस्य तालिका से तुलना ऑपरेटर के बराबर का उपयोग करके मिलती है।
SELECT * FROM `members` WHERE `gender` = 'Female';

"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्न परिणाम उत्पन्न होते हैं।

 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

> इससे बड़ा

निम्न स्क्रिप्ट में सभी भुगतान प्राप्त होते हैं जो भुगतान तालिका से 2,000 से अधिक हैं। का चयन करें * `भुगतानों से` `कहाँ` राशि_ भुगतान`> 2000; "Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्नलिखित परिणाम प्राप्त होते हैं।
 
payment_id membership_number payment_date description amount_paid external_reference_number
1 1 23-07-2012 Movie rental payment 2500 11
3 3 30-07-2012 Movie rental payment 6000 NULL

<> नहीं के बराबर

निम्नलिखित स्क्रिप्ट को सभी फिल्में मिलती हैं जिनकी श्रेणी आईडी 1 नहीं है।
SELECT * FROM `movies` WHERE `category_id`<> 1;
"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्नलिखित परिणाम प्राप्त होते हैं।
 
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8

सारांश

  • SQL WHERE क्लॉज का उपयोग SELECT, UPDATE या DELETE क्वेरी से प्रभावित पंक्तियों की संख्या को सीमित करने के लिए किया जाता है।
  • SQL में WHERE की स्थिति का उपयोग तार्किक ऑपरेटर जैसे AND और OR के साथ किया जा सकता है, तुलना ऑपरेटर जैसे, = आदि।
  • AND लॉजिकल ऑपरेटर के साथ उपयोग किए जाने पर, सभी मानदंडों को पूरा करना होगा।
  • जब OR लॉजिकल ऑपरेटर के साथ प्रयोग किया जाता है, तो कोई भी मापदंड पूरा होना चाहिए।
  • मुख्य शब्द IN का उपयोग मूल्यों की सूची से मेल खाती पंक्तियों का चयन करने के लिए किया जाता है।

ब्रेन टीज़र आइए मान लें कि हम किराए की फिल्मों की एक सूची प्राप्त करना चाहते हैं जो 25/06/2012 को वापस नहीं हुई हैं। हम एसक्यूएल WHERE स्टेटमेंट क्लॉज का उपयोग तुलनात्मक ऑपरेटर और तार्किक ऑपरेटर की तुलना में कम करने के लिए कर सकते हैं।

SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्नलिखित परिणाम मिलते हैं।
 
reference_number transaction_date return_date membership_number movie_id movie_returned
14 21-06-2012 24-06-2012 2 2 0