15.5. သင်ခန်းစာ - View များ (Lesson: Views)
Query တစ်ခုရေးသားသောအခါ အချိန်နှင့်အားစိုက်မှုများစွာ လိုအပ်ပါသည်။ View များအသုံးပြု၍ SQL query တစ်ခု၏ အဓိပ္ပါယ်သတ်မှတ်ချက်ကို ပြန်လည်အသုံးပြုနိုင်သော ‘virtual table’ ထဲတွင် သိမ်းဆည်းထားနိုင်ပါသည်။
ဤသင်ခန်းစာအတွက် ရည်မှန်းချက်- Query တစ်ခုကို View တစ်ခုအနေဖြင့် သိမ်းဆည်းရန်။
15.5.1. View တစ်ခုဖန်တီးခြင်း (Creating a View)
View တစ်ခုကို table တစ်ခုကဲ့သို့ လုပ်ဆောင်နိုင်ပါသည်၊ သို့သော် ၎င်း၏ data ရင်းမြစ်သည် query တစ်ခုမှလာပါသည်။ ယခင်သင်ခန်းစာရှိ query ကိုအခြေခံပြီး ရိုးရှင်းသော view တစ်ခုဖန်တီးကြည့်ပါမည်-
create view roads_count_v as
select count(people.name), streets.name
from people, streets where people.street_id=streets.id
group by people.street_id, streets.name;
မြင်တွေ့ရသည့်အတိုင်း အစပိုင်းတွင်ရေးသားထားသော create view roads_count_v as အပိုင်းသာလျှင် ပြောင်းလဲသွားပါသည်။ အဆိုပါ view မှ data များကို select လုပ်နိုင်ပြီဖြစ်ပါသည်-
select * from roads_count_v;
ရလာဒ်-
count | name
-------+-------------
1 | Main Road
2 | High street
1 | Low Street
(3 rows)
15.5.2. View တစ်ခုကို မွမ်းမံပြင်ဆင်ခြင်း (Modifying a View)
View ကို ပုံသေသတ်မှတ်မထားပါ၊ ၎င်းတွင် ‘data အစစ်’ များမပါဝင်ပါ။ ဆိုလိုသည်မှာ database ထဲရှိ data များကိုထိခိုက်မှုမရှိစေပဲ view ကို အလွယ်တကူပြောင်းလဲမှုပြုလုပ်နိုင်ပါသည်-
CREATE OR REPLACE VIEW roads_count_v AS
SELECT count(people.name), streets.name
FROM people, streets WHERE people.street_id=streets.id
GROUP BY people.street_id, streets.name
ORDER BY streets.name;
(ဤဥပမာတွင် SQl keyword များအားလုံးအတွက် UPPER CASE အသုံးပြုခြင်းကို ပြသထားပါသည်)
View row များကို ကောင်းမွန်စွာ sort ပြုလုပ်စေရန် ORDER BY clause ကိုထည့်သွင်းထားသည်ကို မြင်တွေ့ရပါမည်-
select * from roads_count_v;
count | name
-------+-------------
2 | High street
1 | Low Street
1 | Main Road
(3 rows)
15.5.3. View တစ်ခုကို ဖယ်ရှားခြင်း (Dropping a View)
View တစ်ခုကို မလိုအပ်တော့ပါက အောက်ပါအတိုင်း ဖျက်ပစ်နိုင်ပါသည်-
drop view roads_count_v;
15.5.4. နိဂုံးချုပ် (In Conclusion)
View များကိုအသုံးပြုပြီး query တစ်ခုကို သိမ်းဆည်းနိုင်သလို ရလာဒ်များကို table တစ်ခုကဲ့သို့ ရယူသုံးစွဲနိုင်ပါသည်။
15.5.5. နောက်ထပ်ဘာအကြောင်းအရာလဲ (What’s Next?)
တစ်ခါတရံတွင် data များကို ပြောင်းလဲသောအခါ database ထဲတွင်ပါ ပြောင်းလဲလိုသည်များရှိပါသည်။ နောက်လာမည့်သင်ခန်းစာတွင် ၎င်းကို မည်သို့လုပ်ဆောင်ရမည်ကို လေ့လာရမည်ဖြစ်ပါသည်။