3.1 मूल्यांची तुलना करणे: <, >, =, <>

SQL क्वेरी लिहिताना वापरल्या जाणार्‍या सर्वात सामान्य कीवर्डपैकी एक आहे WHERE. त्याच्या मदतीने आम्ही MySQL ला सांगतो की आम्हाला कोणत्या टेबलच्या पंक्ती फिल्टर करायच्या आहेत (निवडा).

कीवर्ड नंतर, WHEREआपण खूप जटिल आणि अवघड परिस्थिती लिहू शकता. तर या स्थितीत कोणते ऑपरेशन असू शकते?

ऑपरेटर वर्णन उदाहरण
< कमी पगार < 40000
> अधिक पगार > 100000
<= कमी किंवा समान वय <= 25
>= अधिक किंवा समान वय >= १८
= बरोबरी व्यवसाय = 'प्रोग्रामर'
<>, != समान नाही वर्ष (सामील_तारीख) != 2015

जावा भाषेच्या विपरीत, कठोर समानतेसाठी, येथे एक समान वर्ण वापरला जातो, दोन नाही .

जर तुम्हाला हे तपासायचे असेल की मूल्ये समान नाहीत, तर हे दोन प्रकारे केले जाऊ शकते: <>एकतर !=पहिला दृष्टिकोन पास्कल सारख्या भाषांमध्ये वापरला जातो, दुसरा सी ++ सारख्या भाषांसाठी वैशिष्ट्यपूर्ण आहे. आणि जावा.

SQL मधील असाइनमेंटसाठी, ते :=पास्कल प्रमाणे वापरले जाते, परंतु असाइनमेंट स्वतःच फार क्वचितच वापरले जाते.

चला एक क्वेरी लिहूया जिथे आम्ही 2015 मध्ये कामावर न घेतलेले सर्व कर्मचारी प्रदर्शित करू.


SELECT * FROM employee WHERE YEAR(join_date) != 2015
        

आणि आम्हाला खालील क्वेरी परिणाम मिळतात:

आयडी नाव व्यवसाय पगार वय रुजू दिनांक
इव्हानोव्ह इव्हान प्रोग्रामर 100,000 २५ 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
किरिएन्को अनास्तासिया कार्यालय व्यवस्थापक 40,000 २५ 2015-10-10

खूप सोपे. चला एक क्वेरी लिहूया जिथे आम्ही 100K पेक्षा जास्त प्राप्त करणारे आणि संचालक म्हणून काम न करणारे कर्मचारी निवडू:


SELECT * FROM employee WHERE salary >= 100000 AND NOT occupation = 'Director'
        

येथे आम्ही चिन्हाऐवजी !=ऑपरेटर वापरला आहे NOT.

आणि आम्हाला खालील क्वेरी परिणाम मिळतात:

आयडी नाव व्यवसाय पगार वय रुजू दिनांक
इव्हानोव्ह इव्हान प्रोग्रामर 100,000 २५ 2012-06-30

3.3 दरम्यान: मूल्य श्रेणी

तसेच एसक्यूएलमध्ये एक विशेष ऑपरेटर आहे BETWEENज्याद्वारे तुम्ही दोन मूल्यांमध्ये व्हेरिएबल आहे की नाही हे तपासू शकता. हा ऑपरेटर बुलियन एक्स्प्रेशन्समध्ये वापरला जातो. अशा ऑपरेटरचे सामान्य स्वरूप आहे:


variable BETWEEN bottom line AND top_bound
        

या प्रकरणात, जावा भाषेच्या विपरीत, खालच्या आणि वरच्या दोन्ही सीमांना अनुमत अंतरालमध्ये समाविष्ट केले आहे.

चला एक उदाहरण लिहूया जिथे आपण सर्व कर्मचारी 40K ते 100K पगारासह निवडतो. विनंती असे दिसेल:

SELECT * FROM employee WHERE salary BETWEEN 40000 AND 100000

आणि आम्हाला खालील क्वेरी परिणाम मिळतात:

आयडी नाव व्यवसाय पगार वय रुजू दिनांक
इव्हानोव्ह इव्हान प्रोग्रामर 100,000 २५ 2012-06-30
2 पेट्रोव्ह पेत्र प्रोग्रामर 80,000 23 2013-08-12
3 इव्हानोव्ह सेर्गे परीक्षक 40,000 तीस 2014-01-01
किरिएन्को अनास्तासिया कार्यालय व्यवस्थापक 40,000 २५ 2015-10-10

ऑपरेटर BETWEENकेवळ संख्यात्मक प्रकारच नाही तर तारखा आणि अगदी स्ट्रिंग प्रकारांना देखील समर्थन देतो . स्ट्रिंगसह काम करण्याच्या बाबतीत, कोशलेखक क्रम वापरला जातो: aaba aabb च्या आधी येतो

3.4 IN: मूल्यांची सूची

याव्यतिरिक्त, एसक्यूएलमध्ये एक विशेष ऑपरेटर आहे INज्याद्वारे आपण निर्दिष्ट सूचीमध्ये व्हेरिएबल समाविष्ट आहे की नाही हे तपासू शकता. हा ऑपरेटर बुलियन एक्स्प्रेशन्समध्ये वापरला जातो. अशा ऑपरेटरचे सामान्य स्वरूप आहे:

variable IN (value 1 , value 2 , ... value N)

चला एक क्वेरी लिहू ज्यामध्ये आम्ही 20, 25 किंवा 30 वर्षांचे कर्मचारी निवडतो. विनंती असे दिसेल:

SELECT * FROM employee WHERE age IN (20, 25, 30)

आणि आम्हाला खालील क्वेरी परिणाम मिळतात:

आयडी नाव व्यवसाय पगार वय रुजू दिनांक
इव्हानोव्ह इव्हान प्रोग्रामर 100,000 २५ 2012-06-30
3 इव्हानोव्ह सेर्गे परीक्षक 40,000 तीस 2014-01-01
किरिएन्को अनास्तासिया कार्यालय व्यवस्थापक 40,000 २५ 2015-10-10

आणि आता एक क्वेरी लिहूया, जिथे, त्याउलट, ज्यांचे वय not20, 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%'

आणि आम्हाला खालील क्वेरी परिणाम मिळतात:

आयडी नाव व्यवसाय पगार वय रुजू दिनांक
इव्हानोव्ह इव्हान प्रोग्रामर 100,000 २५ 2012-06-30
3 इव्हानोव्ह सेर्गे परीक्षक 40,000 तीस 2014-01-01

आता कार्य गुंतागुंती करूया - नावात "o" असावे आणि नाव "a" ने संपले पाहिजे. विनंती असे दिसेल:

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तो केवळ स्ट्रिंगसह कार्य करत नाही. काय पण आनंद करू शकत नाही.