Tuesday, March 2, 2010

My Sql සිංහලෙන් (8 වන ලිපිය)

  පසුගිය සතියේ අප නිර්මාණය කළ employee ටේබල් එක සලකා බලන විට එහි වරහන් තුළ ඇති ඩේටා ‍ටේබල් ෆීල්ඩ් සලකා බලන්න. මෙහි int,varchar ලෙස භාවිතා කර ඇත්තේ මොනවාද? ඔව් ඇත්තටම මේවා දත්ත වර්ග (Data Types) ලෙස හදුන්වනවා. My Sql වල භාවිතා කරන දත්ත වර්ග මොනවාද? තව ගොඩක් තියෙනවා. ඒවා පහත වගුවක ගොණු කරල තියෙනවා. 

mysql> CREATE TABLE employee (id int(4), name varchar(100), address varchar(120),salary int(6));








 මීටත් වඩා දත්ත වර්ග ගැන විස්තර දැන ගන්න පුළුවන් ගූගල් කරල බැලුවනම්. මේ දත්ත වර්ග විවිධ අවස්ථා වලදී විවිධ වූ වෙනස් අවශ්‍යතා වෙනුවෙන් භාවිතා කරනවා. අපි  නැවතත් පාඩමට යමු. 


ඩේටා බේස් එකක පරාමිතීන් වෙනස් කිරීම

1) ටේබල් එකක නම වෙනස් කිරිම 1 ක්‍රමය




   mysql> Alter table employee rename to Staff;
   Query OK, 0 rows affected (0.02 sec)

2) ටේබල් එකක නම වෙනස් කිරිම 2 ක්‍රමය
   mysql> Rename table staff to employee;
   Query OK, 0 rows affected (0.01 sec)

3)ටේබල් එකක ෆීල්ඩ් නමක් වෙනස් කිරීම. පළමුව ටේබල් එකේ තොරතුරු බලන්න කමාන්ඩ් එක දෙන්න. පසුව  ෆීල්ඩ් නම වෙනස් කරන කමාන්ඩ් එක දෙන්න. නැවතත් ටේබල් එකේ තොරතුරු බලන්න කමාන්ඩ් එක දෙන්න. ෆීල්ඩ් නම වෙනස් වන අයරු බලන්න.
 mysql> describe employee;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(4)       | YES  |     | NULL    |       |
| name    | varchar(100) | YES  |     | NULL    |       |
| address | varchar(120) | YES  |     | NULL    |       |
| salary  | int(6)       | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
4 rows in set (0.02 sec)

mysql> ALTER table employee CHANGE name full_name TINYTEXT;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> describe employee;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | int(4)       | YES  |     | NULL    |       |
| full_name | tinytext     | YES  |     | NULL    |       |
| address   | varchar(120) | YES  |     | NULL    |       |
| salary    | int(6)       | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

4)ඩේටා බේස් එකට නව age නැමති ෆීල්ඩ් එකක් එකතු කිරීම.

 mysql> ALTER table employee ADD age int(2);
 Query OK, 0 rows affected (0.05 sec)
 Records: 0  Duplicates: 0  Warnings: 0

mysql> describe employee;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | int(4)       | YES  |     | NULL    |       |
| full_name | tinytext     | YES  |     | NULL    |       |
| address   | varchar(120) | YES  |     | NULL    |       |
| salary    | int(6)       | YES  |     | NULL    |       |
| age       | int(2)       | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
5 rows in set (0.02 sec)

5)ටේබල් එකෙන් age ෆීල්ඩ් එක ඉවත් කිරීම

mysql> ALTER table employee DROP age;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> describe employee;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | int(4)       | YES  |     | NULL    |       |
| full_name | tinytext     | YES  |     | NULL    |       |
| address   | varchar(120) | YES  |     | NULL    |       |
| salary    | int(6)       | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
4 rows in set (0.02 sec)

6)ටේබල් එකට නව ප්‍රයිමරි කී එකක් එකතු කිරීම

mysql> ALTER table employee ADD PRIMARY KEY (id);
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> describe employee;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | int(4)       | NO   | PRI | 0       |       |
| full_name | tinytext     | YES  |     | NULL    |       |
| address   | varchar(120) | YES  |     | NULL    |       |
| salary    | int(6)       | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
4 rows in set (0.01 sec)


7)ටේබල් එකකින් ප්‍රයිමරි කී එක ඉවත් කිරීම

mysql> ALTER table employee DROP PRIMARY KEY;
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> describe employee;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | int(4)       | NO   |     | 0       |       |
| full_name | tinytext     | YES  |     | NULL    |       |
| address   | varchar(120) | YES  |     | NULL    |       |
| salary    | int(6)       | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
4 rows in set (0.02 sec)

8) ටේබල් එකේ ස්ටෝරේජ් එන්ජින් එක වෙනස් කිරීම.

mysql> alter table employee engine=innodb;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

* මෙය වෙනස් වූවාදැයි බලා ගැනීමට
mysql> show table status; කමාන්ඩ් එක භාවිතා කරන්න මෙහි ප්‍රතිඵලය අව්ල් සහගත ලෙස පෙනුනත් එසේ වන්නේ කන්සෝල් පැනලය මෙම ප්‍රතිඵලය පෙන්වීමට තරම් විශාල නැති නිසායි. එහෙත් විමසිල්ලෙන් බැලුවහොත් තේරුම් ගැනීම නිල් අහස තරම්ම පැහැදිලිය.

  මෙම ලිපියේ ඉතිරි කොටස ලබන සතියේ බදාදා දිනයේ.


2 comments:

  1. සුමුදු මහත්තයෝ වැඩේ නම් ටොප්.....
    හැබැයි මම මෙච්චර කල් ඔයාගේ MYSQL post
    කියෙව්වා. ඒත් දැන් නම් ඔයාගේ site එක load වෙනවා පට්ට slow. අපේ තියෙන්නෙත් slow connection නිසා වැඩේ කරන්නම බැහැ.
    ආ... තව ඉල්ලීමක් කරන්න තියෙනවා ඔයා මේ විෂය පුද්ගලිකව උගන්නනවද? අනික ඔයා අලුත් එකක් post කලාම මගේ mail එකට alert එකක් එන්න හදන්න බැයිද?

    ReplyDelete
  2. ඔබට බොහොම ස්තූතියි. මම විනෝදාංශයක් හැටියට විෂය කීපයක් ඉගෙන ගන්නවා. MY Sql ඒවයෙන් එකක්. මම මෙහි පෝස්ට් ලියන එකේ ප්‍රයෝජන දෙකක් ලබනවා.
    1. මටම සිංහලෙන් මේ විෂයන් ආවර්ජනය කරන්න පුළුවන්. මේ මගේ සටහන් පොතක් වගෙයි.(මොකද MY Sql ගැන සිංහල පොත් මට හම්බ වෙලා නෑ. සමහර විට ඇති)
    2. මේ ලියන දේවල් බලල තවත් කෙනෙක් දෙයක් ඉගෙන ගනීවි. (ඒක මට සතුටක්)

    මම පාසල් IT ගුරුවරු කීප දෙනෙකුට VB උගන්වනවා. හැබැයි ඒ අයට My Sql නම් ටිකක් බරයි. හැම සඟරාවකම පොතකම VB උගන්වන්නේ උඩින් පල්ලෙන්. මගේ අදහස My Sql වලින් පස්සේ VB Advanced ලිපි ටිකක් ලියන්නයි. (ශුවර් නෑග ටයිප් කරන්න ගියාම පණ යනවන)

    ඊ මේල් ඇලට් එකක් හදන්නනම් මම වැඩිය දන්නේ නෑ. ඒ වෙනුවට ඔයා මගේ Follow කෙනෙක් වෙන්න. එහෙම නැත්නම් ගූගල් රීඩර් එක use කරන්න.

    ReplyDelete

මගේ ලිපිය ගැන ඔබේ වටිනා අදහස මා හට ලබා දෙන්නට කාරුණික වන්න. ඒක මට ගොඩක් වටිනවා.