Wednesday, March 17, 2010

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

 පසුගිය සතියේ අප සාකච්චා කිරීම ආරම්භ කළේ My Sql හිදී දත්ත සමඟ කටයුතු කරන ආකාරයයි. අප කළින් සතියේ වැඩ කරමින් සිටි දත්ත වගුව විවෘත කර ගනිමු.


1) දත්ත ගොණුව වෙත යාම

mysql> use sumudu;
Database changed


2) එම දත්ත ගොණුවේ ඇති දත්ත වගු දර්ශණය කිරීම

mysql> show tables;
+------------------+
| Tables_in_sumudu |
+------------------+
| employee         |
| employee1        |
+------------------+
2 rows in set (0.01 sec)

3) employee දත්ත වගුවේ වත්කම් දර්ශනය කිරීම.

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.05 sec)


4) වගුව තුළ ඇති දත්ත දර්ශනය කිරීම.
mysql> select * from employee;
+-----+-------------------+----------+--------+
| id  | full_name         | address  | salary |
+-----+-------------------+----------+--------+
| 100 | Asela Madanayaka  | Chilw    |  24500 |
| 100 | Asela Madanayaka  | Chilw    |  24500 |
| 101 | Ranuka Bandra     | Puttam   |  18500 |
| 102 | Pubudu Aruna      | Chilaw   |  14500 |
| 103 | Nalaa Silva       | Chilaw   |  20000 |
| 104 | Nalika Priyanthi  | Gampaha  |  16000 |
| 105 | Maduranga Jaypala | Galewela |  16000 |
| 106 | Anupama herah     | Dubara   |  12500 |
+-----+-------------------+----------+--------+
8 rows in set (0.00 sec)



  • දත්ත ගොණුවක්(Database) නිර්මාණය කිරීම 
  • ඒ තුළ දත්ත වගු(Tables) නිර්මාණය කිරීම 
  • ෆීල්ඩ් නම් වෙනස් කිරීම
  • දත්ත ගොණු හා දත්ත වගු වල නම් වෙනස් කිරීම 
  • දත්ත ගොණු හා දත්ත වගු ඩිලීට් කිරීම
  • දත්ත වගු වලට දත්ත ඇතුළත් කිරිම
 පිළිබඳව අප සාකච්චා කළා. අද අපි දත්ත වගුවක දත්ත වෙනස් කිරීම හා දත්ත ඉවත් කරන ආකාරය බලමු. මේ වැඩේ කරන්නේ SQL කමාන්ඩ් භාවිතයෙන් කියල අමතක කරන්න එපා. අද භාවිතා කරන හැම DBMS එකකම වගේ SQL කමාන්ඩ් භාවිතයට ගන්නවා. මතකනේ අපේ මොන්ටි මහත්තය මුලින්ම 1979දී නිර්මාණය කරපු UNIREG DBMS එක SQL වලට සපෝට් නෑ.


දත්ත වෙනස් කිරීම හා දත්ත ඉවත් කිරීම
1) දත්ත ඉවත් කිරීම
mysql> select * from employee;
+-----+-------------------+----------+--------+
| id  | full_name         | address  | salary |
+-----+-------------------+----------+--------+
| 100 | Asela Madanayaka  | Chilw    |  24500 |
| 100 | Asela Madanayaka  | Chilw    |  24500 |
| 101 | Ranuka Bandra     | Puttam   |  18500 |
| 102 | Pubudu Aruna      | Chilaw   |  14500 |
| 103 | Nalaa Silva       | Chilaw   |  20000 |
| 104 | Nalika Priyanthi  | Gampaha  |  16000 |
| 105 | Maduranga Jaypala | Galewela |  16000 |
| 106 | Anupama herah     | Dubara   |  12500 |
+-----+-------------------+----------+--------+
8 rows in set (0.00 sec)  

දත්ත වගුවේ id එක 105 වූ දත්ත පේළිය මකා දමන්න.

mysql> DELETE from employee WHERE id=105;
Query OK, 1 row affected (0.03 sec)

mysql> select * from  employee;
+-----+------------------+---------+--------+
| id  | full_name        | address | salary |
+-----+------------------+---------+--------+
| 100 | Asela Madanayaka | Chilw   |  24500 |
| 100 | Asela Madanayaka | Chilw   |  24500 |
| 101 | Ranuka Bandra    | Puttam  |  18500 |
| 102 | Pubudu Aruna     | Chilaw  |  14500 |
| 103 | Nalaa Silva      | Chilaw  |  20000 |
| 104 | Nalika Priyanthi | Gampaha |  16000 |
| 106 | Anupama herah    | Dubara  |  12500 |
+-----+------------------+---------+--------+
7 rows in set (0.00 sec)

   ඉහත කමාන්ඩ් එකේ mysql> DELETE from employee WHERE id=105; හි = ලකුණ වෙනුවට id <= 105 ලෙස වෙනස් කළොත් id එක 105 ට අඩු සියළුම දත්ත මැකී යාවි. එය 
id >= 105 ලෙස වෙනස් කළොත් 
id එක
 105 ට වැඩි සියළුම දත්ත මැකී යාවි. 

2) දත්ත වෙනස් කිරීම 
mysql> UPDATE employee SET id=105 where id=106;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from  employee;
+-----+------------------+---------+--------+
| id  | full_name        | address | salary |
+-----+------------------+---------+--------+
| 100 | Asela Madanayaka | Chilw   |  24500 |
| 100 | Asela Madanayaka | Chilw   |  24500 |
| 101 | Ranuka Bandra    | Puttam  |  18500 |
| 102 | Pubudu Aruna     | Chilaw  |  14500 |
| 103 | Nalaa Silva      | Chilaw  |  20000 |
| 104 | Nalika Priyanthi | Gampaha |  16000 |
| 105 | Anupama herah    | Dubara  |  12500 |
+-----+------------------+---------+--------+
7 rows in set (0.00 sec)

මෙම කමාන්ඩ් එකේ 
SET id=105 යනු id එක වෙනුවට 105 යොදන්න යන්නයි. එහෙත් කුමන id එක වෙනුවටද? එය එම කමාන්ඩ් පෙළෙහිම දෙවනුවට පෙන්වා දී ඇත. 
where id=106. id එක 106 වෙනුවට 105 යොදන්න. මෙම කෝඩින් පෙළ මගින් බබෙකුට කතාන්දරයක් තේරුම් කරනවා සේ My SQL වලට තේරෙන්නට කෝඩින් ලිවිය යුතුය. නැත්තම් 
My SQL බබාට මෙමගින් නිවැරදි ප්‍රතිඵලයක් අපට ලබා දෙන්නට නොහැකි වන ඇති. ඉතින් මේ බබාව තේරුම් ගැනීම අපට එතරම් කජ්ජක් නොවේ.
 id එක 103 වූ දත්ත පේළියේ Nalaa Silva යන නම Nalaka Udara හා Gampaha 
යන Address එක Colombo ලෙසත් වෙනස් කරමු.

mysql> select * from  employee;
+-----+------------------+---------+--------+
| id  | full_name        | address | salary |
+-----+------------------+---------+--------+
| 100 | Asela Madanayaka | Chilw   |  24500 |
| 100 | Asela Madanayaka | Chilw   |  24500 |
| 101 | Ranuka Bandra    | Puttam  |  18500 |
| 102 | Pubudu Aruna     | Chilaw  |  14500 |
| 103 | Nalaa Silva      | Chilaw  |  20000 |
| 104 | Nalika Priyanthi | Gampaha |  16000 |
| 105 | Anupama herah    | Dubara  |  12500 |
+-----+------------------+---------+--------+
7 rows in set (0.00 sec)

mysql> UPDATE employee SET full_name='Nalaka Udara',address='Colombo' where id=1
03;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from  employee;
+-----+------------------+---------+--------+
| id  | full_name        | address | salary |
+-----+------------------+---------+--------+
| 100 | Asela Madanayaka | Chilw   |  24500 |
| 100 | Asela Madanayaka | Chilw   |  24500 |
| 101 | Ranuka Bandra    | Puttam  |  18500 |
| 102 | Pubudu Aruna     | Chilaw  |  14500 |
| 103 | Nalaka Udara     | Colombo |  20000 |
| 104 | Nalika Priyanthi | Gampaha |  16000 |
| 105 | Anupama herah    | Dubara  |  12500 |
+-----+------------------+---------+--------+
7 rows in set (0.00 sec)

ලබන සතියට
[logo-mysql-110x57.png]

1 comment:

  1. මෙම ලිපි පෙළ ඉදිරිපත් කිරීම ගැන ඔබට බොහොම ස්තුතියි. අපි මෙමගින් විශාල පිටිවහලක් ලබාගත්තා අපේ අධ්‍යයන කටයුතු වලට. පුළුවන්නම් ඉතිරි ටිකත් මේ විදියටම දාන්න.

    ජයවේ...

    ReplyDelete

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