Wednesday, February 24, 2010

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

මේ ලිපිපෙළ මුල සිට කියෙව්වනම් My Sql දැනටමත් ලේසියි කයල හිතෙනවා ඇති ඔබට. ඔව් ඇත්තටම අමාරු දෙයක් නෙමෙයි. MS word තරම්ම ලේසියි.



දැන් බලමු character set එකක් නම් කර තිබෙන්නේ ‍කෙසේද කියා

mysql> show collation like 'latin1%';  කමාන්ඩ් එක දෙන්න.
8 rows in set (0.00 sec)



Collation
Meaning
latin1_german1_ci
German DIN-1
latin1_swedish_ci
Swedish/Finnish
latin1_danish_ci
Danish/Norwegian
latin1_german2_ci
German DIN-2
latin1_bin
Binary according to latin1 encoding
latin1_general_ci
Multilingual (Western European)
latin1_general_cs
Multilingual (ISO Western European), case sensitive
latin1_spanish_ci
Modern Spanish

මෙයින් පෙනෙනවා එකම නමින් යුත් character set එකකට collation උප වර්ග කීපයක් ඇතිබව. 4 රූපයේ default colomn  එකේ yes සටහන් ඇත්තේ latin1 සමග සම්මතව යෙදෙන collation එකයි. එනම් character set එකකට default collation එකට අමතරව ඊට අදාල අනෙක් collation ද භාවිතා කළ හැකිය. එහෙත්
·         වෙනස් වර්ගයේ character set සඳහා එකම collation එක තිබිය නොහැක.
·         සෑම character set සෙට් එකකට default collation එකක් ඇත.
·         4 රූපයේ default column එකේ yes ලෙස ඇත්තේ මෙම   default collation එකයි.
·          collation  වල සාමාන්‍යයයෙන් character set නමට පසුව language name එකද ඊට පසුව _ci (case insensitive), _cs (case sensitive), හෝ _bin (binary) වලින්ද අවසාන කෙරේ.

මේ පාඩමට character set  හා collation වල දැනුම එක් කලේ අපට සාමාන්‍යයන් ලංකාවේ අධ්‍යපන ආයතන වලදී මෙම කොටස් ගැන වැඩිදුර ඉගැන්වීමක් නොකෙරෙන බැවිනි.
මෙම ලින්ක් එක භාවිතා කලොත් මේ ගැන වැඩිදුර ඉගෙන ගන්න පුළුවන්. මා මීට වඩා මේ ගැන පැහැදිලි කරන්නේ නෑ .

My Sql කමාන්ඩ්ස් සමග කටයුතු කරමු.

1.       sumudu නමින් ඩේටා බේස් එකක් සෑදීම. (ඩේටාබේස් නම අකුරු 64කට වඩා අඩු විය යුතුය. එමෙන්ම ඩේටා බේස් හා ටේබල් නම් සදහා සිම්පල් අකුරු භාවිතා කිරීමත්, නමක වචන දෙකක් ඇති විට ඒ දෙක අතර අන්ඩර් ස්කෝ භාවිතා කිරීමත් වෙනස් වර්ගයේ මෙහෙයුම් පද්ධති වලදී මෙම ඩේටා බේස් එක භාවිතා කරන විටකදී ගැටළුකාරී තත්ත්වයන්ගෙන් මිදීමටද හේතුවක් වේ. එමෙන්ම My sql කී වර්ඩ්ස් ඩේටා බේස් හා ටේබල් නම් කිරීම සදහා යොදා නොගත යුතුය.)

mysql> CREATE DATABASE sumudu;
Query OK, 1 row affected (0.01 sec)

2.       sumudu ඩේටා බේස් එක තුලට ඇතුල් වීම. (ඇක්ටිව් ඩේටා බේස් එක බවට පත් කිරීම)
mysql> USE sumudu;
Database changed

3.       සියළුම ඩෙටා බේස් දර්ශනය කරන්න.
mysql> show databases;
+---------------------------+
| Database                   |
+---------------------------+
| information_schema |
| myshop                      |
| mysql                         |
| possystem                 |
| sumudu                      |
| workplace                  |
+---------------------------+
6 rows in set (0.01 sec)



4.       employee නමින් ටේබල් එකක් නිර්මාණය කිරීම. (මෙහිදී නිර්මාණය කරන ෆීල්ඩ් සදහා මුලින්ම ෆීල්ඩ් නම දෙවනුව එහි දත්ත වර්ගය තෙවනුව විශේෂ විකර්ණකාරක භාවිතා කෙරේ. මෙම දත්ත සටහනේ භාවිතා කර ඇත්තේ ෆීල්ඩ් සයිස් එක කොපමණද යන විකර්ණකාරකයයි. මෙහි ෆීල්ඩ් එකින් එක කොමා මගින් වෙන් කෙරේ )

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

Query OK, 0 rows affected (0.03 sec)

(2)    mysql> CREATE TABLE employee1 (id int(4), name varchar(100), address varchar(120
),salary int(6))ENGINE=innodb;

Query OK, 0 rows affected (0.03 sec)

නමුත් 2 සලකන්න. මෙහිදී  කලින්ට වඩා අමතරව ENGINE=innodb කොටසක් එක් කර ඇත. එයින් කියැවෙන්නේ මෙම ඩේටාබේස් එක නිර්මාණය කිරීමට භාවිතා කර ඇත්තේ innodb යන ස්ටෝරේජ් එන්ජින් එක බවයි. ඩේටා ටේබල් නිර්මානය වන්නේ ඩේටා බේස් ෆෝලඩරය තුළ ෆයිල් වශයෙනි.

5.       දැනට සිටින ඩේටා බේස් එක තුළ ඇති සියළුම ටේබල් බලා ගැනීම සදහා.
mysql> SHOW TABLES;
+--------------------------+
| Tables_in_sumudu         |
+--------------------------+
| employee                        |
| employee1                      |
+--------------------------+
2 rows in set (0.00 sec)

මීළග ලිපියෙන් තවත් විස්තර සලකා බලමු. මේ ලිපි පෙළ ගැන ඔබේ අදහස් දක්වන්න. ගැටළු ඇත්නම් sumuduclass@gmail.com ලිපිනයට යොමු කරන්න. මෙහි අඩුපාඩු ඇත්නම් ඒවා පෙන්වා දීමට කාරුණික වෙන්න.

2 comments:

  1. mehchra kal comment nokalata meka digatama kiyeuwa.
    practical kala...
    ohoma karagena yamu.. thanks...

    ReplyDelete
  2. ස්තූතියි ඔබට. මේ විෂයට රොක් වෙන පිරිස අඩුයි. වටිනාකම තේරෙන්නේ පහුවෙලා.

    ReplyDelete

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