3.1 மதிப்புகளை ஒப்பிடுதல்: <, >, =, <>
SQL வினவல்களை எழுதும் போது பயன்படுத்தப்படும் பொதுவான முக்கிய வார்த்தைகளில் ஒன்று WHERE
. அதன் உதவியுடன்தான் MySQL க்கு எந்த அட்டவணை வரிசைகளை வடிகட்ட வேண்டும் என்று கூறுகிறோம் (தேர்ந்தெடுக்கவும்).
முக்கிய வார்த்தைக்குப் பிறகு, WHERE
நீங்கள் மிகவும் சிக்கலான மற்றும் தந்திரமான நிலைமைகளை எழுதலாம். இந்த நிலையில் என்ன செயல்பாடுகள் இருக்க முடியும்?
ஆபரேட்டர் | விளக்கம் | உதாரணமாக |
---|---|---|
< | குறைவாக | சம்பளம் < 40000 |
> | மேலும் | சம்பளம் > 100000 |
<= | குறைவாக அல்லது சமமாக | வயது <= 25 |
>= | அதிகமாகவோ அல்லது சமமாகவோ | வயது >= 18 |
= | சமம் | தொழில் = 'புரோகிராமர்' |
<>, != | சமமாக இல்லை | ஆண்டு(join_date) != 2015 |
ஜாவா மொழியைப் போலல்லாமல், கடுமையான சமத்துவத்திற்காக, ஒன்று சமமான எழுத்து இங்கே பயன்படுத்தப்படுகிறது, இரண்டு அல்ல .
மதிப்புகள் சமமாக இல்லை என்பதை நீங்கள் சரிபார்க்க விரும்பினால், இதை இரண்டு வழிகளில் செய்யலாம்: <>
ஒன்று !=
முதல் அணுகுமுறை பாஸ்கல் போன்ற மொழிகளில் பயன்படுத்தப்படுகிறது, இரண்டாவது சி ++ போன்ற மொழிகளுக்கு பொதுவானது. மற்றும் ஜாவா.
SQL இல் ஒதுக்கீட்டிற்கு, இது :=
பாஸ்கலைப் போலவே பயன்படுத்தப்படுகிறது, ஆனால் பணியே மிகவும் அரிதாகவே பயன்படுத்தப்படுகிறது.
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 இடையில்: மதிப்பு வரம்பு
SQL இல் ஒரு சிறப்பு ஆபரேட்டர் உள்ளது, 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
எண் வகைகளை மட்டும் ஆதரிக்கிறது, ஆனால் தேதிகள் மற்றும் சரம் வகைகளையும் கூட ஆதரிக்கிறது . சரங்களுடன் பணிபுரியும் விஷயத்தில், லெக்சிகோகிராஃபிக் வரிசை பயன்படுத்தப்படுகிறது: aaba aabb க்கு முன் வருகிறது
3.4 IN: மதிப்புகளின் பட்டியல்
கூடுதலாக, SQL இல் ஒரு சிறப்பு ஆபரேட்டர் உள்ளது, 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 pc.
- சதவீதம் என்பது எந்த எழுத்து மற்றும் எத்தனை முறை (0 முறை உட்பட).
"I" என்ற எழுத்தில் கடைசிப் பெயர் தொடங்கும் அனைவரையும் தேர்ந்தெடுக்கும் வினவலை எழுதுவோம். கோரிக்கை இப்படி இருக்கும்:
SELECT * FROM employee WHERE name LIKE 'I%'
மேலும் பின்வரும் வினவல் முடிவைப் பெறுகிறோம்:
ஐடி | பெயர் | தொழில் | சம்பளம் | வயது | சேரும் நாள் |
---|---|---|---|---|---|
1 | இவனோவ் இவான் | புரோகிராமர் | 100,000 | 25 | 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
இது சரங்களுடன் மட்டும் வேலை செய்கிறது. என்ன சந்தோஷப்படாமல் இருக்க முடியாது.
GO TO FULL VERSION