3.1 मूल्यों की तुलना: <,>, =, <>
SQL क्वेरी लिखते समय उपयोग किए जाने वाले सबसे सामान्य कीवर्ड में से एक WHERE
. यह इसकी मदद से है कि हम MySQL को बताते हैं कि हम किस तालिका पंक्ति को फ़िल्टर (चयन) करना चाहते हैं।
कीवर्ड के बाद WHERE
आप बहुत जटिल और पेचीदा कंडीशंस लिख सकते हैं। तो इस स्थिति में कौन से ऑपरेशन हो सकते हैं?
ऑपरेटर | विवरण | उदाहरण |
---|---|---|
< | कम | वेतन <40000 |
> | अधिक | वेतन> 100000 |
<= | कम या बराबर | उम्र <= 25 |
>= | अधिक या बराबर | उम्र >= 18 |
= | बराबर | पेशा = 'प्रोग्रामर' |
<>,! = | सम नही | वर्ष (जॉइन_डेट)! = 2015 |
जावा भाषा के विपरीत, सख्त समानता के लिए, यहाँ एक बराबर वर्ण का उपयोग किया जाता है, न कि दो ।
यदि आप यह जांचना चाहते हैं कि मान समान नहीं हैं, तो यह दो तरीकों से किया जा सकता है: <>
या तो !=
पहला दृष्टिकोण पास्कल जैसी भाषाओं में उपयोग किया जाता है, दूसरा C ++ जैसी भाषाओं के लिए विशिष्ट है। और जावा।
एसक्यूएल में असाइनमेंट के लिए, इसे :=
पास्कल के रूप में प्रयोग किया जाता है, लेकिन असाइनमेंट का उपयोग बहुत ही कम होता है।
आइए एक प्रश्न लिखें जहां हम उन सभी कर्मचारियों को प्रदर्शित करते हैं जिन्हें 2015 में काम पर नहीं रखा गया था।
SELECT * FROM employee WHERE YEAR(join_date) != 2015
और हमें निम्न क्वेरी परिणाम मिलता है:
पहचान | नाम | पेशा | वेतन | आयु | शामिल होने की तारीख |
---|---|---|---|---|---|
1 | इवानोव इवान | प्रोग्रामर | 100,000 | 25 | 2012-06-30 |
2 | पेट्रोव पेट्र | प्रोग्रामर | 80,000 | 23 | 2013-08-12 |
3 | इवानोव सर्गेई | टेस्टर | 40,000 | तीस | 2014-01-01 |
6 | वास्का | बिल्ली | 1,000 | 3 | 2018-01-01 |
3.2 तार्किक संचालन और, या, नहीं
WHERE
आप तार्किक संचालन का भी उपयोग कर सकते हैं AND
, OR
और NOT
। और वे ठीक वैसे ही लिखे गए हैं जैसे मैंने उन्हें यहाँ वर्णित किया है। कोई नहीं &&
, ||
या!
चलिए एक SQL क्वेरी लिखते हैं जहां हम उन कर्मचारियों का चयन करते हैं जो 20 वर्ष से अधिक उम्र के हैं और 50K से कम वेतन प्राप्त करते हैं।
SELECT * FROM employee WHERE age > 20 AND salary < 50000
और हमें निम्न क्वेरी परिणाम मिलता है:
पहचान | नाम | पेशा | वेतन | आयु | शामिल होने की तारीख |
---|---|---|---|---|---|
3 | इवानोव सर्गेई | टेस्टर | 40,000 | तीस | 2014-01-01 |
5 | किरिंको अनास्तासिया | कार्यालय प्रबंधक | 40,000 | 25 | 2015-10-10 |
बहुत आसान। आइए एक प्रश्न लिखें जहां हम उन कर्मचारियों का चयन करते हैं जो 100K से अधिक प्राप्त करते हैं और निदेशक के रूप में काम नहीं करते हैं:
SELECT * FROM employee WHERE salary >= 100000 AND NOT occupation = 'Director'
यहां हमने प्रतीक के बजाय विशेष रूप से !=
ऑपरेटर का उपयोग किया NOT
।
और हमें निम्न क्वेरी परिणाम मिलता है:
पहचान | नाम | पेशा | वेतन | आयु | शामिल होने की तारीख |
---|---|---|---|---|---|
1 | इवानोव इवान | प्रोग्रामर | 100,000 | 25 | 2012-06-30 |
3.3 के बीच: मूल्य श्रेणी
एसक्यूएल में भी एक विशेष ऑपरेटर है BETWEEN
जिसके साथ आप जांच सकते हैं कि एक चर दो मानों के बीच है या नहीं। इस ऑपरेटर का उपयोग बूलियन एक्सप्रेशन के अंदर किया जाता है। ऐसे ऑपरेटर का सामान्य रूप है:
variable BETWEEN bottom line AND top_bound
इस मामले में, जावा भाषा के विपरीत, निचली और ऊपरी दोनों सीमाएँ अनुमत अंतराल में शामिल हैं।
आइए एक उदाहरण लिखते हैं जहां हम 40K से 100K तक वेतन वाले सभी कर्मचारियों का चयन करते हैं। अनुरोध ऐसा दिखेगा:
SELECT * FROM employee WHERE salary BETWEEN 40000 AND 100000
और हमें निम्न क्वेरी परिणाम मिलता है:
पहचान | नाम | पेशा | वेतन | आयु | शामिल होने की तारीख |
---|---|---|---|---|---|
1 | इवानोव इवान | प्रोग्रामर | 100,000 | 25 | 2012-06-30 |
2 | पेट्रोव पेट्र | प्रोग्रामर | 80,000 | 23 | 2013-08-12 |
3 | इवानोव सर्गेई | टेस्टर | 40,000 | तीस | 2014-01-01 |
5 | किरिंको अनास्तासिया | कार्यालय प्रबंधक | 40,000 | 25 | 2015-10-10 |
ऑपरेटर BETWEEN
न केवल संख्यात्मक प्रकारों का समर्थन करता है, बल्कि दिनांक और यहां तक कि स्ट्रिंग प्रकारों का भी समर्थन करता है । स्ट्रिंग्स के साथ काम करने के मामले में, लेक्सिकोग्राफिक ऑर्डर का उपयोग किया जाता है: आबा आब से पहले आता है
3.4 इन: मूल्यों की सूची
इसके अलावा, एसक्यूएल के पास एक विशेष ऑपरेटर है IN
जिसके साथ आप यह जांच सकते हैं कि निर्दिष्ट सूची में एक चर शामिल है या नहीं। इस ऑपरेटर का उपयोग बूलियन एक्सप्रेशन के अंदर किया जाता है। ऐसे ऑपरेटर का सामान्य रूप है:
variable IN (value 1 , value 2 , ... value N)
आइए एक प्रश्न लिखें जिसमें हम उन कर्मचारियों का चयन करते हैं जो 20, 25 या 30 वर्ष के हैं। अनुरोध ऐसा दिखेगा:
SELECT * FROM employee WHERE age IN (20, 25, 30)
और हमें निम्न क्वेरी परिणाम मिलता है:
पहचान | नाम | पेशा | वेतन | आयु | शामिल होने की तारीख |
---|---|---|---|---|---|
1 | इवानोव इवान | प्रोग्रामर | 100,000 | 25 | 2012-06-30 |
3 | इवानोव सर्गेई | टेस्टर | 40,000 | तीस | 2014-01-01 |
5 | किरिंको अनास्तासिया | कार्यालय प्रबंधक | 40,000 | 25 | 2015-10-10 |
और अब एक प्रश्न लिखते हैं, जहाँ, इसके विपरीत, हम ऐसे कर्मचारियों का चयन करते हैं जिनकी आयु not
20, 25 या 30 है। क्वेरी इस तरह दिखेगी:
SELECT * FROM employee WHERE age NOT IN (20, 25, 30)
और हमें निम्न क्वेरी परिणाम मिलता है:
पहचान | नाम | पेशा | वेतन | आयु | शामिल होने की तारीख |
---|---|---|---|---|---|
2 | पेट्रोव पेट्र | प्रोग्रामर | 80,000 | 23 | 2013-08-12 |
4 | राबिनोविच मोइशा | निदेशक | 200,000 | 35 | 2015-05-12 |
6 | वास्का | बिल्ली | 1,000 | 3 | 2018-01-01 |
सब कुछ उम्मीद के मुताबिक काम किया। सुंदरता।
3.5 पसंद: स्ट्रिंग पैटर्न
और अंत में, एक और महत्वपूर्ण और अक्सर इस्तेमाल किया जाने वाला ऑपरेटर - LIKE
. स्ट्रिंग्स की तुलना करते समय इसका उपयोग किया जाता है। इसका उपयोग स्ट्रिंग पैटर्न सेट करने के लिए किया जा सकता है। इस ऑपरेटर का उपयोग बूलियन एक्सप्रेशन के अंदर किया जाता है। ऐसे ऑपरेटर का सामान्य रूप है:
variable LIKE 'sample'
पैटर्न में विशेष वर्णों का उपयोग किया जा सकता है: %
और _
।
- अंडरस्कोर का अर्थ है कोई भी वर्ण, हमेशा 1 पीसी।
- प्रतिशत का अर्थ है कोई भी वर्ण और कितनी भी बार (0 बार सहित)।
आइए एक प्रश्न लिखें जो उन सभी लोगों का चयन करेगा जिनका अंतिम नाम "I" अक्षर से शुरू होता है। अनुरोध ऐसा दिखेगा:
SELECT * FROM employee WHERE name LIKE 'I%'
और हमें निम्न क्वेरी परिणाम मिलता है:
पहचान | नाम | पेशा | वेतन | आयु | शामिल होने की तारीख |
---|---|---|---|---|---|
1 | इवानोव इवान | प्रोग्रामर | 100,000 | 25 | 2012-06-30 |
3 | इवानोव सर्गेई | टेस्टर | 40,000 | तीस | 2014-01-01 |
अब कार्य को जटिल करते हैं - नाम में "ओ" होना चाहिए और नाम "ए" के साथ समाप्त होना चाहिए। अनुरोध ऐसा दिखेगा:
SELECT * FROM employee WHERE name LIKE '%o%a'
और हमें निम्न क्वेरी परिणाम मिलता है:
पहचान | नाम | पेशा | वेतन | आयु | शामिल होने की तारीख |
---|---|---|---|---|---|
4 | राबिनोविच मोइशा | निदेशक | 200,000 | 35 | 2015-05-12 |
ठीक है, इसे थोड़ा और कठिन बनाते हैं। आइए उन सभी कर्मचारियों को फ़िल्टर करें जिनकी आयु संख्या "3" से शुरू होती है। अनुरोध ऐसा दिखेगा:
SELECT * FROM employee WHERE age LIKE '3%'
और हमें निम्न क्वेरी परिणाम मिलता है:
पहचान | नाम | पेशा | वेतन | आयु | शामिल होने की तारीख |
---|---|---|---|---|---|
3 | इवानोव सर्गेई | टेस्टर | 40,000 | तीस | 2014-01-01 |
4 | राबिनोविच मोइशा | निदेशक | 200,000 | 35 | 2015-05-12 |
6 | वास्का | बिल्ली | 1,000 | 3 | 2018-01-01 |
वैसे, हमारा आयु स्तंभ प्रकार का है int
, इसलिए LIKE
यह न केवल तार के साथ काम करता है। क्या नहीं बल्कि आनन्दित हो सकता है।
GO TO FULL VERSION