MySQL-ன் முதலாம் பாகத்தில் database மற்றும் tables-ஐ எவ்வாறு உருவாக்குவது, அதனை எவ்வாறு பயன்படுத்துவது என்பது போன்ற அடிப்படையான விஷயங்களைப் பற்றிப் பார்த்தோம். இந்தப் புத்தகத்தில் பல்வேறு வகையான queries-ஐப் பயன்படுத்தி வெவ்வேறு விதங்களில் தகவல்களை எவ்வாறு வெளிக் கொண்டு வருவது என்பது பற்றிப் பார்க்கப் போகிறோம்.
1 Retrival of Data
ஒரு database-ல் columns-ஐத் தேர்ந்தெடுக்கும் போது என்ன நிகழ்கிறது, rows-ஐத் தேர்ந்தெடுக்கும்போது என்ன நிகழ்கிறது என்பதைப் பின்வரும் படத்தின் மூலம் தெளிவாகப் புரிந்து கொள்ளலாம
1.1 Basic select statement
Query 1
ஒரு table-ல் உள்ள அனைத்து columns-ன் தகவல்களும் வெளிப்பட வேண்டுமெனில் பின்வரும் query-ஐப் பயன்படுத்தலாம்.
select * from department;
Query 2
ஒருசில குறிப்பிட்ட columns-ன் தகவல்கள் வெளிப்பட வேண்டுமெனில், select-ஐத் தொடர்ந்து அத்தகைய columns-ன் பெயர்களைக் குறிப்பிட வேண்டும்.
select dept_name,location from department;
Query 3
select-ஐத் தொடர்ந்து கொடுக்கப்படும் columns, முன்னும் பின்னுமாகக் கூட இருக்கலாம்.
select location,dept_name from department;
1.2 Arithmetic Expressions
கூட்டல், கழித்தல், பெருக்கல், வகுத்தல் ஆகிய நான்குமே arithmetic operators எனப்படுகின்றன. இவற்றைப் பயன்படுத்தி நாம் தகவல்களை நமக்கு விரும்பிய வடிவில் பெறலாம். இதனைப் பின்வரும் உதாரணத்தில் பார்க்கலாம்.
Query 4
ஒரு நிறுவனத்தில் உள்ள அனைத்து ஊழியர்களுக்கும், அவர்களின் தற்போதைய சம்பளத்துடன் 2475 ரூபாய் உயர்த்திக் கொடுக்க உத்தரவு வருகிறதெனில், ஒவ்வொருவருடைய புதிய சம்பளத்தையும் கணிக்க கூட்டல் எனும் arithmetic operator-ஐப் பயன்படுத்தலாம்.
select name,salary,salary+2475 from employees;
இதில் name மற்றும் salary என்பது ஏற்கனவே அந்த tables-ல் உள்ள columns ஆகும். ஆனால் salary+2475 என்பது அந்த table-ல் இல்லாத, நமது தேவைக்காக நாம் உருவாக்கிய ஒரு புதிய column.
Query 5
Arithmetic operations-ஐ ஒரு column-ல் உள்ள மதிப்புகளின் மீது செலுத்தி, ஒரு புதிய column-ஐ நாம் உருவாக்கும்போது, ‘Operator Precedence’ எனும் ஒரு் முக்கியமான விஷயத்தை நினைவில் கொள்ள வேண்டும். உதாரணத்துக்கு சென்ற Query-ல், நாம் கண்டுபிடித்த ஒவ்வொருவரின் புதிய மாத சம்பளத்தையும் வருடத்திற்குக் கணக்கிட அதனை 12-ஆல் பெருக்கினால் போதுமானது. எனவே query-ஐப் பின்வருமாறு அமைப்போம்.
select name,salary,12*salary+2475 from employees;
இதில் ஒவ்வொருவருடைய தற்போதைய சம்பளமும் 12-ஆல் பெருக்கப்பட்டு, பின்னர் அதனுடன் 2475 ரூபாய் கூட்டப்படுகிறது. அதாவது கூட்டல் கணக்கு நடைபெற்று, புதிய சம்பளம் கண்டுபிடிப்பதற்கு முன்னரே, பெருக்கல் கணக்கு நடைபெற்றுவிடுகிறது. இதுவே ‘Operator Precedence’ ஆகும். இதனைத் தவிர்ப்பதற்கு நாம் அடைப்புக்குறியைப் பயன்படுத்தலாம். அதாவது எந்தக் கணக்கு முதலில் நடைபெற வேண்டுமோ அதனை அடைப்புக்குறிக்குள் கொடுக்க வேண்டும். இது பின்வருமாறு.
select name,salary,12*(salary+2475) from employees;
1.3 Null Values
Query 6
பின்வரும் query-ல் commission_pct எனும் column ஒவ்வொருவருக்கும் எவ்வளவு சதவீதம் commission கிடைக்கிறது எனும் மதிப்பினைப் பெற்றுள்ளது. இதில் ஒருசில நபர்களுக்கு Null எனும் மதிப்பு உள்ளது. இத்தகைய Null எனும் மதிப்பினைப் பெற்றவர்களுக்கு commission பூஜ்ஜியம் என்றோ அல்லது எதுவும் கிடையாது என்றோ அர்த்தம் இல்லை. அவர்களுக்கு இன்னும் commission வரையறுக்கப்படவில்லை என்றே அர்த்தம்.
select name,role,salary,commission_pct from employees;
Query 7
Null மதிப்பினைப் பெற்றுள்ள column-ன் மீது arithmetic operations-ஐ செலுத்தி உருவாக்கப்படும் புதிய column-ம் Null மதிப்பினையே பெற்றிருக்கும்.
select name,salary,commission_pct,12*salary*commission_pct from employees;
1.4 Null functions
Query-8
ஒரு column, ‘NULL’ மதிப்பினை வெளிப்படுத்துவதற்கு பதிலாக வேறு ஏதேனும் மதிப்பினை வெளிப்படுத்துமாறு செய்ய IFNULL function-ஐப் பயன்படுத்தலாம்.
select name, salary, ifnull(commission_pct,5), 12*salary*ifnull(commission_pct,5) from employees;
இதில் commission_pct என்பது null மதிப்பினைப் பெற்றிருப்பின், அதனை 5 எனக் கொள்ளுமாறு அமைத்துள்ளது.
Query-9
NULLIF என்பது இரண்டு மதிப்புகளை ஒப்பிட்டு அவை சமமாக இருந்தாலோ அல்லது ஏதேனும் ஒரு் மதிப்பு null-ஆக இருந்தாலோ NULL மதிப்பினை வெளிப்படுத்துகிறது.
select emp_id,year1,year2,nullif(year1,year2) from performance;
Query-10
COALESCE மூலம் ஒன்றன்பின் ஒன்றாக நிறைய மதிப்புகளைக் குறிப்பிட்டு, முதல் மதிப்பு null-ஆக இருந்தால் இரண்டாவது மதிப்பினையும், இரண்டாவதும் null-ஆக இருந்தால் மூன்றாவது மதிப்பினையும், அதுவும் null-ஆக இருப்பின் அதற்கு அடுத்தடுத்த மதிப்புகளையும் வெளிப்படுத்துமாறு செய்யலாம்.
select emp_id,year1,year2,year3,coalesce(year1,year2,year3) from performance;
1.5 Column aliases
Query-11
நாம் உருவாக்கும் புதிய column-க்கு ஒரு பெயர் வைக்க விரும்பினால் column alias-ஐப் பயன்படுத்தலாம். உதாரணத்துக்கு salary+2475 என்று நாம் உருவாக்கிய புதிய column-க்கு ‘New Salary’ என்று பெயர் வைக்க விரும்பினால், அது பின்வருமாறு.
select name,salary,salary+2475 as ‘new salary’ from employees;
Query-12
சென்ற quey-ல் new salary எனும் alias name இரண்டு பெயராக உள்ளதால், அது double quotes-க்குள் கொடுக்கப்பட்டுள்ளது. இங்கு ஒரே ஒரு பெயர் alias பெயராக உள்ளத்தால், அது double quotes இல்லாமல் கொடுக்கப்படுவதை கவனிக்கவும். அவ்வாறே as எனும் keyword, optional ஆகும். எனவே அது இல்லாமலேயே ஒரு் column-க்கு பெயர் வைக்கப்பட்டிருப்பதையும் கவனிக்கவும்.
select commission_pct as comm, salary sal from employees;