Saturday, August 24, 2013

SQL #02 පාඩම - ඩේටාබේස් එකකින් අවශ්‍ය දත්ත SELECT කරමු

ඩේටාබේස් එකක දැනටමත් ගබඩාකර ඇති දත්ත අතරින් අපිට අවශ්‍ය දත්ත තෝරා ලබාගැනීම සඳහා SELECT විධානය භාවිතා කළ හැකියි. මේ පිළිබඳව අපි අදියර කීපයකින් සරලව ඉගෙනගනිමු.


ටේබල් එකක ඇති සියලුම දත්ත ලබාගැනීම


මෙවැනි අවස්ථාවකදී ඔබට පහත ආකෘතිය භාවිතා කළ හැකියි.

SELECT *
FROM table;

උදාහරණයක් ලෙස, අපි පළමුවැනි පාඩමෙන් සකසාගත් ඩේටාබේස් එක තුළ ඇති Student ටේබල් එකේ ඇති සියලු දත්ත පෙන්වීම සඳහා පහත පරිදි විධානය ලිවිය හැකියි. (සෑම විධානයක්ම semi-colon එකකින් වෙන්/අවසන් කළ හැකියි)

SELECT *
FROM STUDENT;

මේ කියන්නේ Student නැමැති ටේබල් එකේ ඇති සියලුදේ (*) පෙන්වන ලෙසයි.

ඔබ පළමු පාඩමේ අවසානයේදී විවෘත කරගත් SQL ටැබ් එක තුළ විධානය ඇතුළත් කර Go මත ක්ලික් කරන්න. එවිට පහත පරිදි ප්‍රතිඵලය ලැබෙනු ඇති.


මේ Student ටේබල් එක තුළ ගබඩාකර තිබූ සියලු තොරතුරුයි. මේ විදියටම, Marks සහ Subject ටේබල් දෙකත් query කර බලන්න. ඉහත ඇති columns පිළිබඳව අවධානය යොමු කරන්න. මීළඟ අදියරේදී ඒවා වැදගත් වේවි.

ටේබල් එකක ඇති Columns කීපයකින් පමණක් දත්ත ලබාගැනීම


මේ සඳහා SELECT විධානය පහත ආකෘතියෙන් භාවිතා කළ හැකියි.

SELECT column1, column2, column3
FROM table;

ඉහත Student ටේබල් එකෙන් මට අවශ්‍ය වන්නේ FIRSTNAME සහ HOMETOWN පමණක් නම් පහත පරිදි විධානය ලිවිය හැකියි.

SELECT FIRSTNAME, HOMETOWN
FROM STUDENT;

මෙය ඔබ අපේ SQL ටැබ් එක තුළ ධාවනය කළහොත් පහත ප්‍රතිඵලය ලැබේවි.


මෙයිනුත් HOMETOWN පමණක් අවශ්‍ය වුණිනම්,

SELECT HOMETOWN
FROM STUDENT;

මෙහි ගාල්ල සහ ගම්පහ දෙවරක් බැගින් යෙදී තිබෙනවා ඔබට පෙනෙනවා ඇති. නමුත් එක් නගරයක් එක් වරක් පමණක් පෙන්වීමට අවශ්‍ය වුණිනම්..... ඒ පිළිබඳව ඊළඟ අදියරෙන් ඉගෙන ගනිමු.


කීපවරක් යෙදී ඇති දත්ත එක් වරක් බැගින් පමණක් ලබාගැනීම


මේ සඳහා අපට SELECT DISTINCT විධානය භාවිතා කළ හැකියි. එහි ආකෘතිය මෙසේයි.


SELECT DISTINCT column1, column2
FROM table;

කලින් කී පරිදි, අපිට එක් නගරයක් එක් වරක් පමණක් පෙන්වීමට අවශ්‍යනම්,

SELECT DISTINCT HOMETOWN
FROM STUDENT;


කිසියම් කොන්දේසියක් ඉටුවන දත්ත පමණක් ලබාගැනීම


මේ සඳහා අපිට ඉහත ඉගෙනගත් ආකෘතියටම තවත් පේළියක් එකතු කළ හැකියි. ඒ WHERE clause එකයි. එහි ආකෘතිය පහත පරිදි වේ.


SELECT column1, column2
FROM table
WHERE column operator value;

(Operator යන්නට ඔබ දන්නා අගයයන් සැසඳීමට භාවිතා කරන සාමාන්‍ය =, <> ,> , <, >= ,<= යනාදී operators යෙදිය හැකියි).


උදාහරණයක් ලෙස, මට Student ටේබල් එකෙන් ගැහැණු ළමුන්ගේ පමණක් FIRSTNAME,LASTNAME සහ GENDER ලබාගත යුතු වන්නේ නම්,


SELECT FIRSTNAME,LASTNAME,GENDER
FROM STUDENT
WHERE GENDER = 'ස්ත්‍රී';

(Value එක text නිසා quotations තුළ ලබාදී ඇත).


ඉහත විධානය ඔබේ SQL ටැබ් එක තුළ ධාවනය කර බලන්න.



කොන්දේසි කීපයක් ඉටුවන දත්ත පමණක් ලබාගැනීම

මේ සඳහා WHERE clause එක තුළ AND සහ OR භාවිතා කළ හැකියි.

උදාහරණයක් ලෙස මට උපන් නගරය ගම්පහ වන එසේම ස්ත්‍රීන්ද වන සිසුන්ගේ තොරතුරු පමණක් පෙන්විය යුතුනම් එම (සැසඳීම් දෙකම ඉටුවිය යුතු නිසා) AND භාවිතා කළ හැකියි.

SELECT FIRSTNAME,LASTNAME,GENDER
FROM STUDENT
WHERE GENDER 'ස්ත්‍රී' AND HOMETOWN 'ගම්පහ' ;

(WHERE clause එක තුළ භාවිතා කරන columns select කිරීම අත්‍යාවශ්‍ය නොවේ).



එසේ නැතිනම්, මට උපන් නගරය ගම්පහ වන හෝ ස්ත්‍රීන් වන සිසුන්ගේ තොරතුරු පමණක් පෙන්විය යුතුනම් එම (සැසඳීම් දෙකෙන් එකක් පමණක් ඉටුවිය යුතු නිසා) OR භාවිතා කළ හැකියි.

SELECT FIRSTNAME,LASTNAME,GENDER,HOMETOWN
FROM STUDENT
WHERE GENDER 'ස්ත්‍රී' OR HOMETOWN 'ගම්පහ' ;



- සමන් ස්ත්‍රී නොවේ. එහෙත් ගම්පහ නගරයේය.
- සාමා ගම්පහ නොවේ. එහෙත්  ස්ත්‍රී වේ.
- නයනා ස්ත්‍රී මෙන්ම ගම්පහ නගරයේද වේ.

මේ ආකාරයෙට OR භාවිතයෙන් අප සසඳා බලන කොන්දේසි දෙකෙන් අවම වශයෙන් එකක්වත් ඉටුවන තොරතුරු ලබාදෙන බව ඔබට පැහැදිලි ඇති.

AND සහ OR දෙකම භාවිතා කර කොන්දේසි කීපයක් සහිත SQL විධානද ලිවිය හැකියි.

උදාහරණයක් ලෙස ස්ත්‍රී හෝ පුරුෂ වන එසේම ගම්පහ දිස්ත්‍රික්කයේ සිසුන්ගේ තොරතුරු ලබාගත යුතුනම්...


SELECT FIRSTNAME,LASTNAME,GENDER,HOMETOWN
FROM STUDENT
WHERE (GENDER 'ස්ත්‍රී' OR GENDER 'පුරුෂ') AND HOMETOWN 'ගම්පහ' ;

මෙහි වරහන් භාවිතා කර ඇති ආකාරය පිළිබඳවද අවධානය යොමු කරන්න.



SELECT විධානයෙන් ලබාගන්නා තොරතුරු ආරෝහණ/අවරෝහණව පෙළගැස්වීම

මේ සඳහා ඉහත අප ඉගෙනගත් විධානයන්හි අවසානයට තවත් පේළියක් එක් කළ හැකියි. ඒ ORDER BY keyword එකයි.

SELECT *
FROM table
ORDER BY column1,column2 ASC/DESC;

උදාහරණයක් ලෙස මට සියලු සිසුන්ගේ තොරතුරු ඔවුන්ගේ අනු අංකයේ අවරෝහණ පිළිවෙලින් පෙළගැස්විය යුතුනම්,

SELECT *
FROM STUDENT
ORDER BY INDEXNUMBER DESC;

(ORDER BY ට පසුව ලබාදෙන්නේ පෙළගැස්විය යුතු අගයන් ඇති column එකයි. අවරෝහණ පිළිවෙලින් අවශ්‍ය නිසා Column එකට පසුව DESC ලෙස ලබාදී ඇත. ආරෝහණ පිළීවෙලින් අවශ්‍යනම් කිසිවක් ලබානොදී තැබීමට හෝ ASC ලෙස ලබාදිය හැකියි.).



ඇතුළත් කර ඇති දත්ත ලබාගැනීම පිළිබඳව පාඩම මෙතෙකින් අවසන්. මීළඟ පාඩමෙන් අපි දත්ත ඇතුළත් කිරීම, වෙනස් කිරීම සහ මකා දැමීම ගැන ඉගෙනගනිමු.