Saturday, May 5, 2012

Oracle SQL සිංහලෙන් - Chapter 2 - Part 03

කලින් පොස්ට් ඒකෙන් Operators ගැනත් ඒවා යොදාගන්න හැටිත් ඉගෙන ගත්තනේ. අද අපි බලමු Logical Operators එහෙමත් නැත්තම් තාර්කික සංකේත ගැන. ඒ කියන්නේ AND OR NOT වගේ ඒවා. මේවා ඔයාල කලින් ඉගෙනගෙනත් ඇති. ඒත් අපි බලමු SQL වලදී ඒවා යොදා ගන්නේ කොහොමද කියල.

සංකේතය
අර්ථය
AND
සංරචක අවශ්‍යතා දෙකම සත්‍ය වූ විට මුළු ප්‍රකාශනයම සත්‍ය වේ.
OR
සංරචක අවශ්‍යතා දෙකෙන් එකක් හෝ සත්‍ය වූ විට මුළු ප්‍රකාශනයම සත්‍ය වේ.
NOT
සංරචක අවශ්‍යතා සත්‍ය නොවූ විට ප්‍රකාශනය සත්‍ය වේ.

මෙම Logical Operators භාවිතා කරන්නත් අපි යොදා ගන්නේ WHERE Clause එකයි. දැන් මේ අපි තර්කනයන් සඳහා උදාහරණ කිහිපයක් බලමු.

AND Operator

SELECT first_name,
  last_name,
  salary
FROM employees
WHERE last_name LIKE 'S%'
AND salary > 1000;



මෙතැනදී  සේවකයාගේ අවසාන නමේ මුල් අකුර S වන හා වැටුප 1000ට වැඩ වැඩි වන අය ඔක්කොම අපිට තෝරලා දෙනවා.

OR Operator

SELECT first_name,
  last_name,
  salary
FROM employees
WHERE last_name LIKE 'S%'
OR salary > 1000;



මෙතනදීත් මම යොදා ගත්තේ AND එකේදී ගත්ත උදාහරණයමයි. AND වෙනුවට OR කියන එක විතරක් වෙනස් කලා. බලන්න ඒ දෙකෙන් ලැබෙන ප්‍රතිපල අතර වෙනස.

මෙතැනදී අන්තිම නම S අකුරෙන් පටන් ගන්න හෝ වැටුප 1000ට වැඩි කියන අවශ්‍යතා දෙකෙන් එකක් සත්‍ය කරන සේවකයෙක්ගේ නම් අපිට ලබාදෙනවා.

NOT Operator

SELECT first_name,
  last_name,
  salary
FROM employees
WHERE last_name NOT LIKE 'S%'



මේතැනදී සේවකයාගේ අවසාන නමේ මුල් අකුර S නොවන අවස්ථා සියල්ලම අපිට ලබාදෙනවා.

දැන් අපි Operators ගැන හඳුනාගෙන අවසන්. දැන් අපි බලමු මේ Operators වල ප්‍රමුඛතා පිළිවෙල කොහොමද කියලා. එතකොට අපිට නිවැරදිව මේ Operators භාවිතා කරන්න පුළුවන්.
 
පිළිවෙල
අර්ථය - සංකේතය
1
අංක ගණිතමය සංකේත
2
ඈඳුම් සංකේත
3
සැසඳුම් කොන්දේසි
4
IS [NOT] NULL, LIKE, [NOT] IN
5
[NOT] BETWEEN
6
සමාන නැත
7
NOT
8
AND
9
OR

මේක ටිකක් පැහැදිලි කරගමු.

SELECT last_name,
  job_id,
  salary
FROM employees
WHERE job_id = 'SA_REP'
OR job_id    = 'SA_MAN'
AND salary   > 10000;




මේක වෙන්නේ කොහොමද කියල බලමු. මේකෙදි SA_REP කියන ඒක සත්‍ය වෙන ප්‍රතිපල ටික අපිට ලබා දෙනවා. ඒ වගේම SA_MAN එකත් වැටුපත් AND එකකින් සම්බන්ධ කරලා තියෙන නිසා වැටුප 10000 වැඩි SA_MANලව අපිට හොයා ගන්න පුළුවන්.

 SELECT last_name,
  job_id,
  salary
FROM employees
WHERE (job_id = 'SA_REP'
OR job_id    = 'SA_MAN')
AND salary   > 10000;

මෙතැනදී SA_REP සහ SA_MAN කියන දෙකම වරහන් ඇතුලෙයි දල තියෙන්නේ. ඒ නිසා ඒ අවස්ථා දෙකෙන් එකක් වගේම  වැටුප 10000ට වැඩ වැඩි අයගේ විස්තර මෙතැනදී අපිට ලැබෙනවා.



මෙතනින් Operators ඉවර වෙනවා. තවත් දේවල් ඊළඟ පොස්ට් එකෙන් කියල දෙන්නම්.
Facebook Comments Plugin Bloggerized by උත්පලගේ අඩවිය

0 අදහස්:

Post a Comment