Tuesday, August 7, 2012

MySQL - Basics

MySQL - Basics
දැන් MySQL හි භාවිතා වන මූලික command ගැන සලකා බලමු.
show databases ;
දැනට පවතින MySQL Databases වල list එකක් ලබා ගැනීම සඳහා භාවිතා කරයි.
create database ;
අළුතින් database එකක් නිර්මාණය කිරීම සඳහා භාවිතා කරයි.
උදා : create database myDB ;
drop database ;
දැනට පවතින database එකක් delete කිරීම සඳහා භාවිතා කරයි.
උදා : drop database myDB ;
use ;
Database එකක් open කර ගැනීමට භාවිතා කරයි.
උදා : use myDB ;
show tables ;
දැනට Open කර ඇති database එකේ ඇති tables වල list එකක් ලබා ගැනීම සඳහා භාවිතා කරයි.
desc ;
දෙන ලද table එකක meta data ලබා ගැනීම සඳහා භාවිතා කරයි.
උදා : desc myTable ;
01
NOTE :
create සහ drop commands සඳහා if exists හෝ if not exists යන යෙදුම් භාවිතා කිරීමෙන් ඒවා‍ ක්‍රියාත්මක වීමේදී ඇතිවන errors නවතාලිය හැක. එසේ MySQL Script එකක් run කරවීමේදී ඇති විය හැකි errors අවම කලයුතු අතර මන්දයත්, මෙම errors නිසා සමහර විට අපගේ ඉතිරි commands run නොවීමට ඉඩ ඇති බැවිනි.
පැහැදිලි කිරීම :
create database myDB ; ලෙස ලබා දුන් විට දැනටමත් myDB ලෙස database එකක් පවතී නම් error එකක් ලබා දේ.
එවිට create database if not exist myDB; ලෙස ලබා දුන් විට myDB ලෙස database එකක් නැතිනම් පමණක් එය නිර්මාණය කරයි.
drop database myDB ; ලෙස ලබා දුන් විට දැනට myDB ලෙස database එකක් නැතිනම් error එකක් ලබා දේ.
එවිට drop database if exist myDB; ලෙස ලබා දුන් විට myDB ලෙස database එකක් තිබේ නම් පමණක් එය ඉවත් කරයි.

Tables නිර්මාණය කිරීම

මේ සඳහා create tablecommand එක භාවිතා කරයි.මෙහි syntax එක විස්තර කරනවාට වඩා උදාහරණ මගින් පැහැදිලි කරන විට වඩා හොඳින් අවබෝධ කරගත හැකි වනු ඇත.NOTE:
MySQL Scripts run කිරීම සඳහා අප භාවිතා කරන්නේ MySQL CommandLine Client බැවින් type කරන commands edit කර ගැනීම අපහසුය. එනිසා ඒවා වෙනම text file එකක type කර පසුව MySQL CommandLine Client හි paste කරන්න.එවිට type කල command එක දෝෂ සහගත වුවත් text file එකේ ඇති copy එක වෙනස් කර නැවත භාවිතා කල හැක.
සරල Table එකක් නිර්මාණය කිරීමට ලියා ඇති සරලම ආකාරයේ MySQL script එකක් පහත දැක්වේ.
(මෙය run කිරීමට පෙර ඔබට අවශ්‍ය database එක නිර්මාණය කර use command එක මගින් එය තුලට ඇතුලත් වී තිබිය යුතුය.)
create table student(student_id varchar(10) not null,student_name varchar(50) not null,age int(2) default 5);
මෙය කියවීමට අපහසු බැවින් පහත පරිදි එය පේලි වලට වෙන් කර type කිරීම සම්ප්‍රදායිකව සිදු කරනු ලබයි.
 create table student(
  student_id varchar(10) not null,
  student_name varchar(50) not null,
  age int(2) default 5
 );
පැහැදිලි කිරීම :
  • create table student - මෙහි student යනු නිර්මාණය වීමට අවශ්‍ය table එකේ name එක වේ.
  • ; - ඕනෑම MySQL command එකක් අවසානයේ semi-colon ( ; ) එකක් යෙදිය යුතුය.
  • student_id varchar(10) not null
    student_id යනු අදාල column එකේ name එකයි.
    varchar(10) හි varchar යනු student_id සඳහා ලබාදෙන data type එකයි. වරහන් තුල ලබා දී ඇත්තේ ඒ සඳහා තිබිය හැකි උපරිම අකුරු ගණන වේ.
    not null යන්නෙන් නිරූපණය වන්නේ student_id සඳහා අනිවාර්යෙන්ම value එකක් තිබිය යුතු බවයි.
  • student_name varchar(50) not null - ඉහත අයුරින්ම වේ.
  • age int default 5
    age යනු අදාල column එකේ name එකයි.
    int යනු age සඳහා ලබාදෙන data type එකයි.
    default 5 යන්නෙන් නිරූපණය වන්නේ age සඳහා value එකක් ලබා නොදුනහොත් ඒ සඳහා MySQL විසින් ලබාදිය යුතු default value එකයි.

Columns සඳහා යෙදිය හැකි ප්‍රධාන data types

varcharVariable Charactersඅකුරු, ඉලක්කම් වැනි ගණිතමය වටිනාකමක් රහිත විවිධ දිගින් යුත් text සඳහා භාවිතා කරයි.
උපරිම අකුරු ගණන 255 කි.

උදා :
varchar(10) ලෙස ඇති නම් උපරිම වශයෙන් අකුරු 10 කින් යුත් text සඳහා භාවිතා කරයි.
charCharactersදී ඇති නිශ්චිත දිගකින් යුත් අකුරු, ඉලක්කම් වැනි ගණිතමය වටිනාකමක් රහිත text සඳහා භාවිතා කරයි.
උපරිම අකුරු ගණන 255 කි.

උදා :
nic char(10) ලෙස ඇති නම් අනිවාර්යෙන් අකුරු 10 කින් යුත් text සඳහා භාවිතා කරයි.
intIntegersනිඛිල (Integers) ගබඩා කිරීමට භාවිතා කරයි.
-2147483648 සිට 2147483647 දක්වා හෝ 0 සිට 4294967295 දක්වා UNSIGNED (ධන සංඛ්‍යා පමණක්) වශයෙන් භාවිතා කලහැක.

උදා :
int points ලෙස ඇති නම්
int age unsigned ලෙස ඇති නම් තිබිය හැක්කේ ධන සංඛ්‍යා පමණි.

int(5) වශයෙන් ලියූ විට ZeroFill on කර තිබේ නම් ඉලක්කමක අනිවාර්යෙන් තිබිය යුතු ඉක්කම් ගණන නිරූපණය කලහැක.එම ඉලක්කම් ගණනට අඩුවෙන් ඉලක්කම් ඇති අගයක් දුන් විය ඉතිරිය 0 වලින් පිරේ.

උදා :
int(5) distance unsigned zerofill ලෙස ඇති විට එම column එකට 3 ඇතුලත් කල විට එය ගබඩා වන්නේ 00003 ලෙසයි.
doubleFloating Point Numbersදශම සංඛ්‍යා ගබඩා කිරීමට භාවිතා කරයි.
-1.7976931348623157E+308 සිට -2.2250738585072014E-308 දක්වා, 0, සහ 2.2250738585072014E-308 සිට 1.7976931348623157E+308 ඉලක්කම් භාවිතා කලහැක.
double(7,2) වශයෙන් ලියූ විට ගබඩා කලහැකි ඉලක්කම් වල උපරිම වශයෙන් සංඛ්‍යා 7ක් ද දශම තිතෙන් පසුව උපරිම වශයෙන් ඉලක්කම් 2 ක් ද තිබිය හැකි බව නිරූපණය කලහැක.

උදා :
qty double(6,2) ලෙස ඇති නම් උපරිම වශයෙන් ඉලක්කම්(දශම සංඛ්‍යාද ඇතුළුව) 6 ක් තිබිය හැකි අතර දශම කොටසේ ඉලක්කම් 2ක් උපරිම වශයෙන් තිබිය හැකි බව නිරූපණය කරයි.
booleanTrue/Falsetrue හෝ false ගබඩා කර ගබා ගනී.

උදා :
isProcessed boolean
dateDateYYYY-MM-DD ආකාරයේ දිනයක් ගබඩා කර ගබා ගනී.
'1000-01-01' සිට '9999-12-31' දක්වා දිනයන් ඇතුලත් කලහැක.

උදා :
joinedDate date
timeTimeHH:MM:SS ආකාරයේ වේලාවක් ගබඩා කර ගබා ගනී.
'-838:59:59' සිට '838:59:59' දක්වා වේලාවන් ඇතුලත් කලහැක.

උදා :
retunTime time
datetimeDate & TimeYYYY-MM-DD HH:MM:SS ආකාරයෙන් දිනයක් සහ වේලාවක එකතුවක් ගබඩා කර ගබා ගනී.
'1000-01-01 00:00:00' සිට '9999-12-31 23:59:59' දක්වා ඇතුලත් කලහැක.

උදා :
fileCreated datetime