အားလုံးပဲ မင်္ဂလာပါ ခင်ဗျ။
ကျွန်တော်ကတော့ Spiceworks Myanmar မှာ Junior Backend Developer အဖြစ်ဝင်ရောက်လုပ်ကိုင်နေတဲ့ မောင်ဝေလျံပြည့် ဖြစ်ပါတယ်ခင်ဗျ။ ကျွန်တော်အခု မျှဝေပေးသွားမယ့် အကြောင်းအရာလေးကတော့ MySQL နဲ့ SQL အကြောင်း ဖြစ်ပါတယ်။
ပထမဦးဆုံးအနေနဲ့ Structured Query Language (SQL) အကြောင်းကို မပြောခင်မှာ Data နဲ့ Database ဆိုတာ ဘာလဲဆိုတာကို ရှင်းပြပေးသွားမှာပါ။ Data ဆိုတာကတော့ ရိုးရိုးရှင်းရှင်းပြောရမယ်ဆိုရင် ကျွန်တော်တို့ရဲ့ နာမည်၊ အသက်၊ အရပ်၊ ကိုယ်အလေးချိန်တွေကို အချက်အလက် (Data) လို့ ပြောတာဖြစ်ပါတယ်။ အဲ့လို Data တွေကို စနစ်တကျနဲ့ သူ့နေရာနဲ့သူ သိမ်းထားတာကိုတော့ Database လို့ခေါ်တာ ဖြစ်ပါတယ်။ Database တွေ ပေါ်ပေါက်လာတာကြောင့် Data တွေကို စီမံခန့်ခွဲရတာ လွယ်ကူစေတာ ဖြစ်ပါတယ်။ အဲ့လို Database တွေကို ထိန်းချုပ်ဖို့အတွက် Database Management System ဆိုပြီး ရှိပါတယ်။
Database Management System ဆိုတာကတော့ Database ထဲက Data တွေကို အလွယ်တကူ ပြုပြင်ထုတ်ယူအသုံးပြုနိုင်အောင် ရေးဆွဲထားတဲ့ software package တစ်ခုဖြစ်ပါတယ်။ အဲ့ဒီမှာ အဓိကအနေနဲ့ Database Management System (၄) မျိုးရှိပါတယ်။ အဲ့တာတွေကတော့ Hierarchical DBMS, Network DBMS, Relational DBMS, Object-Oriented DBMS တို့ဖြစ်ပါတယ်။ Hierarchical DBMS ဆိုတာကတော့ သူ့ရဲ့နာမည်အတိုင်းပဲ Data တွေကို သစ်ပင်ပုံစံလိုမျိုး သိမ်းဆည်းထားတာဖြစ်ပြီး parent-child relationship အနေနဲ့ဖော်ပြပါတယ်။ Network DBMS ဆိုတာကတော့ many-to-many relationship ကို သုံးပြီးတော့ သူ့ရဲ့ Data တွေကို တစ်ခုနဲ့တစ်ခု အများကြီးဆက်သွယ်နိုင်တာ ဖြစ်ပါတယ်။
Relational DBMS ဆိုတာကတော့ Database ထဲမှာရှိတဲ့ အချက်အလက်တွေကို စနစ်တကျတည်ဆောက်ထားတဲ့ပုံစံကို အသုံးပြုပြီး ချိတ်ဆက်အသုံးပြုနိုင်တာ ဖြစ်ပါတယ်။ Object-Oriented DBMS ဆိုတာကတော့ သူ့ကို object လေးတွေအဖြစ်နဲ့ တည်ဆောက်ပြီး အဲ့ဒီထဲမှာ အချက်အလက်လေးတွေပါဝင်ပြီး အဲ့အချက်အလက်တွေကို ဘာလုပ်ရမယ်ဆိုတာက အစ ပါဝင်ပြီးသားဖြစ်တာကို ဆိုလိုပါတယ်။ အဲ့တာတွေထဲမှာမှ ကျွန်တော်ပြောပြချင်တာကတော့ Relational DBMS ဖြစ်ပြီး သူ့ကိုသုံးဖို့ Structured Query Language(SQL) လို့ခေါ်တဲ့ Data တွေကို ပြုပြင်ပြောင်းလဲရာမှာသုံးတဲ့ Language ကိုသိထားရပါတယ်။ ဘာလို့လဲဆိုတော့ သူက Relational Database တွေရဲ့Data တွေကို အသုံးပြုဖို့ အဓိကကျတဲ့အရာ ဖြစ်နေလို့ပါ။
SQL ကိုအသုံးပြုပြီး ကျွန်တော်တို့လိုချင်တဲ့ ပုံစံအတိုင်း Database ထဲက Data တွေကို လိုအပ်သလို ပြုပြင်ပြောင်းလဲနိုင်မှာဖြစ်ပါတယ်။ SQL Commands တွေကိုလည်း အမျိုးအစားတွေခွဲထားပါသေးတယ်။ အဲ့ဒါတွေကတော့ DDL (Data Definition Language), DML (Data Manipulation Language), DCL (Data Control Language), TCL (Transaction Control Language) တို့ဖြစ်ပါတယ်။ DDL ဆိုတာကတော့ Database ထဲမှာ Data တွေ Object တွေကို ဆောက်ချင်တာပဲဖြစ်ဖြစ်၊ အသစ်ပြန်ပြင်ချင်တာပဲဖြစ်ဖြစ်၊ ဖျက်ချင်တာပဲဖြစ်ဖြစ် အဲ့လိုအချိန်တွေမှာသုံးပါတယ်။သူ့ရဲ့ commands တွေကတော့ Create, Drop, Alter, Truncate တို့ဖြစ်ပါတယ်။ DML ဆိုတာကတော့ Database Table ထဲက instances တွေကို အသစ်ထည့်တာတွေ၊ ဖျက်တာတွေ၊ ပြောင်းလဲတာတွေ စတာတွေကိုပြုလုပ်တဲ့အခါမှာ အသုံးပြုတာဖြစ်ပါတယ်။ သူ့ရဲ့ commands တွေကတော့ Insert, Update, Delete တို့ဖြစ်ပါတယ်။ DCL ဆိုတာကတော့ ကိုယ့်ရဲ့ Database System ကို အခြားသူတွေကို ပေးသုံးချင်တဲ့အခါမျိုးမှာ လွယ်ကူလျင်မြန်စွာ လုပ်ပိုင်ခွင့်ကိုပေးအပ်နိုင်ပါတယ်။ သူ့ရဲ့ commands တွေကတော့ Grant နှင့် Revoke တို့ဖြစ်ပါတယ်။ TCL ဆိုတာကတော့ Data တွေကို Database ထဲမှာ သွင်းပြီးသွားတဲ့အခြေအနေကို သိမ်းဖို့အတွက် Commit ဆိုတဲ့ command ကိုအသုံးပြုပြီး ကိုယ်ကတစ်ခုခုမှားသွားလို့ ပြီးခဲ့တဲ့အခြေအနေကို ပြန်သွားချင်တဲ့အခါ Rollback ဆိုတဲ့ command ကို အသုံးပြုပြီး လုပ်ဆောင်နိုင်တာဖြစ်ပါတယ်။
MySQL ဆိုတာကရောဘာလဲ? သူကတော့ open-source relational database management system တစ်ခုဖြစ်ပြီး platform အစုံနီးပါးမှာ သူ့ကို အသုံးပြုနိုင်အောင် ရေးဆွဲထားတာ ဖြစ်ပါတယ်။ သူ့ရဲ့ လူကြိုက်များရတဲ့ အချက်တွေကတော့ ထိန်းသိမ်းရတာလွယ်ကူခြင်း၊ ဗားရှင်းအမျိုးမျိုးအတွက် အထောက်အပံ့ရရှိခြင်း၊ သူ့ကို Windows, Mac, Linux စသည့် OS တွေမှာလွယ်ကူစွာ အသုံးပြုနိုင်ခြင်း၊ သူ့ကိုအသုံးပြုပြီး Project အကြီးကနေအသေးဆုံးထိ လိုအပ်သလို ပြုပြင်အသုံးပြုနိုင်ခြင်း စတာတွေကြောင့် လူကြိုက်များပြီး အသုံးပြုကြပါတယ်။
ဒီအောက်ကလင့်ခ်တွေမှာ သက်ဆိုင်ရာ OS အလိုက် ရယူအသုံးပြုနိုင်ပါတယ်။
MySQL Download Link
MySQL WorkBench Download Link
MySQL ကို သွင်းပြီးသွားတဲ့အခါမှာ သူ့ကို Terminal မှာ တစ်ခါတည်းခေါ်ပြီး သုံးချင်ရင်တော့ သူ့ရဲ့ location path ကိုသက်ဆိုင်ရာ Terminal Shell Script မှာထည့်ပေးရပါမယ်။ Mac မှာဆိုရင်တော့ သွင်းပြီးတာနဲ့ System Preferences ထဲမှာ MySQL ဆိုပြီးရောက်လာပါလိမ့်မယ်။ အဲ့မှာ MySQL ကိုနှိပ်လိုက်ရင် Instances နဲ့ Configuration ဆိုပြီးနှစ်မျိုးတွေ့ပါလိမ့်မယ်။ အဲ့မှာ Configuration Tab ကိုနှိပ်ပြီး base directory က select ကိုနှိပ်ပြီး ဘယ်မှာသွင်းသွားလဲဆိုတာကြည့်နိုင်ပါတယ်။ နောက်တစ်နည်းကတော့ cd /usr/local လို့ရိုက်ပြီး ကိုယ်သွင်းခဲ့တဲ့နာမည်ကို ls command သုံးပြီး နာမည်ကိုရှာပြီးသွားပါ။ ပြီးရင် bin folder အထိ cd command ကိုသုံးပြီးသွားရင် pwd ဆိုတဲ့ command ကိုရိုက်လိုက်ရင် path လမ်းကြောင်းပေါ်လာပါလိမ့်မည်။ အဲ့လမ်းကြောင်းကို ကူးပြီး sudo nano ~/.zshrc ဆိုပြီး
export PATH=”/usr/local/mysql-8.0.27-macos11-arm64/bin:$PATH” ကူးလာတဲ့လမ်းကြောင်းကို PATH ထဲထည့်ပေးလိုက်ရင်ရပါပြီ။
MySQL ကိုစပြီးသုံးတော့မယ်ဆိုရင် mysql -u root -p ဆိုပြီး Terminal မှာရိုက်ပြီး password တောင်းရင်ကိုယ်သွင်းတဲ့အချိန်ကပေးခဲ့တဲ့ password ကိုထည့်ပေးလိုက်ရင် စသုံးလို့ရပါပြီ။ အဲ့မှာကိုယ့်စီမှာရှိတဲ့ Databases တွေကိုကြည့်ချင်တယ်ဆိုရင်တော့ show databases; ဆိုပြီးရိုက်လိုက်ရင် ကိုယ့်စီမှာအသင့်တည်ဆောက်ပြီးသား database တွေကိုမြင်ရမှာဖြစ်ပါတယ်။ အဲ့ထဲကမှ Database တစ်ခုကို အသုံးပြုချင်တယ်ဆိုရင်တော့ use yourDatabaseName; ဆိုပြီးရိုက်လိုက်ရင်ရပြီဗျ။ Database ထဲက Table တွေကိုကြည့်ချင်ရင်တော့ show tables; ဆိုပြီးရိုက်လိုက်ရင်ရှိသမျှ Table တွေကိုမြင်ရမှာဖြစ်ပါတယ်။ Table ရဲ့ field formats တွေကိုကြည့်ချင်တယ်ဆိုရင်တော့ describe yourTableName; လို့ရိုက်လိုက်ရင်မြင်ရမှာဖြစ်ပါတယ်။ Table ထဲက Data တွေကိုမြင်ချင်ရင်တော့ select*from yourTableName; ဆိုပြီးရိုက်လိုက်ရင်မြင်ရမှာဖြစ်ပါတယ်။ အခြားသောအသုံးဝင်တဲ့ SQL Commands တွေကို အောက်ကလင့်ခ်မှာ ကြည့်ရှုလေ့လာနိုင်ပါတယ်ဗျ။
အခု ဒီBlog လေးကို ဖတ်ပြီး DBMS ရဲ့ ဆိုလိုရင်းနဲ့ အသုံးပြုပုံတွေကို သိရှိပြီး ဆက်လက်လေ့လာနိုင်ဖို့ အထောက်အကူပြုမယ်လို့ မျှော်လင့်ရင်း နှုတ်ဆက်လိုက်ပါတယ် ခင်ဗျ။