အခန္းထဲမွာ ဆရာမေရးေပးသြားတဲ့ ေမးခြန္းပါ... ေမးခြန္းကို ebook (pdf) လုပ္ျပီးတင္ေပးထားပါတယ္။ ဘာလို ့လဲဆိုေတာ့ print ထုတ္ျပီးပဲႀကည့္ႀကည့္... ဖုန္းထဲထည့္ျပီးပဲႀကည့္ႀကည့္ အဆင္ေျပလို့္ပါ... ေဒါင္းလို့လဲ အဆင္ေျပမွာပါ... size ေသးေသးေလးပါ... ၁ မိနစ္ေတာင္မႀကာပါဘူး။
Download
ေမးခြန္းကိုေတာ့ ဖတ္ႀကည့္ႀကပါဦးေနာ္... ဘာေမးလို ့ေမးထားမွန္းမသိ... ထည့္ရမယ့္ Data ေတြဘာမွန္းမသိျဖစ္ေနဦးမယ္..။ :D
ပထမဆံုး database တစ္ခုေဆာက္ရမယ္...
mysql> create database NYOBOOKSHOP;
username နဲ့ password ေပးခိုင္းေသးတယ္... (username က ကိုယ့္ရဲ ့ခံုနံပါတ္၊ password ကေတာ့ 'CUSTUDENT')
mysql> create user 3cs000 identified by 'CUSTUDENT';
Table 3 ခု ေဆာက္ရမယ္... ေဆာက္ရမယ့္ table ေတြကို ေမးခြန္းမွာေပးထားတယ္...
mysql> create table CUSTOMER (CNO CHAR(5) PRIMARY KEY, CNAME CHAR(20), ADDRESS CHAR(10));
mysql> create table BOOK(BNO char(5) primary key, BTITLE char(10), AUTHOR char(20), PRICE numeric(10));
mysql> create table SALE(CNO CHAR(5), BNO CHAR(5), DATE date,QTY CHAR(5), primary key(CNO,BNO), foreign key(CNO) references CUSTOMER(CNO) on delete cascade, foreign key(BNO) references BOOK(BNO) on delete cascade);
အေပၚက table 3 ခု ေဆာက္တဲ့ေနရာမွာ က်ေနာ္ Uppercase ေတြနဲ့ lowercase ေတြကို ေရာေရးျပထားတယ္... table နာမည္ေတြ column နာမည္ေတြက လြဲရင္ က်န္တဲ့ keyword ေတြက case sensitive မျဖစ္ဘူးဆိုတာ သိေစခ်င္လို ့ပါ... အႀကီးပဲ ျဖစ္ျဖစ္ အေသးပဲ ျဖစ္ျဖစ္ မွန္ပါတယ္... (စာလံုးေပါင္းေတာ့မွန္ေအာင္ေရးေပါ့).. :D
ကိုယ္ေဆာက္ခဲ့ table ေတြမွန္ မမွန္ကို ျပန္ႀကည့္ခ်င္ေသးတယ္ဆို describe table tablename; နဲ့ ျပန္ႀကည့္လို့ရတယ္..
table ထဲကို Data ေတြထည့္မယ္... ထည့္ရမယ့္ data ေတြကလဲ ေမးခြန္းမွာ ပါျပီးသား... လြယ္လြယ္ေလးေတြမို ့ က်ေနာ္ေတာ့ Skip လိုက္ျပီ... (အဲလိုမွ မလုပ္ရင္ ေမးခြန္းကို ဘယ္သူမွ ဖတ္ေတာ့မွာ မဟုတ္ဖူးးး ) :D
SALE table ထဲကို Data ထည့္တဲ့အခါက်ရင္ နဲနဲ ခက္လိမ့္မယ္.. ဘယ္ေနရာခက္လဲဆိုေတာ့ Date ကိုထည့္တဲ့အခါ ခက္မယ္... ေအာက္မွာထည့္ထားတာႀကည့္ႀကည့္ပါ..
mysql> insert into SALE values("1","2","2012-6-5","1");
Mysql ရဲ ့ format က yyyy-mm-dd အဲလိုသြားတာမို့လို့ပါ... Table ေဆာက္တုန္းက က်ေနာ္တို ့Date နဲ့ ေႀကျငာခဲ့တယ္ေလ... အဲလိုမွမဟုတ္ဘဲ ဒီတိုင္း June 5,2012 အဲလိုေရးခ်င္တယ္ဆိုရင္ေတာ့ CHAR နဲ့ေႀကျငာခဲ့ေပါ့... ဒါေလးပါပဲ... က်န္တာကိုယ့္ဘာကို ဆက္လုပ္လို့ရျပီ။ :D
အကုန္ထည့္ျပီးရင္ နံပါတ္ ၁ ေမးခြန္းကိုေျဖႀကည့္မယ္... လူတိုင္းေျဖတတ္ပါတယ္.. လြယ္လြယ္ေလးးးး
mysql> select * from CUSTOMER;
နံပါတ္ ၂ ေမးခြန္းက SALE table ထဲကို record တစ္ခုထည့္ခိုင္းတာ... insert နဲ့ထည့္ေပါ့.. ;)
mysql> insert into SALE values("3","5","2012-6-12","1");
နံပါတ္ ၃ က BOOK Table ထဲက data တစ္ခုကို Update လုပ္မွာ... ေမးခြန္းကို ႀကည့္လိုက္ .. ဘယ္ row ကို ျပင္ရမွာလဲဆိုတာ...
mysql> Update BOOK set AUTHOR="ChitSanWin" where BNO=2;
နံပါတ္ ၄ ေမးခြန္းက CUSTOMER table ထဲက
mysql> delete from CUSTOMER where CUSTOMER.CNO =3;
ဒီ နံပါတ္ ၄ မွာ SALE table ကိုေဆာက္တုန္းက foreign key ေတြေႀကျငာတဲ့ေနရာမွာ on delete cascade ဆိုတာကို မထည့္ေပးခဲ့ရင္ error တက္ေနမွာပါ... အဲလိုဆိုရင္ေတာ့ table ကို drop လုပ္ျပီး အသစ္ျပန္လုပ္ေတာ့...
ေနာက္ဆံုးေမးခြန္းကလဲ နဲနဲေလးပဲ ခက္တာပါ (ခက္တယ္လို့ေတာင္ေျပာလို ့မရပါဘူး) :D
mysql> select CNAME from CUSTOMER,BOOK,SALE where
-> SALE.CNO=CUSTOMER.CNO and
-> SALE.BNO=BOOK.BNO and
-> BOOK.AUTHOR="MaMaLay";
အဲလိုဆို အျဖက
Mya Mya
Su Su
အဲလိုေလးရလိမ့္မယ္... အတတ္နိုင္ဆံုးေတာ့ ရွင္းျပထားပါတယ္... အေျဖသိရဖို ့ႀကည့္တာထက္...နားလည္သြားေအာင္ ႀကည့္ေစခ်င္ပါတယ္... မ်ားမ်ားေလ့က်င့္ေပါ့ဗ်ာ..။
ေနာက္ဆိုရင္ DBMS ကို အစအဆံုးေရးမျပေတာ့ဘူး... နားလည္သင့္ေနျပီလို ့ထင္ရတာေတြကို ခ်န္ခဲ့ျပီး တကယ္အေရးႀကီးတဲ့ အပိုင္းေတြကို ပဲ ရွင္းျပသြားေတာ့မွာ... :D
Sunday, July 7, 2013
Saturday, July 6, 2013
Java Black Book
ခု ့ခ်ိန္ထိေတာ ့ေဒါင္းေလာ ့လင္ ့မေတြ ့ေသးလို ့................. ဒီအတိုင္းဖတ္လို ့ရတဲ ့လင့္ပဲ ထည့္ေပးလိုက္ပါတယ္ ေက်ာင္းက အခု ့သင္ေနရတဲ ့Java စာအုပ္ပါ အဆင္ေျပပါေစ...................................... Java Black Book
Thursday, July 4, 2013
Java apk
ကဲ ................ second year ေတြ အတြက္ပါမက......... အျခား programming ေလ ့လာသူေတြ အတြက္ပါ သင့္ေတာ္တဲ ့ ဖုန္းapk ေလးတစ္ခု ့ေပးခ်င္ပါတယ္ ရွင္ Learn to java ဆိုတဲ ့apk ေလးပါ အဆင္ေျပမယ္ ထင္ပါတယ္ ဒီမွာေဒါင္းပါရွင့္
Monday, July 1, 2013
Java and Java Script
second year အတြက္ java applet ေရးဖို ့ကေတာ ့အားလံုးသိတဲ ့အတုိင္း eclipse နဲ ့jdk လိုပါတယ္ အာ ့ေတြ ကို ကြ်န္မ upload တင္ေပးဖို ့စဥ္းစားေသာ္ညားလဲ .......... ဖိုင္size က နည္းနည္ းေလ းၾကီးေတာ ့ lab ခန္းထဲမွာ ပဲ ဆရာမေတြ ဆီက ေတာင္းလိုူက္ေတာ ့ေနာ္ ............. ေက်းဇူးတင္ပါတယ္ ရွင္ ့ :p ..............ေလ့က်င့္ခန္းေတြ ေတာ ့ Java ေရာ Java Script ပါ တင္ေပးပါမယ္ ....................
HCI for second year
ပထမဦးဆံုး second year အတြက္
post တင္ေပးတာ ေနာက္က်တဲ ့အတြက္ ေတာင္းပန္ပါတယ္ရွင္
ဒီေန ့ေတာ ့ second year မွာ မိတၱဴဆြဲၿပီး သင္ေပးေနတဲ ့ HCI စာအုပ္ကို ebook ေလးတင္ေပးမယ္ေနာ္
ေနာက္ေန ့ေတြ ေတာ ့lab ခန္းထဲ မွာ စာမမွီတဲ ့သူေတြ အတြက္ exercises ေတြ ပါ တင္ေပးပါမယ္ ေနာ္ ^_^
ဒီမွာ ေဒါင္းပါရွင္
post တင္ေပးတာ ေနာက္က်တဲ ့အတြက္ ေတာင္းပန္ပါတယ္ရွင္
ဒီေန ့ေတာ ့ second year မွာ မိတၱဴဆြဲၿပီး သင္ေပးေနတဲ ့ HCI စာအုပ္ကို ebook ေလးတင္ေပးမယ္ေနာ္
ေနာက္ေန ့ေတြ ေတာ ့lab ခန္းထဲ မွာ စာမမွီတဲ ့သူေတြ အတြက္ exercises ေတြ ပါ တင္ေပးပါမယ္ ေနာ္ ^_^
ဒီမွာ ေဒါင္းပါရွင္
DBMS Practical 2 for 3rd years
ဒီအပုဒ္က အခန္းထဲမွာ ဆရာမေရးေပးတဲ့ အပုဒ္ပါ... ေမးခြန္းက ရွည္ေတာ့ ebook ေလးလုပ္ထားတယ္။ သိမ္းထားျပီး Lab Test ေတြနီးမွ ျပန္ႀကည့္လဲ ရတာေပါ့။ ေအာက္မွာေမးခြန္းကို အရင္ေဒါင္းလိုက္ပါ။
Download
အရင္ဆံုး Database တစ္ခုအရင္ေဆာက္မယ္။ က်ေနာ္ စက္ထဲမွာ run ရမယ့္ ကုတ္ေတြကို အစိမ္းေရာင္နဲ့ ျပေပးထားတယ္။
mysql> create database pra2;
Query OK, 1 row affected (0.01 sec)
mysql> use pra2;
Database changed
ျပီးရင္ table ေတြထည့္ႀကမယ္... အရင္ဆံုး Student table ကိုအရင္ထည့္မယ္... (ေမးခြန္းမွာ table ပံုစံပါတယ္) Query Ok တို ့Database Changed တို ့ဆိုတာက က်ေနာ္တို ့လုပ္ခဲ့တဲ့ process မွန္တယ္ဆိုတာကို ျပေပးတာပါ..။ ေနာက္ဟာေတြက်ရင္ က်ေနာ္အဲဒါေလးေတြ ျဖဳတ္ထားခဲ့ေတာ့မယ္။
mysql> create table Student(sid CHAR(5) primary key, sname CHAR(20), major CHAR(10), level CHAR(10),age numeric(10));
table ေဆာက္တဲ့ေနရာမွာ က်ေနာ္တို ့primary key ေတြ foreign key ေတြ သတ္မွတ္ေပးရတယ္... ဘာလို ့လဲ ဆိုေတာ့ ေနာက္ဆံုးေဆာက္ရမယ့္ table မွာ ပထမ table ၂ ခုက column ေတြ ျပန္ပါေနလို ့...အဲဒါေႀကာင့္ Student table ထဲက column တစ္ခုျဖစ္တဲ့ sid က primary ပါ... Enrolled table မွာ ျပန္ပါမယ့္ Sid column က foreign key ပါလို ့သတ္မွတ္တာပါ။ အဲဒါေတြ မမွန္ရင္ က်ေနာ္တို ့table ေတြ ခ်ိတ္တဲ့အခါက်ရင္ error တက္မွာ...
ေနာက္ Class table ေဆာက္မယ္။
mysql> create table Class(cname CHAR(10) primary key, instructor CHAR(20), room CHAR(5));
ေနာက္ဆံုးတစ္ခု Enrolled table ေဆာက္တာမွာ နဲနဲေလး ဂရုစိုက္ရမယ္... အဲဒီ table မွာprimary key , foreign key ေတြ အျပင္ on delete cascade ဆိုတာပါေနတယ္။
mysql> create table Enrolled(sid CHAR(5),cname CHAR(10), primary key(sid,cname), foreign key(sid) references Student(sid) on delete cascade, foreign key(cname) references Class(cname) on delete cascade);
ဒီ table မွာ primary key သတ္မွတ္တာေတာ့ ေျပာစရာမလိုေတာ့ဘူး၊၊ foreign key သတ္မွတ္တာမွာ အေနာက္က references ဆိုျပီးလိုက္တာက က်ေနာ္တို ့foreign key အေနနဲ့ ထားခဲ့တဲ့ column ဟာ ဘယ္ table က column ပါဆိုျပီး ေႀကျငာလိုက္တာ...
ေနာက္ျပီး on delete cascade ဆိုျပီးေႀကျငာတာက က်ေနာ္တို ့ ေမးခြန္း နံပါတ္ ၃ က delete လုပ္ခိုင္းတဲ့ အပုဒ္တစ္ပုဒ္.... on delete cascade မတပ္ရင္ အဲဒီ အပုဒ္ေရးရင္ error တက္နိုင္တယ္...။ ဘာလို့လဲဆိုေတာ့ က်ေနာ္တို ့delete လုပ္မယ့္ data ေတြက Enrolled table ထဲက ေန က်န္တဲ့ table ၂ ခုလံုးကို ခ်ိတ္ျပီးမွ delete လုပ္မွာမို ့လို့။ ဒါျပီးသြားျပီဆိုရင္ က်ေနာ္တုိ ့table သံုးခုလံုး ေဆာက္လို ့ျပီးသြားျပီ။ table ထဲကုိ data ေတြ ထည့္ရမယ္...။ ထည့္ရမယ့္ data ေတြကို ေမးခြန္းမွာေပးထားတယ္ေနာ္...။ ဘယ္လိုထည့္ရမလဲဆိုေတာ့ insert into သံုးျပီးထည့္ရမယ္... လြယ္ပါတယ္ဗ်ာ.. ဒီအဆင့္ေလးေတာ့ ကိုယ့္ဘာကို လုပ္ႀကည့္လိုက္... က်ေနာ္ ေရးမျပေတာ့ဘူး... :D
No-1
အခု နံပါတ္ ၁ ေမးခြန္း စေျဖမယ္... က်ေနာ္တို ့လုပ္ရမွာက Student table ထဲကို new information ထည့္ရမွာ... insert နဲ့လုပ္ရမွာေနာ္... Update လုပ္ရမွာမဟုတ္ဖူးးး ေမးခြန္းေသခ်ာဖတ္ႀကဦးးးး။
mysql> insert into Student values("203","Grace","Geology","Junior",18);
No-2
Class table ထဲက instructor name Smith ဆိုတာကို ျပင္ခိုင္းတာပါ..။ Update သံုးရမွာေပါ့။
mysql> update Class set instructor="Cindy" where cname="class-C";
No-3
လာျပီ... တစ္ပုဒ္လံုးမွာ အခက္ဆံုးပဲ... (နားလည္သြားရင္လဲ လြယ္သြားတာပါပဲ.. ) :D
mysql> delete Student from Student,Class,Enrolled where
-> Enrolled.cname = Class.cname
-> And Enrolled.sid = Student.sid
-> And Class.room="R-2";
က်ေနာ္တို ့ဖ်က္ခ်င္တာက Room number R-2 မွာ အပ္ထားတဲ့ ေက်ာင္းသားေတြရဲ ့information အကုန္လံုးကို delete လုပ္သြားမွာ.. အဲေတာ့ က်ေနာ္တုိ ့table သံုးခုလံုးႀကည့္ရမယ္.. Class table ထဲက room ဆိုတဲ့ column ကိုႀကည့္မယ္.. အဲဒီ room ထဲမွာမွ R-2 ဆိုတာကိုႀကည့္မယ္.. R-2 မွာ အပ္ထားတဲ့ ေက်ာင္းသားကို တန္းမေတြ ့ရဘူး class name ကိုပဲေတြ ့ရေတာ့ class-A ဆိုတာကိုမွတ္ထားလိုက္...။ အဲဒါကိုမွ Enrolled Table မွာႀကည့္လိုက္ေတာ့ sid ကိုေတြ ့ရျပီ.. အဲဒီ sid ရဲ ့row တစ္ခုလံုးကို ဖ်က္မယ္...။ နားလည္မယ္ထင္ပါတယ္။
No-4
သူလဲ ခုနက ဟာနဲ့ သိပ္မကြာဘူး... ဒီမွာက်ေတာ့ room number နဲ့မသြားဘဲ instructor name နဲ့ ႀကည့္တာ... ဒီအပုဒ္ကေတာ့ delete လုပ္ခုိင္းတာမဟုတ္ဖူး. select နဲ့လုပ္ရမွာ....
mysql> select sname from Student,Class,Enrolled
-> where Enrolled.cname = Class.cname
-> and Enrolled.sid = Student.sid
-> and Class.instructor = "James";
ဒီ အတိုင္းေရးလို ့မွန္တယ္ဆိုရင္ output ေလးတစ္ခုထြက္လာမွာပါ... ။
Mary
Elaine
အဲလိုေလးရလိမ့္မယ္။
No-5
ေမးခြန္းက ရွင္းရွင္းေလးမို ့ထပ္ရွင္းမေနေတာ့ဘူးေနာ္... ေမးခြန္းပဲ ဖတ္ႀကည့္လိုက္ပါ.. ဒီမွာ သံုးရမွာက max ဆိုတဲ့ function ေလးတစ္ခုသံုးရလိမ့္မယ္... ဘာလို့လဲ ဆိုေတာ့ အသက္အႀကီးဆံုး ေက်ာင္းသားကိုလိုခ်င္တယ္လို ့ေျပာထားလို ့...
mysql> select max(age) from Student where
-> Student.major = "Chemistry" or
-> Student.major = "English";
ထြက္လာမယ့္ output က 21 ပါ။
No-6
ဒါေလးကေတာ့ ေတာ္ေတာ္ေလးလြယ္ပါတယ္... ။
mysql>select sname from Student;
သူက Student table ထဲက sname ေတြခ်ည္းပဲျပသြားလိမ့္မယ္..
No-7
mysql> select sname from Student,Enrolled where
-> Enrolled.sid = Student.sid and
-> Enrolled.cname = "Class-E";
table 2 ခုပဲ ခ်ိတ္သြားတယ္... ဘာလို ့လဲ ဆိုေတာ့ Class Table ကိုခ်ိတ္စရာမလိုဘူး... ေမးခြန္းမွာႀကည့္ႀကည့္။ သူ ့ရဲ ့output က Empty Set ဆုိျပီးထြက္လာလိမ့္မယ္။
No-8
ဒီေမးခြန္းကလဲ လြယ္ပါတယ္... Table ေတြခ်ိတ္စရာေတာင္မလိုဘူးးး စာေမးပြဲမွာ အဲလိုေလးဘဲေမးရင္ သိပ္ေကာင္းမွာ... :D
mysql> select sname from Student where age > 18;
သူနဲ့ သက္ဆိုင္တဲ့ sname ေတြထြက္လာလိမ့္မယ္...
That's all ~~~ :D
Download
အရင္ဆံုး Database တစ္ခုအရင္ေဆာက္မယ္။ က်ေနာ္ စက္ထဲမွာ run ရမယ့္ ကုတ္ေတြကို အစိမ္းေရာင္နဲ့ ျပေပးထားတယ္။
mysql> create database pra2;
Query OK, 1 row affected (0.01 sec)
mysql> use pra2;
Database changed
ျပီးရင္ table ေတြထည့္ႀကမယ္... အရင္ဆံုး Student table ကိုအရင္ထည့္မယ္... (ေမးခြန္းမွာ table ပံုစံပါတယ္) Query Ok တို ့Database Changed တို ့ဆိုတာက က်ေနာ္တို ့လုပ္ခဲ့တဲ့ process မွန္တယ္ဆိုတာကို ျပေပးတာပါ..။ ေနာက္ဟာေတြက်ရင္ က်ေနာ္အဲဒါေလးေတြ ျဖဳတ္ထားခဲ့ေတာ့မယ္။
mysql> create table Student(sid CHAR(5) primary key, sname CHAR(20), major CHAR(10), level CHAR(10),age numeric(10));
table ေဆာက္တဲ့ေနရာမွာ က်ေနာ္တို ့primary key ေတြ foreign key ေတြ သတ္မွတ္ေပးရတယ္... ဘာလို ့လဲ ဆိုေတာ့ ေနာက္ဆံုးေဆာက္ရမယ့္ table မွာ ပထမ table ၂ ခုက column ေတြ ျပန္ပါေနလို ့...အဲဒါေႀကာင့္ Student table ထဲက column တစ္ခုျဖစ္တဲ့ sid က primary ပါ... Enrolled table မွာ ျပန္ပါမယ့္ Sid column က foreign key ပါလို ့သတ္မွတ္တာပါ။ အဲဒါေတြ မမွန္ရင္ က်ေနာ္တို ့table ေတြ ခ်ိတ္တဲ့အခါက်ရင္ error တက္မွာ...
ေနာက္ Class table ေဆာက္မယ္။
mysql> create table Class(cname CHAR(10) primary key, instructor CHAR(20), room CHAR(5));
ေနာက္ဆံုးတစ္ခု Enrolled table ေဆာက္တာမွာ နဲနဲေလး ဂရုစိုက္ရမယ္... အဲဒီ table မွာprimary key , foreign key ေတြ အျပင္ on delete cascade ဆိုတာပါေနတယ္။
mysql> create table Enrolled(sid CHAR(5),cname CHAR(10), primary key(sid,cname), foreign key(sid) references Student(sid) on delete cascade, foreign key(cname) references Class(cname) on delete cascade);
ဒီ table မွာ primary key သတ္မွတ္တာေတာ့ ေျပာစရာမလိုေတာ့ဘူး၊၊ foreign key သတ္မွတ္တာမွာ အေနာက္က references ဆိုျပီးလိုက္တာက က်ေနာ္တို ့foreign key အေနနဲ့ ထားခဲ့တဲ့ column ဟာ ဘယ္ table က column ပါဆိုျပီး ေႀကျငာလိုက္တာ...
ေနာက္ျပီး on delete cascade ဆိုျပီးေႀကျငာတာက က်ေနာ္တို ့ ေမးခြန္း နံပါတ္ ၃ က delete လုပ္ခိုင္းတဲ့ အပုဒ္တစ္ပုဒ္.... on delete cascade မတပ္ရင္ အဲဒီ အပုဒ္ေရးရင္ error တက္နိုင္တယ္...။ ဘာလို့လဲဆိုေတာ့ က်ေနာ္တို ့delete လုပ္မယ့္ data ေတြက Enrolled table ထဲက ေန က်န္တဲ့ table ၂ ခုလံုးကို ခ်ိတ္ျပီးမွ delete လုပ္မွာမို ့လို့။ ဒါျပီးသြားျပီဆိုရင္ က်ေနာ္တုိ ့table သံုးခုလံုး ေဆာက္လို ့ျပီးသြားျပီ။ table ထဲကုိ data ေတြ ထည့္ရမယ္...။ ထည့္ရမယ့္ data ေတြကို ေမးခြန္းမွာေပးထားတယ္ေနာ္...။ ဘယ္လိုထည့္ရမလဲဆိုေတာ့ insert into သံုးျပီးထည့္ရမယ္... လြယ္ပါတယ္ဗ်ာ.. ဒီအဆင့္ေလးေတာ့ ကိုယ့္ဘာကို လုပ္ႀကည့္လိုက္... က်ေနာ္ ေရးမျပေတာ့ဘူး... :D
No-1
အခု နံပါတ္ ၁ ေမးခြန္း စေျဖမယ္... က်ေနာ္တို ့လုပ္ရမွာက Student table ထဲကို new information ထည့္ရမွာ... insert နဲ့လုပ္ရမွာေနာ္... Update လုပ္ရမွာမဟုတ္ဖူးးး ေမးခြန္းေသခ်ာဖတ္ႀကဦးးးး။
mysql> insert into Student values("203","Grace","Geology","Junior",18);
No-2
Class table ထဲက instructor name Smith ဆိုတာကို ျပင္ခိုင္းတာပါ..။ Update သံုးရမွာေပါ့။
mysql> update Class set instructor="Cindy" where cname="class-C";
No-3
လာျပီ... တစ္ပုဒ္လံုးမွာ အခက္ဆံုးပဲ... (နားလည္သြားရင္လဲ လြယ္သြားတာပါပဲ.. ) :D
mysql> delete Student from Student,Class,Enrolled where
-> Enrolled.cname = Class.cname
-> And Enrolled.sid = Student.sid
-> And Class.room="R-2";
က်ေနာ္တို ့ဖ်က္ခ်င္တာက Room number R-2 မွာ အပ္ထားတဲ့ ေက်ာင္းသားေတြရဲ ့information အကုန္လံုးကို delete လုပ္သြားမွာ.. အဲေတာ့ က်ေနာ္တုိ ့table သံုးခုလံုးႀကည့္ရမယ္.. Class table ထဲက room ဆိုတဲ့ column ကိုႀကည့္မယ္.. အဲဒီ room ထဲမွာမွ R-2 ဆိုတာကိုႀကည့္မယ္.. R-2 မွာ အပ္ထားတဲ့ ေက်ာင္းသားကို တန္းမေတြ ့ရဘူး class name ကိုပဲေတြ ့ရေတာ့ class-A ဆိုတာကိုမွတ္ထားလိုက္...။ အဲဒါကိုမွ Enrolled Table မွာႀကည့္လိုက္ေတာ့ sid ကိုေတြ ့ရျပီ.. အဲဒီ sid ရဲ ့row တစ္ခုလံုးကို ဖ်က္မယ္...။ နားလည္မယ္ထင္ပါတယ္။
No-4
သူလဲ ခုနက ဟာနဲ့ သိပ္မကြာဘူး... ဒီမွာက်ေတာ့ room number နဲ့မသြားဘဲ instructor name နဲ့ ႀကည့္တာ... ဒီအပုဒ္ကေတာ့ delete လုပ္ခုိင္းတာမဟုတ္ဖူး. select နဲ့လုပ္ရမွာ....
mysql> select sname from Student,Class,Enrolled
-> where Enrolled.cname = Class.cname
-> and Enrolled.sid = Student.sid
-> and Class.instructor = "James";
ဒီ အတိုင္းေရးလို ့မွန္တယ္ဆိုရင္ output ေလးတစ္ခုထြက္လာမွာပါ... ။
Mary
Elaine
အဲလိုေလးရလိမ့္မယ္။
No-5
ေမးခြန္းက ရွင္းရွင္းေလးမို ့ထပ္ရွင္းမေနေတာ့ဘူးေနာ္... ေမးခြန္းပဲ ဖတ္ႀကည့္လိုက္ပါ.. ဒီမွာ သံုးရမွာက max ဆိုတဲ့ function ေလးတစ္ခုသံုးရလိမ့္မယ္... ဘာလို့လဲ ဆိုေတာ့ အသက္အႀကီးဆံုး ေက်ာင္းသားကိုလိုခ်င္တယ္လို ့ေျပာထားလို ့...
mysql> select max(age) from Student where
-> Student.major = "Chemistry" or
-> Student.major = "English";
ထြက္လာမယ့္ output က 21 ပါ။
No-6
ဒါေလးကေတာ့ ေတာ္ေတာ္ေလးလြယ္ပါတယ္... ။
mysql>select sname from Student;
သူက Student table ထဲက sname ေတြခ်ည္းပဲျပသြားလိမ့္မယ္..
No-7
mysql> select sname from Student,Enrolled where
-> Enrolled.sid = Student.sid and
-> Enrolled.cname = "Class-E";
table 2 ခုပဲ ခ်ိတ္သြားတယ္... ဘာလို ့လဲ ဆိုေတာ့ Class Table ကိုခ်ိတ္စရာမလိုဘူး... ေမးခြန္းမွာႀကည့္ႀကည့္။ သူ ့ရဲ ့output က Empty Set ဆုိျပီးထြက္လာလိမ့္မယ္။
No-8
ဒီေမးခြန္းကလဲ လြယ္ပါတယ္... Table ေတြခ်ိတ္စရာေတာင္မလိုဘူးးး စာေမးပြဲမွာ အဲလိုေလးဘဲေမးရင္ သိပ္ေကာင္းမွာ... :D
mysql> select sname from Student where age > 18;
သူနဲ့ သက္ဆိုင္တဲ့ sname ေတြထြက္လာလိမ့္မယ္...
That's all ~~~ :D
Sunday, June 30, 2013
Starting ADO.Net
ADO.Net နဲ့ database create လုပ္တာကိုေျပာသြားမယ္... ဒီအပိုင္းက စျပီး ေနာက္ပို္င္းေလးေတြက နဲနဲေလး ခက္လာတယ္... ေသခ်ာဂရုစိုက္ျပီး လုပ္မွရလိမ့္မယ္... ေက်ာင္းကေပးတဲ့ ေလ့က်င့္ခန္းေတြကို စက္ထဲမွာ မစမ္းႀကည့္ရင္ သေဘာတရားကို နားလည္ဖို ့ခက္လိမ့္မယ္..။
ပထမဆံုး က်ေနာ္တို ့Visual Studio 2010 ကို ဖြင့္မယ္.... start page မွာ view ဆိုတဲ့ Tab ကိုဖြင့္ view ထဲက server explorer ကိုဖြင့္မယ္.....
server explorer ထဲမွာ Data Connection ဆိုတာရွိတယ္ .. အဲဒီ အေပၚကို right-click ေထာက္ျပီး Create New Sql Server Database... ဆိုတာကို ႏွိပ္လိုက္
Sql server create လုပ္တဲ့ ေနရာမွာ server name ကို .\sqlexpress လို ့ေပးျပီးေတာ့ database name ကိုေတာ့ std လို ့ေပးပါမယ္...(ႀကိဳက္တဲ့နာမည္ေပးလို ့ရပါတယ္... ကိုယ္ေပးခဲ့တဲ့ နာမည္အတိုင္း program ေရးတဲ့အခါ ထည့္တာ မွန္ရပါမယ္)
Ok ကို နွိပ္လိုက္ျပီးရင္ server explorer ကိုျပန္ႀကည့္... အဲဒီမွာ .\sqlexpress ဆိုျပီး server တစ္ခုေပၚလာလိမ့္မယ္...။ အဲဒါကို expand လုပ္လိုက္ ျပီးရင္ Table ဆိုတာကို right-click ေထာက္ျပီး ADD New Table ဆိုတာကို ႏွိပ္လိုက္...
Table တစ္ခုေပၚလာလိမ့္မယ္... အဲဒီထဲမွာ Column ေတြထည့္ရမယ္... ဥပမာ. က်ေနာ္ create လုပ္ထားတာက student ဆိုတဲ့ database ဆိုေတာ့ student နဲ့ ဆိုင္တဲ့ rno, name, dob, address အဲဒီ columns ေတြထည့္လိုက္မယ္... Data Type ေတြေတာ့ သူေပးတဲ့အတိုင္းထည့္လို ့ရတယ္... dob ကိုေတာ့ Date လို့ထည့္ေပါ့...။
ျပီးရင္ Table ကို save လုပ္မယ္... Table name ေပးတဲ့အခါက်ရင္ ကိုယ္ေပးခဲ့တဲ့ နာမည္ကို မွတ္ထားပါ..။ VB program နဲ့ခ်ိတ္တာက်ရင္ အဲဒီနာမည္မွန္မွရမယ္... မဟုတ္ရင္ Error တက္မွာ...
server explorer ထဲက Table ထဲမွာျပန္ႀကည့္ႀကည့္ ... students ဆိုတဲ့ table တစ္ခုေတြ ့လိမ့္မယ္ အဲဒီ students ဆိုတာကို right-click လုပ္ျပီး Show Table Data ကုိ ႏွိပ္လိုက္...
Data ထည့္ရမယ့္ ေနရာ ေတြ ့လိမ့္မယ္... အဲဒီမွာ Data ေတြထည့္ထားရမယ္... စာေမးပြဲမွာေတာ့ထည့္ရမယ့္ data ကိုေပးထားမယ္ထင္တယ္(LabTest ေျပာတာေနာ္) က်ေနာ္ကေတာ့ ေအာက္ကပံုအတိုင္း Data ေတြထည့္ထားလိုက္ျပီ။
Data ေတြထည့္ျပီးရင္ က်ေနာ္တို ့Database ေဆာက္ျခင္းကိစၥျပီးျပီ...။ VB program ေရးတာကို ဆက္သြားရေအာင္... File-> New Project နဲ့ project တစ္ခုလုပ္လိုက္မယ္... အဲဒီမွာ Form တစ္ခုရလိမ့္မယ္.. အဲဒီ Form မွာ Button တစ္ခုထည့္မယ္... Toolbox ကေန button ဆိုတာကို ႏွိပ္ျပီး Form မွာဆြဲေပးလိုက္ရံုပဲ.. Toolbox ကို မျမင္ရရင္ View-> Toolbox ကိုႏွိပ္လိုက္... Form က ေအာက္ကပံုအတိုင္း ျဖစ္သြားလိမ့္မယ္...
ျပီးရင္ Form ေပၚက Button ကို စိတ္ႀကိဳက္ျပင္ေပါ့ဗ်ာ... ညာဘက္ေအာက္နားေလးမွာ properties box ရွိတယ္.. ျပီးသြားရင္ Form ေပၚက Button ကို ၂ ခ်က္ႏွိပ္လိုက္... ကုတ္ေရးရမယ့္ေနရာေရာက္သြားလိမ့္မယ္။
က်ေနာ္ေရးတဲ့အပုဒ္က ေက်ာင္းက စာရြက္ထဲက Example 1 ပါ... code ေတြကိုေတာ့ အဲဒီကေနႀကည့္လိုက္ေတာ့ က်ေနာ္မေရးျပေတာ့ဘူး... သတိထားရမွာက data source ထည့္တဲ့ေနရာမွာ ကိုယ္ create လုပ္ခဲ့တဲ့ .\sqlexpress ဆိုတာကို မွန္ေအာင္ထည့္ဖို ့...။ database name ကိုမွန္ေအာင္ထည့္ဖို ့နဲ့ table name မွန္ဖို ့ပဲ....။
ျပီးရင္ေတာ့ run ႀကည့္ေပါ့ဗ်ာ... ေအာက္က ပံုအတိုင္းရလာရင္ေတာ့ မွန္လို့ေပါ့... မရရင္ေတာ့ Error ရွိေနျပီ... error တက္တဲ့အခါက်ရင္ ေအာက္ဘက္နားေလးမွာ box ေလးတစ္ခုထြက္လာတယ္.. အဲဒီမွာ လိုင္းနံပါတ္ ဘယ္ေလာက္မွာ Error တက္တယ္ဆိုတာ ျပေပးတယ္ဗ်... အဲဒီေနရာေလးသြားျပင္လိုက္ရင္ ပိုလြယ္တယ္..။ ေတာ္ေတာ္မ်ားမ်ားက Error ဆိုဘာမွမလုပ္္တတ္ေတာ့တာမ်ားတယ္။။။
ဒီတိုင္းဆို က်ေနာ္တို ့program မွန္သြားျပီ.. ေနာက္ပိုင္း program ေတြက ဒီထက္ ရွုပ္လိမ့္မယ္...အဲေတာ့ မ်ားမ်ားေလ့က်င့္ပါလုိ ့ပဲ ေျပာခ်င္ပါတယ္....
ပထမဆံုး က်ေနာ္တို ့Visual Studio 2010 ကို ဖြင့္မယ္.... start page မွာ view ဆိုတဲ့ Tab ကိုဖြင့္ view ထဲက server explorer ကိုဖြင့္မယ္.....
server explorer ထဲမွာ Data Connection ဆိုတာရွိတယ္ .. အဲဒီ အေပၚကို right-click ေထာက္ျပီး Create New Sql Server Database... ဆိုတာကို ႏွိပ္လိုက္
Sql server create လုပ္တဲ့ ေနရာမွာ server name ကို .\sqlexpress လို ့ေပးျပီးေတာ့ database name ကိုေတာ့ std လို ့ေပးပါမယ္...(ႀကိဳက္တဲ့နာမည္ေပးလို ့ရပါတယ္... ကိုယ္ေပးခဲ့တဲ့ နာမည္အတိုင္း program ေရးတဲ့အခါ ထည့္တာ မွန္ရပါမယ္)
Ok ကို နွိပ္လိုက္ျပီးရင္ server explorer ကိုျပန္ႀကည့္... အဲဒီမွာ .\sqlexpress ဆိုျပီး server တစ္ခုေပၚလာလိမ့္မယ္...။ အဲဒါကို expand လုပ္လိုက္ ျပီးရင္ Table ဆိုတာကို right-click ေထာက္ျပီး ADD New Table ဆိုတာကို ႏွိပ္လိုက္...
Table တစ္ခုေပၚလာလိမ့္မယ္... အဲဒီထဲမွာ Column ေတြထည့္ရမယ္... ဥပမာ. က်ေနာ္ create လုပ္ထားတာက student ဆိုတဲ့ database ဆိုေတာ့ student နဲ့ ဆိုင္တဲ့ rno, name, dob, address အဲဒီ columns ေတြထည့္လိုက္မယ္... Data Type ေတြေတာ့ သူေပးတဲ့အတိုင္းထည့္လို ့ရတယ္... dob ကိုေတာ့ Date လို့ထည့္ေပါ့...။
ျပီးရင္ Table ကို save လုပ္မယ္... Table name ေပးတဲ့အခါက်ရင္ ကိုယ္ေပးခဲ့တဲ့ နာမည္ကို မွတ္ထားပါ..။ VB program နဲ့ခ်ိတ္တာက်ရင္ အဲဒီနာမည္မွန္မွရမယ္... မဟုတ္ရင္ Error တက္မွာ...
server explorer ထဲက Table ထဲမွာျပန္ႀကည့္ႀကည့္ ... students ဆိုတဲ့ table တစ္ခုေတြ ့လိမ့္မယ္ အဲဒီ students ဆိုတာကို right-click လုပ္ျပီး Show Table Data ကုိ ႏွိပ္လိုက္...
Data ထည့္ရမယ့္ ေနရာ ေတြ ့လိမ့္မယ္... အဲဒီမွာ Data ေတြထည့္ထားရမယ္... စာေမးပြဲမွာေတာ့ထည့္ရမယ့္ data ကိုေပးထားမယ္ထင္တယ္(LabTest ေျပာတာေနာ္) က်ေနာ္ကေတာ့ ေအာက္ကပံုအတိုင္း Data ေတြထည့္ထားလိုက္ျပီ။
Data ေတြထည့္ျပီးရင္ က်ေနာ္တို ့Database ေဆာက္ျခင္းကိစၥျပီးျပီ...။ VB program ေရးတာကို ဆက္သြားရေအာင္... File-> New Project နဲ့ project တစ္ခုလုပ္လိုက္မယ္... အဲဒီမွာ Form တစ္ခုရလိမ့္မယ္.. အဲဒီ Form မွာ Button တစ္ခုထည့္မယ္... Toolbox ကေန button ဆိုတာကို ႏွိပ္ျပီး Form မွာဆြဲေပးလိုက္ရံုပဲ.. Toolbox ကို မျမင္ရရင္ View-> Toolbox ကိုႏွိပ္လိုက္... Form က ေအာက္ကပံုအတိုင္း ျဖစ္သြားလိမ့္မယ္...
ျပီးရင္ Form ေပၚက Button ကို စိတ္ႀကိဳက္ျပင္ေပါ့ဗ်ာ... ညာဘက္ေအာက္နားေလးမွာ properties box ရွိတယ္.. ျပီးသြားရင္ Form ေပၚက Button ကို ၂ ခ်က္ႏွိပ္လိုက္... ကုတ္ေရးရမယ့္ေနရာေရာက္သြားလိမ့္မယ္။
က်ေနာ္ေရးတဲ့အပုဒ္က ေက်ာင္းက စာရြက္ထဲက Example 1 ပါ... code ေတြကိုေတာ့ အဲဒီကေနႀကည့္လိုက္ေတာ့ က်ေနာ္မေရးျပေတာ့ဘူး... သတိထားရမွာက data source ထည့္တဲ့ေနရာမွာ ကိုယ္ create လုပ္ခဲ့တဲ့ .\sqlexpress ဆိုတာကို မွန္ေအာင္ထည့္ဖို ့...။ database name ကိုမွန္ေအာင္ထည့္ဖို ့နဲ့ table name မွန္ဖို ့ပဲ....။
ျပီးရင္ေတာ့ run ႀကည့္ေပါ့ဗ်ာ... ေအာက္က ပံုအတိုင္းရလာရင္ေတာ့ မွန္လို့ေပါ့... မရရင္ေတာ့ Error ရွိေနျပီ... error တက္တဲ့အခါက်ရင္ ေအာက္ဘက္နားေလးမွာ box ေလးတစ္ခုထြက္လာတယ္.. အဲဒီမွာ လိုင္းနံပါတ္ ဘယ္ေလာက္မွာ Error တက္တယ္ဆိုတာ ျပေပးတယ္ဗ်... အဲဒီေနရာေလးသြားျပင္လိုက္ရင္ ပိုလြယ္တယ္..။ ေတာ္ေတာ္မ်ားမ်ားက Error ဆိုဘာမွမလုပ္္တတ္ေတာ့တာမ်ားတယ္။။။
ဒီတိုင္းဆို က်ေနာ္တို ့program မွန္သြားျပီ.. ေနာက္ပိုင္း program ေတြက ဒီထက္ ရွုပ္လိမ့္မယ္...အဲေတာ့ မ်ားမ်ားေလ့က်င့္ပါလုိ ့ပဲ ေျပာခ်င္ပါတယ္....
Subscribe to:
Posts (Atom)











