ခက်သလားဟေ့ ဒေတာဘေ့စ် (ပေါ့ပေါ့ပါးပါး SQL များ)
ဒီအပိုင်းတွေက ခက်သလားဟေ့ ဒေတာဘေ့စ်ရဲ့ အပိုင်း (၃)ပါ။ ဒါပေမယ့် ခေါင်းစဉ်ခွဲပြီး ခက်သလားဟေ့ ဒေတာဘေ့စ် (ပေါ့ပေါ့ပါးပါး SQL များ) ဆိုပြီး တင်ဆက်လိုက်ပါတယ်။ အခုမှ စဖတ်မယ့်သူတွေအတွက် အရင်အပိုင်းတွေကို ပြန်ညွှန်း လိုက်ပါတယ်။
ခက်သလားဟေ့ ဒေတာဘေ့စ် အပိုင်း (၂)
- အမှာ
- SQL မရေးခင်
- Table တစ်ခု တည်ဆောက်ခြင်း
- Row တစ်ခု ထည့်သွင်းခြင်း
- Data ရှာဖွေခြင်း (ရွေးချယ်ခြင်း)
- Row ထဲမှ Data ကို ပြုပြင်ခြင်း
- Row ကို ဖျက်သိမ်းခြင်း
- Table ကို ဖျက်သိမ်းခြင်း
- ဤမှ ဆက်၍
1. အမှာ
Database ၏ အခြေခံ ဆောင်ရွက်မှုများနှင့် ၄င်းနှင့် ဆိုင်ရာ ဝေါဟာရ အချို့ကို၊ အပိုင်း ၁ တွင် မိတ်ဆက် ပေးခဲ့ပြီ။ ဇယား တည်ဆောက်မှု ဥပမာ များကို သုံးကာ ရှင်းလင်း ဖော်ပြခဲ့ချေပြီ။
ထို ဆောင်ရွက်ချက် များကို Database System တစ်ခုအား ခိုင်းစေသော အခါတွင်၊ Database နားလည်သည့် စကားနှင့် ခိုင်းစေမှသာ အလုပ် ဖြစ်ပေမည်။ Database ကား ကွန်ပျူတာ ဖြစ်လေရာ၊ လူနှင့် စက်တို့အကြား Database ဆိုင်ရာ လုပ်ငန်း ဆောင်တာများ ဆောင်ရွက်နိုင် စေရန် စံအဖြစ် သုံးသော ဘာသာစကား သည် SQL (Structured Query Language) ပင် ဖြစ်လေသည်။
ယခု အပိုင်းတွင် SQL ပေါ်ပေါက်လာပုံများ၊ ခက်ခဲနက်နဲသော SQL သဘောတရားများကို မဆွေးနွေးဘဲ၊ ပေါ့ပေါ့ပါးပါး SQL စာကြောင်းများ အကြောင်းကို ဆွေးနွေး တင်ပြပါမည်။ ရည်ရွယ်ချက်မှာ SQL ဘာသာစကား အခြေခံကို သင်ပုန်းကြီးအဆင့် သိရှိစေရန် နှင့် SQL ကို ထမင်းစား ရေသောက်ခန့် တတ်မြောက်ပြီးမှ၊ ရှုပ်ထွေးသော သီဝရီများ နှင့် SQL statement များရေးသည့် အဆင့်ကို လွယ်ကူစွာ တတ်လှမ်း နိုင်စေရန်လည်း ဖြစ်ပါသည်။
2. SQL မရေးခင်
SQL မရေးခင် ဆိုင်၏ မဆိုင်၏ မသိ၊ မှတ် သင့်သော အကြောင်းအရာ တစ်ချို့ကို ဖော်ပြလိုပါသည်။
2.1 Keywords
SQL သည် Database နှင့် လူတို့ အကြား ဆက်သွယ်ပေးသည့် ဘာသာစကား ဖြစ်လေရာ၊ Database ကို ခိုင်းစေရာတွင် (အသုံးချရာတွင်) Database နားလည်သော စကား (SQL) ကို သုံးကာ စေခိုင်း ရလေသည်။ ထို Database နားလည်သော စာလုံးများကို SQL language တွင် အထူး သတ်မှတ်ထား လေသည်။ ၄င်းတို့ကို keywords ဟု ခေါ်လေ၏။ အသုံးချသူ အနေဖြင့် ထို အထူးစာလုံးများ (keyword) များကို မှတ်သား ရာသည်။
2.2 ကွင်းစ ကွင်းပိတ်
SQL ရေးသား ရာတွင် ကွင်းစ ကွင်းပိတ်များကို အသုံးပြုရလေ့ ရှိသည်။ သတိပြုရန်မှာ ကွင်းစ တစ်ခုကို ရေးလျှင် နောက်တွင် ၄င်းနှင့် တွဲမည့် ကွင်းပိတ် တစ်ခု လိုသည်။ မရှိပါက ၄င်း SQL ကို Database က နားမလည်ပေ။ ကွင်းပိတ်သာရှိပြီး ကွင်းစ မရှိလျှင်လည်း ထို့နည်း တူစွာပင်။ အလေ့အကျင့် အားဖြင့် ကွင်းစ ရေးပြီးတိုင်း ကွင်းပိတ် ဆက်တိုက် ရေးခြင်းဖြင့် အမှားအယွင်း နည်းရာသည်။
2.3 Quotation Marks
ကွင်းစ ကွင်းပိတ် နည်းတူ Quotation mark များသည်လည်း အရေးကြီး လေသည်။ Quotation Mark တစ်ခုကို ဖွင့်လျှင် Quotation Mark နှင့် ပိတ်ရ လေသည်။ Double Quote နှင့် Single Quote တို့တွင် Single Quote သည် အထူး အဓိပ္ပါယ် ရှိလေသည်။
SQL သည် keyword များနှင့် ဖော်ပြသည် ဖြစ်လေရာ၊ SQL ထဲတွင် စာကြောင်းများကို ဖော်ပြသော အခါ Single quote ကိုသုံးရလေသည်။ (နောက်ပိုင်းတွင် အသေးစိတ် ဖော်ပြပါမည်။)
စာကြောင်းများထဲတွင် single quote ပါလျှင် ဘယ်လို လုပ်မည်နည်းဟု စောဒက တက်ပါက၊ single quote ကိုနှစ်ခု ဆက်တိုက် ရေးခြင်းဖြင့် Database ကို နားလည် စေနိုင်ကြောင်း မှတ်ရာ၏။
2.4 SQL Command ကို အဆုံးသတ်လျှင်
အခြား ဘာသာစကား များနည်းတူ SQL တွင်လည်း command တစ်ကြောင်းကို အဆုံးသတ် ရာတွင် ပုဒ်မ ချရလေသည်။ SQL ၏ ပုဒ်မ အဖြစ်သုံးသော စာလုံးကား semi column “;” ဖြစ်လေသည်။ အဆင့်မြင့်သော Database system များသည် ပုဒ်မ မချသော်လည်း SQL command ကို နားလည် နိုင်လေသည်။ သို့သော် မူအားဖြင့်၄င်း၊ တစ်ခုထက် ပိုသော SQL command များကို တစ်ပြိုင်နက် ရေးသား အသုံးချလျှင် သော်လည်းကောင်း၊ SQL command တစ်ကြောင်း ဆုံးတိုင်း ပုဒ်မ ချရမည် ဖြစ်သည်။
3. Table တစ်ခု တည်ဆောက်ခြင်း
(မှတ်ချက်။ ။ ဤနေရာမှစကာ Database System အား DBS ဟု အတိုကောက် ရေးသားပါမည်။)
ဇယားတစ်ခု တည်ဆောက်ရန် DBS အား စေခိုင်းသောအခါ၊ ဖန်တီးလိုသည့် ဇယားအမည်အား ပေးရမည် ဖြစ်သည်။ Girls ဟုမည်သော Table ကို တည်ဆောက် စေလိုသော် “Girls ဇယားကို ဖန်တီးစေ” ဟိုဆိုရသည်။ ဘိုလို “create a table called girls.” ဟုရေးရသည်။ SQL အားဖြင့်ကား “CREATE TABLE Girls” ဟု DBS အား အမိန့်ပေးရသည်။
ဤနေရာတွင် CREATE နှင့် TABLE တို့မှာ Keywords များဖြစ်ကြသည်။ ကဲ….ဇယား အမည်တော့ ဖော်ပြပြီ၊ သို့သော် ဇယား၏ အင်္ဂါ မပြည့်စုံသေး။ ဇယားတွင် ထည့်သွင်း သိမ်းဆည်းလိုသည့် အချက်အလက် များအတွက် အတိုင် (column) များကိုပါ DBS အား ထည့်သွင်း ဖော်ပြပေးရမည် ဖြစ်သည်။
Girls table တွင် အမှတ်စဉ် (No) ၊ အမည် (Name) နှင့် မှတ်ပုံတင် (NRIC) အတိုင် များကို ထည့်သွင်းကြမည်။ ထိုသို့ ထည့်သွင်း ဖော်ပြရန် DBS အား command ပေးရာတွင် အောက်ပါအတိုင်း ရေးသားနိုင်သည်။ ကွင်းစ ကွင်းပိတ်နှင့် အဆုံးသတ် ; အား သတိပြုလေ။
CREATE TABLE Girls (No, Name, Nric);
ထိုသို့ ဖော်ပြသော်လည်း မပြည့်စုံသေး။ DBS သည် ကွန်ပြူတာ ဖြစ်လေရာ၊ No နှင့် Name တို့ ကွဲပြားပုံကို မသိချေ။ ထို့ကြောင့် Data အမျိုအစားအား ခွဲခြားပေး ရလေသည်။ No သည် အမှတ်စဉ် ဖြစ်လေရာ ကိန်းဂဏန်း အမျိုးအစား ဖြစ်လေသည်။ Name နှင့် NRIC တို့မှာကား စာအမျိုးအစား ဖြစ်လေသည်။ ကိန်းဂဏန်း အမျိုးအစားမှာ numeric ဖြစ်၍၊ စာလုံးများမှာ ကား text ဖြစ်လေသည်။ ၄င်းတို့အား Create table command တွင် အောက်ပါအတိုင်း ထည့်သွင်း ခွဲခြားပေးနိုင်သည်။
CREATE TABLE Girls (No Numeric, Name text, Nric text);
မလွယ်သလော။ ထိုဖော်ပြချက် မြင်သောအခါ DBS သည် တိုင် သုံးခု ပါသော Girls အမည်ရှိ ဇယားကို ဖန်တီး ပေးလေသည်။ ထိုသို့ Table တည်ဆောက်ခြင်း ဖော်ပြချက်ကို Database အခေါ်အားဖြင့် Create Statement (သို့) Create command ဟုခေါ်လေသည်။
4. Row တစ်ခု ထည့်သွင်းခြင်း
ဇယား ဖန်တီးပြီး သောအခါ ၄င်းထဲသို့ အချက်အလက်များ ထည့်သွင်း ကြမည်။ အချက်အလက် ထည့်သွင်းခြင်းကို insert လုပ်သည်ဟု ခေါ်သည်။ insert လုပ်ရန် DBS အား မည်သည့် ဇယားတွင် insert လုပ်ရမည်ဟု ဇယားအမည်ကို တိတိပပ ပေးရသည်။ ထို့နောက် insert လုပ်ချင်သည့် အချက်အလက်များ၊ Data များ နှင့် အတိုင်များကို ဖော်ပြပေးရသည်။
အချုပ်အားဖြင့်
- ဇယားအမည်
- အချက်အလက် ထည့်သွင်းလိုသည့် အတိုင်များ
- အချက်အလက်များ
ကို Insert Command တစ်နည်း Insert Statement တွင် ဖော်ပြပေးရသည်။
ဆိုကြပါစို့၊ Database ထဲသို့ အမှတ်စဉ် ၁၊ အမည် Alice၊ မှတ်ပုံတင် Alice1A ကို ထည့်သွင်းလိုသော် …
INSERT INTO Girls (No, Name, Nric)
VALUES (1, ‘Alica’, ‘Alice1A’);
ဟု ရေးသား ဖော်ပြ ပေးရသည်။
ဤ Insert statement တွင် INSERT, INTO နှင့် VALUES တို့မှာ keywords များဖြစ်ပြီး၊ Table အမည် Girls နောက်တွင် အချက်အလက် ထည့်သွင်း လိုသည့် အတိုင်(column)များ အမည်ကို၊ ကွင်းစ ကွင်းပိတ် ထဲတွင် အစဉ်အလိုက် ရေးသား ဖော်ပြပေး ရသည်။ ထို့နောက် တန်ဖိုး များကို၊ VALUES keyword နောက်တွင် ကွင်းစ ကွင်းပိတ် ထဲ၌ ရှေ ့တွင် ဖော်ပြခဲ့သော အတိုင်များ၏ အစဉ်အလိုက် အတိုင်း ဖော်ပြပေးရသည်။
အစဉ်အလိုက် ဖြစ်ရန် အရေးကြီး လေသည်။ အစီအစဉ် မှားယွင်းပါက DBS နားမလည် ဖြစ်ကာ Error ပြလေမည်။
တန်ဖိုးများ ဖော်ပြရာတွင် 1 မှာ ကိန်းဂဏန်း ဖြစ်သောကြောင့် single quote မလိုချေ။ Name နှင့် Nric တို့မှာ စာလုံးများ ဖြစ်သောကြောင့် single quote ထဲတွင် ရေးသား ရလေသည်။ Insert Statement ကိုအထက်တွင် နှစ်ကြောင်း ခွဲရေးထား သော်လည်း အဆုံးသတ်တွင် ; ပါသည်ကို သတိပြုပါ။ DBS သည် ၄င်း ; ကို တွေ့မှသာ command တစ်ခု ပြီးဆုံးသည်ဟု မှတ်ယူလေသည်။
ထပ်မံ၍ အတန်း ၉ ခု insert လုပ်သော်။ အောက်ပါအတိုင်း insert statement များကို DBS သို့ တစ်ပြိုင်နက်တည်း ရေးသား ပေးနိုင်လေသည်။ တစ်ခုထက် ပိုသော insert statement များကို ဖော်ပြသောအခါ statement တစ်ခုဆုံးတိုင်း ; ထည့်ရသည်ကို သတိပြုပါ။
INSERT INTO Girls (No,Name,Nric)
VALUES(2,’Betty’,Betty2B’);
INSERT INTO Girls (No,Name,Nric)
VALUES(3,’Cindy’,'Cindy3C’);
INSERT INTO Girls (No,Name,Nric)
VALUES(4,’Dolly’,Dolly4D’);
INSERT INTO Girls (No,Name,Nric)
VALUES(5,’Emmy’,'Emmy5E’);
INSERT INTO Girls (No,Name,Nric)
VALUES(6,’Emmy’,'Emmy6E’);
INSERT INTO Girls (No,Name,Nric)
VALUES(7,’Amy’,'Amy7A’);
INSERT INTO Girls (No,Name,Nric)
VALUES(8,’Elizabeth’,'Elizabeth8E’);
INSERT INTO Girls (No,Name,Nric)
VALUES(9,’Bibo’,'Bibo9B’);
INSERT INTO Girls (No,Name,Nric)
VALUES(10,’Ann’,'Ann10A’);
5. Data ရှာဖွေခြင်း (ရွေးချယ်ခြင်း)
Database ထဲသို့ အတန်း ၁၀ခု သွင်းသောအခါ၊ အောက်ပါအတိုင်း Data များ ရှိနေပေပြီ။
Girls Table ထဲမှ Data များကို DBS အား ဖော်ပြပေးစေ လိုသော်။ DBS အား မည်သည့် Table မှ၊ မည်သည့် Column များကို ဖော်ပြပါဟု တိတိကျကျ command ပေးရလေသည်။ Data များ ရွေးချယ် ခြင်းကို၊ Database အခေါ်အားဖြင့် Select လုပ်သည်ဟု ခေါ်လေသည်။ Girls table မှ Data အားလုံးကို ရွေးချယ်သော select statement ကိုရေးသော်….
“Girls table မှ No, Name နှင့် Nric တို့ကို ရွေးချယ်ပါ”၊ တစ်နည်း
SELECT No, Name, Nric FROM Girls;
ဟု ဖော်ပြရလေသည်။
ဤ statement တွင် SELECT နှင့် FROM တို့မှာ keywords များဖြစ်ကြပြီး။ မိမိရွေးချယ်လိုသည့် အတိုင် (columns) များနှင့် table အမည်ကို ဖော်ပြ ထားလေသည်။ DBS အား ၄င်း select statement ကိုပေးသော် figure 1 တွင်ရှိသည့် အတိုင်း Data ကိုထုတ်ပေး လေသည်။
အကယ်၍ select statement တွင် column အားလုံးကို မဖော်ပြဘဲ တစ်ခုသာဖော်ပြသော်၊
SELECT Name FROM Girls;
DBS သည် အောက်ပါအတိုင်း အမည် အတိုင်ကိုသာ ထုတ်ပေး ပေလိမ့်မည်။
တစ်ဖန် Column များ၏ အစီအစဉ်ကို ပြောင်းလဲ ဖော်ပြသော် ..
SELECT Nric, No, Name FROM Girls;
ဖော်ပြပါ column အစီအစဉ်အတိုင်း Nric, No, Name ဟု ထုတ်ပေးပေလိမ့်မည်။
ဤသို့ Data အားလုံးကိုထုတ်ပေးသော Select statement ရေးနည်းကိုကား သိပြီ။
Data အားလုံး မဟုတ်ဘဲ မိမိလိုချင်သော Data ကိုသာ သီးခြား ရွေးချယ် လိုသော် DBS အား မည်သည့် အတိုင်မှ မည်သည့် တန်ဖိုးပါရှိသော အတန်းများကို သာဖော်ပြပါဟု ပြောရလေသည်။
ထို့ကြောင့် Girls Table ရှိ Data များထဲမှ တစ်ခုခုကိုရှာဖွေလိုသော်၊ အောက်ပါတို့ကို သိရှိရန်လိုပေသည်။
- မိမိရှာဖွေလိုသည့် တန်ဖိုးနှင့်
- မည့်သည့်အတိုင်(column) တွင်ရှာဖွေလိုသည်
ရှာဖွေခြင်းမှာ နေရာကို ဖော်ပြခိုင်းခြင်း ဖြစ်ရာ ဘိုလိုတွင် ဘယ်နေရာ Where ကို သုံးကာ မေးရလေသည်။ ထို့နည်းတူ DBS အားမေးရာတွင်၊ ဆိုကြပါစို့ Emmy အမည်ရှိသော မိန်းကလေးကို Girls table တွင်ရှာလိုသော် “Name သည် Emmy ဖြစ်သော/ညီမျှသော Girls table မှ No, Name, Nric တို့ကိုရွေးပါ” တစ်နည်း
SELECT No, Name, Nric FROM Girls WHERE Name = ‘Emmy’;
ဟု ရေးရလေသည်။ ဤတွင် WHERE သည် keyword ဖြစ်လေသည်။ Emmy သည် text data ဖြစ်သဖြင့် single quote အတွင်းတွင် ရေးရသည်။ ထိုသို့ WHERE ပါသော statement ပိုင်းကို WHERE clause ဟုခေါ်လေသည်။ ၄င်း where clause ပါသော statement အား DBS သို့ပေးသော် အောက်ပါအတိုင်း ထုတ်ပေးလေသည်။
DBS သည် Name အတိုင်တွင် ရှိသော တန်ဖိုးများတွင် Emmy နှင့်တူသော (ညီမျှသော) အတန်းများကိုသာ ရွေးချယ် ဖော်ပြပေး လေသည်။ ဤသို့ Where clause ကိုသုံးကာ Select statement ဖြင့် မိမိရှာဖွေလိုသော စာကို တိကျစွာ ရှာဖွေနိုင်လေသည်။
(ဤအပိုင်းတွင် select statement နှင့် where clause ကို မိတ်ဆက်ခြင်းဖြစ်ရကား။ where clause ၌ AND, OR, LIKE, <, >, <> , <=, >= operator များ အကြောင်းကို မဖော်ပြတော့ပြီ။)
ဆက်ပါဦးမည် …
Facebook comments:






အားပေးတယ်ဗျို့ ။ ဆက်ရေးအုံးနော် ကျွန်တော်တို့ ဆက်လတ်ဖြန့်ချီ လိုက်ပါ့မယ် ။
[...] [...]
(နောက်ပိုင်းတွင် အသေးစိတ်ဖော်ပြပါဦးမည်) ကို စောင့်မျှော်နေလျက်ပါ
visual basic မှာ unicode ကို သုံးပြီး မြန်မာလို ဘယ်လို ရေမလဲဆိုတာ သိချင်ပါတယ်
[...] ခက်သလားဟေ့ ဒေတာဘေ့(စ်) ပေါ့ပေါ့ပါးပါ… [...]