အမေးများဆုံး Oracle အင်တာဗျူးမေးခွန်းများနှင့် အဖြေများ-
ထိပ်တန်း Oracle အင်တာဗျူးမေးခွန်း 40 ခုနှင့် Oracle ၏ အခြေခံသဘောတရားအားလုံးနီးပါးကို အဖြေများနှင့်အတူ အဖြေများ။
ဤသည် Oracle Interview မေးခွန်းအားလုံးနီးပါးကို ခြုံငုံပြီး အတွဲလိုက်ဖြစ်ပါသည်-
အပိုင်း #1: Oracle Basic, SQL, PL/SQL Questions (ဤဆောင်းပါး)
အပိုင်း #2: Oracle DBA၊ RAC နှင့် စွမ်းဆောင်ရည် ချိန်ညှိခြင်းမေးခွန်းများ
အပိုင်း #3: Oracle Forms နှင့် Reports အင်တာဗျူးမေးခွန်းများ
အပိုင်း #4- Oracle Apps နှင့် Oracle SOA နည်းပညာဆိုင်ရာ အင်တာဗျူးမေးခွန်းများ
စကြရအောင် စီးရီး၏ ပထမဆောင်းပါး။
ဤဆောင်းပါးတွင်ပါရှိသောမေးခွန်းအမျိုးအစားများ-
- အခြေခံ Oracle အင်တာဗျူးမေးခွန်းများ
- Oracle SQL အင်တာဗျူးမေးခွန်း
- Oracle PL/SQL အင်တာဗျူးမေးခွန်းများ
သင့်နားလည်မှုအတွက် ရိုးရှင်းသောဥပမာများဖြင့် ရှင်းပြထားသော Oracle ၏အခြေခံများကို သင်တွေ့လိမ့်မည်။ အကယ်၍ သင်သည် Oracle အင်တာဗျူးအတွက် ပါဝင်ရန် စီစဉ်နေပါက၊ ဤဆောင်းပါးတွင်ပါရှိသော ဤမေးခွန်းအစုံသည် အထောက်အကူကောင်းဖြစ်မည်မှာ သေချာပါသည်။
ရှေ့ဆက်ကြပါစို့!!
ထိပ်တန်း Oracle အင်တာဗျူးမေးခွန်းများစာရင်း
အမေး #1) Oracle ဆိုသည်မှာ အဘယ်နည်း၊ ၎င်း၏ ကွဲပြားသော တည်းဖြတ်မှုများကား အဘယ်နည်း။
အဖြေ- Oracle သည် Oracle ကော်ပိုရေးရှင်းမှ ပံ့ပိုးပေးသော နာမည်ကြီးဒေတာဘေ့စ်များထဲမှ တစ်ခုဖြစ်ပြီး၊ ဆက်စပ်စီမံခန့်ခွဲမှုဆိုင်ရာ သဘောတရားများကို လုပ်ဆောင်ပေးသောကြောင့် ၎င်းကို Oracle RDBMS ဟုလည်း ခေါ်ဆိုပါသည်။ အွန်လိုင်းတွင် တွင်ကျယ်စွာ အသုံးပြုသည်။၎င်းကို အခြားသော SQL query တစ်ခုလုံးတွင် အသုံးပြုနိုင်ပါသည်။
Q #31) ဘာလဲ၊ သော့ခတ်မှုအခြေအနေကြောင့်ဆိုလိုပါသလား။
အဖြေ- တစ်ခုနှင့်တစ်ခု သော့ခတ်ထားသည့် ဒေတာကို အသုံးပြုသူနှစ်ဦး သို့မဟုတ် ထိုထက်ပိုသောအသုံးပြုသူများသည် တစ်ပြိုင်နက်တည်း သော့ခတ်ထားသည့် အခြေအနေတစ်ခုဖြစ်သည်။ ထို့ကြောင့် ၎င်းသည် ပိတ်ဆို့ထားသော အသုံးပြုသူ ဆက်ရှင်များအားလုံးတွင် ရလဒ်များထွက်ပေါ်လာသည်။
မေး #32) အညွှန်းတစ်ခုက ဘာကိုဆိုလိုသနည်း။
အဖြေ- အညွှန်းတစ်ခုသည် တစ်ခုဖြစ်သည်။ ဇယားအတွင်း ဒေတာကို ထိရောက်စွာ ရှာဖွေရန် ဖန်တီးထားသည့် schema အရာဝတ္ထု။ Index များကို အများအားဖြင့် ဇယား၏ အချို့သော ကော်လံများတွင် ဖန်တီးထားပြီး၊ အများဆုံးဝင်ရောက်လေ့ရှိသည်။ အညွှန်းများကို အစုလိုက်ဖြစ်စေ သို့မဟုတ် အစုအဝေးဖြစ်စေနိုင်သည်။
Q#33) Oracle ဒေတာဘေ့စ်တွင် ROLE ဆိုသည်မှာ အဘယ်နည်း။
အဖြေ- အသုံးပြုခွင့်ပေးခြင်း အရာဝတ္တုတစ်ခုချင်းစီအတွက် သုံးစွဲသူတစ်ဦးချင်းစီအတွက် ခက်ခဲသော စီမံခန့်ခွဲရေးတာဝန်ဖြစ်သည်။ ဤအလုပ်ကို လွယ်ကူစေရန်အတွက်၊ ROLE ဟုခေါ်သော ဒေတာဘေ့စ်တစ်ခုတွင် ဘုံအခွင့်အရေးများအုပ်စုတစ်ခုကို ဖန်တီးထားသည်။ ဖန်တီးပြီးသည်နှင့် ROLE ကို GRANT & အသုံးပြုခြင်းဖြင့် အသုံးပြုသူများထံ တာဝန်ပေးအပ်ခြင်း သို့မဟုတ် ရုပ်သိမ်းခြင်းခံရနိုင်သည်။ ညွှန်ကြားချက်ကို ရုပ်သိမ်းပါ။
အစည်းအ ဝေး-
CREATE ROLE READ_TABLE_ROLE; GRANT SELECT ON EMP TO READ_TABLE_ROLE; GRANT READ_TABLE_ROLE TO USER1; REVOKE READ_TABLE_ROLE FROM USER1;
Q #34) CURSOR တွင် တွေ့ရှိရသည့် အရည်အချင်းများသည် အဘယ်နည်း။
အဖြေ- ကာဆာတစ်ခုတွင် အောက်တွင်ဖော်ပြထားသည့်အတိုင်း အမျိုးမျိုးသော attribute များပါရှိသည်-
(i) %FOUND :
- ကာဆာရှိပါက INVALID_CURSOR ကို ပြန်ပေးသည် ကြေငြာထားသော်လည်း ပိတ်ထားသည်။
- ထုတ်ယူမှု မဖြစ်ခဲ့ပါက NULL ကို ပြန်ပေးသော်လည်း ကာဆာသည်သာ ဖွင့်ထားသည်။
- အမှန်အတိုင်း ပြန်ပေးမည်ဆိုပါက၊အတန်းများကို အောင်အောင်မြင်မြင် ရယူနိုင်ပြီး အတန်းများကို ပြန်မပေးပါက FALSE ဖြစ်သည်။
(ii) မတွေ့ပါ :
- ကာဆာရှိပါက INVALID_CURSOR ကို ပြန်ပေးသည်။ ကြေငြာထားသော်လည်း ပိတ်ထားသည်။
- မရရှိပါက NULL ကို ပြန်ပေးသော်လည်း ကာဆာသည် တစ်ခုတည်းသာ ဖွင့်ထားသည်။
- အတန်းများကို အောင်မြင်စွာ ရယူနိုင်ပါက FALSE နှင့် အတန်းများ ပြန်မလာပါက TRUE ပြန်ပေးသည်
(iii) %ISOPEN - ညွှန်ပြမှုသည် OPEN အခြား FALSE ဖြစ်ပါက FALSE
(iv) %ROWCOUNT - ထုတ်ယူထားသော အတန်းအရေအတွက်ကို ပြန်ပေးသည် .
မေး #35) အဘယ်ကြောင့် %ROWTYPE & PLSQL ရှိ %TYPE?
အဖြေ- %ROWTYPE & %TYPE သည် ဒေတာဘေ့စ်တွင် သတ်မှတ်ထားသော ဇယားတစ်ခု၏ ဒေတာအမျိုးအစားများကို အမွေဆက်ခံနိုင်သော PL/SQL ရှိ အရည်အချင်းများဖြစ်သည်။ ဤအရည်အသွေးများကို အသုံးပြုရခြင်း၏ရည်ရွယ်ချက်မှာ ဒေတာလွတ်လပ်မှုနှင့် ခိုင်မာမှုကို ပေးဆောင်ရန်ဖြစ်သည်။
ဒေတာဘေ့စ်အတွင်း ဒေတာအမျိုးအစား သို့မဟုတ် တိကျမှုတစ်ခုခုကို ပြောင်းလဲပါက PL/SQL ကုဒ်သည် ပြောင်းလဲထားသော ဒေတာအမျိုးအစားဖြင့် အလိုအလျောက် အပ်ဒိတ်လုပ်မည်ဖြစ်သည်။
%TYPE ကို ဇယားကော်လံတစ်ခုကဲ့သို့ တူညီသောဒေတာအမျိုးအစားရှိရန် လိုအပ်သော ကိန်းရှင်တစ်ခုကို ကြေညာရန်အတွက် အသုံးပြုပါသည်။
သို့သော် %ROWTYPE သည် တည်ဆောက်ပုံနှင့် ဆင်တူသည့် မှတ်တမ်းများ၏ အတန်းအစုံကို သတ်မှတ်ရန် အသုံးပြုပါမည်။ ဇယားတစ်ခု။
မေး #36) ကျွန်ုပ်တို့ ဘာကြောင့် Stored Procedures & PL/SQL တွင် လုပ်ဆောင်ချက်များ မည်ကဲ့သို့ ကွဲပြားနေသနည်း။
အဖြေ- သိမ်းဆည်းထားသော လုပ်ထုံးလုပ်နည်းသည် သတ်သတ်မှတ်မှတ် အလုပ်တစ်ခုကို လုပ်ဆောင်ရန် ရေးသားထားသည့် SQL ထုတ်ပြန်ချက် အစုအဝေးတစ်ခု ဖြစ်သည်။ ဤထုတ်ပြန်ချက်များကို ဒေတာဘေ့စ်တွင် အုပ်စုတစ်ခုအဖြစ် သိမ်းဆည်းနိုင်သည်။သတ်မှတ်ပေးထားသောအမည်တစ်ခုဖြင့် တူညီသောခွင့်ပြုချက်များရရှိပါက မတူညီသောပရိုဂရမ်များနှင့် မျှဝေနိုင်ပါသည်။
လုပ်ဆောင်ချက်များသည် သီးခြားလုပ်ဆောင်စရာများကိုလုပ်ဆောင်ရန် ရေးသားထားသော ပရိုဂရမ်ငယ်များဖြစ်သော်လည်း ၎င်းတို့နှစ်ခုလုံးကြားတွင် ကွဲပြားမှုများရှိပါသည်။
သိမ်းဆည်းထားသော လုပ်ငန်းစဉ်များ | လုပ်ဆောင်ချက်များ
|
---|---|
သိမ်းဆည်းထားသော လုပ်ထုံးလုပ်နည်းများသည် တန်ဖိုးတစ်ခုသို့ ပြန်မရနိုင်သလို တန်ဖိုးများစွာကိုလည်း ပြန်ပေးနိုင်သည်။ | လုပ်ဆောင်ချက်သည် အမြဲတမ်းတန်ဖိုးတစ်ခုတည်းကိုသာ ပြန်ပေးပါမည်။ |
သိမ်းဆည်းထားသော လုပ်ထုံးလုပ်နည်းများတွင် DML ထုတ်ပြန်ချက်ကဲ့သို့သော DML ကြေညာချက်များ ပါဝင်နိုင်သည်။ ထည့်သွင်း၊ အပ်ဒိတ် & ဖျက်ပစ်ပါ။ | လုပ်ဆောင်ချက်တစ်ခုတွင် DML ထုတ်ပြန်ချက်များကို ကျွန်ုပ်တို့ အသုံးမပြုနိုင်ပါ။ |
သိမ်းဆည်းထားသော လုပ်ငန်းစဉ်များ လုပ်ဆောင်ချက်များကို ခေါ်ဆိုနိုင်ပါသည်။ | လုပ်ဆောင်ချက်များသည် သိမ်းဆည်းထားသော လုပ်ထုံးလုပ်နည်းများကို မခေါ်ဆိုနိုင်ပါ။ |
Standed Procedures သည် Try/Catch block ကို အသုံးပြု၍ ခြွင်းချက်ဖြင့် ကိုင်တွယ်ခြင်းကို ပံ့ပိုးပေးပါသည်။ | လုပ်ဆောင်ချက်များသည် Try/Catch block ကို မပံ့ပိုးပါ။ |
Q #37) ကျွန်ုပ်တို့ သိမ်းဆည်းထားသော လုပ်ထုံးလုပ်နည်းကို ဖြတ်သန်းနိုင်သည့် ဘောင်များသည် အဘယ်နည်း။ သိမ်းဆည်းထားသော လုပ်ထုံးလုပ်နည်းတစ်ခုမှတဆင့် INOUT ဘောင်များကို သတ်မှတ်ပြီး ၎င်းတို့ကို လုပ်ထုံးလုပ်နည်းကိုယ်တိုင် ကြေညာနေချိန်တွင် ၎င်းတို့ကို သတ်မှတ်ပေးသင့်သည်။
Q #38) အစပျိုးခြင်းဆိုသည်မှာ အဘယ်နည်းနှင့် ၎င်း၏အမျိုးအစားများကား အဘယ်နည်း။
အဖြေ- အစပျိုးမှုသည် အချို့သောဖြစ်ရပ်များ ဖြစ်ပေါ်လာသည့်အခါ အလိုအလျောက်လုပ်ဆောင်သည့်ပုံစံဖြင့် ရေးသားထားသည့် သိမ်းဆည်းထားသော ပရိုဂရမ်တစ်ခုဖြစ်သည်။ ဤဖြစ်ရပ်သည် မည်သည့် DML သို့မဟုတ် DDL လုပ်ဆောင်ချက် ဖြစ်နိုင်သည်။
PL/SQL သည် အမျိုးအစားနှစ်မျိုးကို ပံ့ပိုးပေးသည်အစပျိုးမှုများ-
- အတန်းအဆင့်
- ထုတ်ပြန်ချက်အဆင့်
မေးခွန်း #39) ပြည်တွင်းမှ ကမ္ဘာလုံးဆိုင်ရာပြောင်းလဲမှုအား သင်မည်သို့ခွဲခြားနိုင်မည်နည်း။ PL/SQL တွင် ပြောင်းလဲနိုင်သော ကိန်းရှင်?
အဖြေ- Global variable သည် ပရိုဂရမ်၏အစတွင် သတ်မှတ်ထားပြီး အဆုံးအထိ ရှင်သန်နေပါသည်။ ၎င်းကို ပရိုဂရမ်အတွင်း မည်သည့်နည်းလမ်းများ သို့မဟုတ် လုပ်ထုံးလုပ်နည်းများဖြင့်မဆို ဝင်ရောက်ကြည့်ရှုနိုင်သော်လည်း၊ local variable ကို အသုံးပြုခွင့်သည် ၎င်းကို ကြေညာထားသည့် လုပ်ထုံးလုပ်နည်း သို့မဟုတ် နည်းလမ်းအတွက် ကန့်သတ်ထားသည်။
Q #40) ပက်ကေ့ဂျ်များထဲတွင် ဘာတွေပါလဲ။ PL SQL?
အဖြေ- ပက်ကေ့ဂျ်တစ်ခုသည် Oracle ဒေတာဘေ့စ်တွင် သိမ်းဆည်းထားသည့် သိမ်းဆည်းထားသော procs၊ လုပ်ဆောင်ချက်များ၊ အမျိုးအစားများ၊ အစပျိုးမှုများ၊ cursor စသည်တို့ကဲ့သို့သော ဆက်စပ်ဒေတာဘေ့စ်အရာဝတ္ထုအုပ်စုတစ်စုဖြစ်သည်။ . ၎င်းသည် ခွင့်ပြုပါက အပလီကေးရှင်းများစွာမှ ဝင်ရောက်ကြည့်ရှုနိုင်သည့် ဆက်စပ်အရာဝတ္ထုများ၏ စာကြည့်တိုက် အမျိုးအစားတစ်ခုဖြစ်သည်။
PL/SQL Package ဖွဲ့စည်းပုံတွင် အပိုင်း ၂ ပိုင်း ပါဝင်သည်- ပက်ကေ့ဂျ်သတ်မှတ်ချက် & ပက်ကေ့ဂျ်ကိုယ်ထည်။
နိဂုံးချုပ်
အထက်ပါမေးခွန်းအစုံသည် Oracle ၏အကြောင်းကို တစေ့တစောင်းသိနိုင်ရန် ကူညီပေးလိမ့်မည်ဟု မျှော်လင့်ပါသည်။
သင့်တွင် စေ့စေ့စပ်စပ်လေ့လာနိုင်လျှင်ပင်၊ အခြေခံသဘောတရားများအားလုံးကို အသိပညာ၊ အင်တာဗျူးတွင် သင်တင်ပြပုံသည် အလွန်အရေးကြီးပါသည်။ ထို့ကြောင့် စိတ်အေးအေးထားပြီး အင်တာဗျူးကို မဆိုင်းမတွဘဲ ယုံကြည်မှုရှိရှိ ရင်ဆိုင်ပါ။
နောက်ထပ် အပိုင်း 2 ကိုဖတ်ပါ- Oracle DBA၊ RAC နှင့် စွမ်းဆောင်ရည် ချိန်ညှိခြင်းမေးခွန်းများ
အားလုံးအောင်မြင်ပါစေလို့ ဆုတောင်းပါတယ်!!
အကြံပြုစာဖတ်ခြင်း
မေး #2) Oracle Database Software Release ကို သင်မည်သို့ခွဲခြားသတ်မှတ်မည်နည်း။
အဖြေ- Oracle သည် ထုတ်ဝေမှုတိုင်းအတွက် ပုံစံများစွာကို လိုက်နာသည်။
ဥပမာ ၊
ဖြန့်ချိမှု 10.1.0.1.1 ကို ကိုးကားနိုင်သည်။ အဖြစ်-
10: အဓိက DB ထုတ်ဝေမှုနံပါတ်
1: DB ပြုပြင်ထိန်းသိမ်းမှု ထုတ်ဝေမှုနံပါတ်
0: အပလီကေးရှင်း ဆာဗာ ထုတ်ဝေမှု နံပါတ်
1: အစိတ်အပိုင်း သီးသန့် ထုတ်ဝေမှု နံပါတ်
1: ပလပ်ဖောင်း သတ်သတ်မှတ်မှတ် ထုတ်ဝေမှု နံပါတ်
မေးခွန်း #3) VARCHAR နှင့် amp; VARCHAR2?
အဖြေ- VARCHAR & VARCHAR2 သည် ပြောင်းလဲနိုင်သော အရှည်၏ အက္ခရာလိုင်းများကို သိမ်းဆည်းရန်အတွက် အသုံးပြုသည့် Oracle ဒေတာအမျိုးအစားများဖြစ်သည်။ ၎င်းတို့၏ ကွာခြားချက်များမှာ-
- VARCHAR သည် စာလုံးများကို 2000 bytes အထိ သိမ်းဆည်းနိုင်သော်လည်း VARCHAR2 သည် 4000 bytes အထိ သိမ်းဆည်းနိုင်ပါသည်။
- VARCHAR သည် ကြေငြာနေစဉ်အတွင်း သတ်မှတ်ထားသော စာလုံးများအတွက် နေရာလွတ်ကို ထိန်းထားပေးမည်ဆိုပါက၊ ၎င်းတို့ကို အသုံးမပြုသော်လည်း VARCHAR2 သည် အသုံးမပြုသောနေရာကို ထုတ်ပေးမည်ဖြစ်သည်။
မေး #4) TRUNCATE & ညွှန်ကြားချက်များကို ဖျက်မလား။
အဖြေ- ဒေတာဘေ့စ်မှ ဒေတာများကို ဖယ်ရှားရန်အတွက် အမိန့်နှစ်ခုလုံးကို အသုံးပြုပါသည်။
နှစ်ခုကြား ကွာခြားချက်မှာ-
- TRUNCATE သည် DDL လုပ်ဆောင်ချက်ဖြစ်ပြီး DELETE သည် DML လုပ်ဆောင်ချက်ဖြစ်သည်။
- TRUNCATE သည် အတန်းအားလုံးကိုဖယ်ရှားသော်လည်း ဇယားဖွဲ့စည်းပုံကို ပကတိအတိုင်းထားခဲ့သည်။ အဲဒါကို ပြန်လှန်လို့ မရဘူး။DELETE ကွန်မန်းကို ပြန်လှည့်နိုင်ချိန်တွင် COMMIT သည် ကွန်မန့်ကို လုပ်ဆောင်ခြင်းအား ထုတ်ပေးပါသည်။
- TRUNCATE အမိန့်သည် DELETE အမိန့်မပေးပါက အရာဝတ္ထုသိုလှောင်မှုနေရာကို အခမဲ့ပေးပါမည်။
- TRUNCATE နှင့် နှိုင်းယှဉ်ပါက ပိုမိုမြန်ဆန်ပါသည်။ ဖျက်ပါ။
မေး #5) RAW ဒေတာအမျိုးအစားက ဘာကိုဆိုလိုတာလဲ။
အဖြေ- RAW ဒေတာအမျိုးအစားကို ကိန်းရှင်ကို သိမ်းဆည်းရန်အတွက် အသုံးပြုသည်- အရှည် binary data သို့မဟုတ် byte strings။
RAW & VARCHAR2 ဒေတာအမျိုးအစားသည် PL/SQL သည် ဤဒေတာအမျိုးအစားကို အသိအမှတ်မပြုသောကြောင့် RAW ဒေတာကို မတူညီသောစနစ်များသို့ လွှဲပြောင်းလိုက်သောအခါ မည်သည့်ဘာသာပြန်ဆိုမှုမျှ မလုပ်နိုင်ပါ။ ဤဒေတာအမျိုးအစားကို ဇယားတစ်ခုတွင်သာ မေးမြန်းနိုင်သည် သို့မဟုတ် ထည့်သွင်းနိုင်သည်။
မျိုးစည်း- RAW (တိကျမှု)
မေး #6) Joins ဆိုသည်မှာ အဘယ်နည်း။ Joins အမျိုးအစားများကို စာရင်းပြုစုပါ။
အဖြေ- Joins များကို အချို့သော ကော်လံများ သို့မဟုတ် အခြေအနေအချို့ကို အသုံးပြုပြီး ဇယားများစွာမှ အချက်အလက်များကို ထုတ်ယူရန် အသုံးပြုပါသည်။
ထို့အပြင် အောက်တွင်ဖော်ပြထားသည့်အတိုင်း Joins အမျိုးအစားအမျိုးမျိုး-
- အတွင်းပိုင်းပူးပေါင်းခြင်း
- ပြင်ပပူးပေါင်းခြင်း
- CROSS JOINS သို့မဟုတ် CARTESIAN ထုတ်ကုန်
- EQUI JOIN
- ANTI JOIN
- SEMI JOIN
Q #7) SUBSTR & INSTR လုပ်ဆောင်ချက်များလား?
အဖြေ-
- SUBSTR လုပ်ဆောင်ချက်သည် ပေးထားသော စာကြောင်းမှ ဂဏန်းတန်ဖိုးများဖြင့် သတ်မှတ်ထားသော အပိုင်းခွဲကို ပြန်ပေးသည်။
- ဥပမာ ၊ [SELECT SUBSTR ('India is my country, 1, 4) dual] မှ “Indi” ပြန်လာပါမည်။
- INSTR သည် sub- ၏ ရာထူးနံပါတ်ကို ပြန်ပေးလိမ့်မည်string အတွင်းမှ string
- ဥပမာ ၊ [SELECT INSTR ('India is my country, 'a') နှစ်ခုမှ] 5 ပြန်လာပါမည်။
အမေး #8) Oracle ဇယားတစ်ခုရှိ ထပ်နေသည့်တန်ဖိုးများကို ကျွန်ုပ်တို့ မည်သို့ရှာဖွေနိုင်မည်နည်း။
အဖြေ- ကျွန်ုပ်တို့အသုံးပြုနိုင်ပါသည်။ ပွားနေသောမှတ်တမ်းများကိုရယူရန် အောက်ပါဥပမာမေးမြန်းချက်။
SELECT EMP_NAME, COUNT (EMP_NAME) FROM EMP GROUP BY EMP_NAME HAVING COUNT (EMP_NAME) > 1;
မေးခွန်း #9) ON-DELETE-CASCADE ထုတ်ပြန်ချက် ဘယ်လိုအလုပ်လုပ်သလဲ။
အဖြေ- DELETE CASCADE တွင် အသုံးပြုခြင်းသည် အလားတူပင်မဇယားမှ ဖျက်လိုက်သောအခါ ကလေးဇယားရှိ မှတ်တမ်းကို အလိုအလျောက် ဖျက်ပါမည်။ ဤထုတ်ပြန်ချက်ကို Foreign Keys ဖြင့်အသုံးပြုနိုင်ပါသည်။
ကျွန်ုပ်တို့သည် ON DELETE CASCADE ရွေးချယ်မှုကို အောက်ဖော်ပြပါ command အစုံကို အသုံးပြု၍ လက်ရှိဇယားသို့ ပေါင်းထည့်နိုင်ပါသည်။
Syntax-
ALTER TABLE CHILD_T1 ADD CONSTRAINT CHILD_PARENT_FK REFERENCES PARENT_T1 (COLUMN1) ON DELETE CASCADE;
မေး #10) NVL လုပ်ဆောင်ချက်က ဘာလဲ။ ၎င်းကို မည်သို့အသုံးပြုနိုင်သနည်း။
အဖြေ- NVL သည် အသုံးအနှုန်းတစ်ခုအတွက် null ဖြစ်ပါက အသုံးပြုသူကို အစားထိုးတန်ဖိုးကို ကူညီပေးသည့် လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။
၎င်းကို အောက်ပါအထားအသိုအဖြစ် သုံးနိုင်သည်။
NVL (Value_In, Replace_With)
မေးခွန်း #11) Primary Key & Unique Key တစ်ခုလား။
အဖြေ- Primary Key ကို ဇယားအတန်းတစ်ခုစီကို သီးခြားခွဲခြားသတ်မှတ်ရန် အသုံးပြုပြီး၊ Unique Key သည် ဇယားကော်လံရှိ တန်ဖိုးများ ထပ်နေခြင်းကို တားဆီးပေးပါသည်။
အောက်တွင်ဖော်ပြထားသော ကွာခြားချက်အချို့မှာ-
- မူလကီးသည် ဇယားပေါ်တွင် တစ်ခုသာရှိနိုင်ပြီး သီးသန့်သော့များသည် အများအပြားရှိနိုင်ပါသည်။
- ပင်မသော့သည် မကိုင်နိုင်ပါ။ သီးသန့်သော့သည် null တန်ဖိုးများစွာကို ခွင့်ပြုထားသော်လည်း null တန်ဖိုးတစ်ခုဖြစ်သည်။
- မူလတန်းကီးသည် အစုလိုက်အပြုံလိုက် အညွှန်းတစ်ခုဖြစ်ပြီး ထူးခြားသောကီးသည် အစုအဝေးမဟုတ်သော အညွှန်းတစ်ခုဖြစ်သည်။
Q #12) ဘာသာပြန်အမိန့်သည် REPLACE နှင့် မည်သို့ကွာခြားသနည်း။
အဖြေ- ဘာသာပြန်အမိန့်သည် ပေးထားသောစာကြောင်းတွင် စာလုံးများကို အစားထိုးစာလုံးဖြင့် ဘာသာပြန်ပေးသည်။ REPLACE အမိန့်သည် ဇာတ်ကောင်တစ်ခု သို့မဟုတ် ဇာတ်ကောင်အစုံလိုက်ကို အစားထိုးသည့်စာကြောင်းဖြင့် အစားထိုးမည်ဖြစ်သည်။
ဥပမာ-
TRANSLATE (‘Missisippi’,’is’,’15) => M155151pp1 REPLACE (‘Missisippi’,’is’,’15) => M15s15ippi
မေး #13) ကျွန်ုပ်တို့ မည်သို့ရှာဖွေနိုင်မည်နည်း။ Oracle တွင် လက်ရှိရက်စွဲနှင့် အချိန်ကို ထုတ်မလား။
အဖြေ- ကျွန်ုပ်တို့သည် လက်ရှိရက်စွဲ & Oracle တွင် SYSDATE အမိန့်ကို အသုံးပြုနေချိန်။
အညွှန်း-
SELECT SYSDATE into CURRENT_DATE from dual;
Q #14) ကျွန်ုပ်တို့ အဘယ်ကြောင့် Oracle တွင် COALESCE လုပ်ဆောင်ချက်ကို အသုံးပြုကြသနည်း။
အဖြေ- COALESCE လုပ်ဆောင်ချက်ကို စကားရပ်တွင် ပေးထားသည့် အကြောင်းပြချက်များစာရင်းမှ ပထမဆုံး အချည်းနှီးမဟုတ်သော စကားရပ်ကို ပြန်ပေးရန်အတွက် အသုံးပြုပါသည်။ စကားရပ်တစ်ခုတွင် အနည်းဆုံး အငြင်းအခုံနှစ်ခုရှိရပါမည်။
Syntax-
COALESCE (expr 1, expr 2, expr 3…expr n)
Q #15) အဆင့် 5 ရရန် query တစ်ခုကို သင်ဘယ်လိုရေးမလဲ။ STUDENT_REPORT ဇယားမှ ကျောင်းသားများ?
အဖြေ- မေးခွန်းသည် အောက်ပါအတိုင်း ဖြစ်လိမ့်မည်-
SELECT TOP 1 RANK FROM (SELECT TOP 5 RANK FROM STUDENT_REPORT ORDER BY RANK DESC) AS STUDENT ORDER BY RANK ASC;
မေး #16) ကျွန်ုပ်တို့သည် GROUP ကို မည်သည့်အချိန်တွင် အသုံးပြုမည်နည်း။ SQL Query ရှိ စာပိုဒ်အလိုက်?
အဖြေ- GROUP BY clause ကို query ရလဒ်များတွင် ကော်လံတစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ကော်လံများဖြင့် ဒေတာများကို ခွဲခြားသတ်မှတ်ရန် အသုံးပြုပါသည်။ ဤစာပိုဒ်တိုကို COUNT၊ MAX၊ MIN၊ SUM၊ AVG စသည်ဖြင့် ပေါင်းစပ်လုပ်ဆောင်မှုများတွင် မကြာခဏအသုံးပြုလေ့ရှိပါသည်။
အညွှန်း-
SELECT COLUMN_1, COLUMN_2 FROM TABLENAME WHERE [condition] GROUP BY COLUMN_1, COLUMN_2
မေး #17) ဘာလဲ၊ ဒေတာရယူရန် အလျင်မြန်ဆုံးနည်းလမ်းဖြစ်သည်။ဇယား?
အဖြေ- ဒေတာကိုရယူရန် အလျင်မြန်ဆုံးနည်းလမ်းမှာ SQL query တွင် ROWID ကိုအသုံးပြုရန်ဖြစ်သည်။
Q #18) ဘယ်မှာလဲ။ ကျွန်ုပ်တို့သည် DECODE နှင့် CASE Statements ကို အသုံးပြုပါသလား။
အဖြေ- DECODE & CASE ထုတ်ပြန်ချက်များသည် IF-THEN-ELSE ထုတ်ပြန်ချက်များကဲ့သို့ လုပ်ဆောင်မည်ဖြစ်ပြီး ၎င်းတို့သည် တစ်ခုနှင့်တစ်ခု အခြားရွေးချယ်စရာများဖြစ်သည်။ ဒေတာတန်ဖိုးများကို ပြောင်းလဲရန်အတွက် ဤလုပ်ဆောင်ချက်များကို Oracle တွင် အသုံးပြုပါသည်။
ဥပမာ-
DECODE Function
Select ORDERNUM, DECODE (STATUS,'O', ‘ORDERED’,'P', ‘PACKED,’S’,’SHIPPED’,’A’,’ARRIVED’) FROM ORDERS;
CASE Function
Select ORDERNUM , CASE (WHEN STATUS ='O' then ‘ORDERED’ WHEN STATUS ='P' then PACKED WHEN STATUS ='S' then ’SHIPPED’ ELSE ’ARRIVED’) END FROM ORDERS;
အမိန့်နှစ်ခုလုံးသည် ၎င်းတို့၏သက်ဆိုင်ရာအခြေအနေဖြင့် အမှာစာနံပါတ်များကို ပြသပေးမည်ဖြစ်ပြီး၊
အကယ်၍၊
အခြေအနေ O= မှာယူခဲ့သည်
အခြေအနေ P= Packed
အခြေအနေ S= ပို့ဆောင်ပြီး
အခြေအနေ A= ရောက်ရှိလာသည်
Q #19) ဒေတာဘေ့စ်တစ်ခုတွင် ခိုင်မာမှုကန့်သတ်ချက်များ အဘယ်ကြောင့် လိုအပ်သနည်း။
အဖြေ- ဒေတာဘေ့စ်၏ ခိုင်မာမှုနှင့် ခိုင်မာမှုကို ထိန်းသိမ်းရန်အတွက် လုပ်ငန်းစည်းမျဉ်းများကို ပြဋ္ဌာန်းရန်အတွက် ခိုင်မာမှုကန့်သတ်ချက်များ လိုအပ်ပါသည်။ ဇယားများအတွင်းသို့ မမှန်ကန်သော ဒေတာများ ဝင်ရောက်ခြင်းကို တားဆီးပါ။ အောက်ဖော်ပြပါ ကန့်သတ်ချက်များ၏အကူအညီဖြင့်၊ ဇယားများအကြား ဆက်ဆံရေးများကို ထိန်းသိမ်းထားနိုင်သည်။
Primary Key၊ Foreign Key၊ UNIQUE KEY၊ NOT NULL & စစ်ဆေးပါ။
မေး #20) Oracle တွင် ပေါင်းစည်းခြင်း က ဘာကိုဆိုလိုသနည်း၊ ကျွန်ုပ်တို့သည် ဇယားနှစ်ခုကို မည်သို့ပေါင်းစည်းနိုင်သနည်း။
အဖြေ- The MERGE ဇယားနှစ်ခုမှ အချက်အလက်များကို ပေါင်းစည်းရန် ထုတ်ပြန်ချက်ကို အသုံးပြုသည်။ ၎င်းသည် အရင်းအမြစ်ဇယားမှ ဒေတာကို ရွေးချယ်ပြီး ၎င်းကို အခြေခံ၍ အခြားဇယားတွင် ထည့်သွင်း/မွမ်းမံသည်။MERGE query တွင် ပေးထားသည့် အခြေအနေ။
Syntax-
MERGE INTO TARGET_TABLE_1 USING SOURCE_TABLE_1 ON SEARCH_CONDITION WHEN MATCHED THEN INSERT (COL_1, COL_2…) VALUES (VAL_1, VAL_2…) WHEREWHEN NOT MATCHED THEN UPDATE SET COL_1=VAL_1, COL_2=VAL_2… WHEN
Q #21) Oracle တွင် စုစည်းလုပ်ဆောင်ချက်များကို အသုံးပြုခြင်းကား အဘယ်နည်း။
အဖြေ- စုစုပေါင်းလုပ်ဆောင်မှုများသည် တန်ဖိုးတစ်ခုတည်းကိုပေးဆောင်ရန် တန်ဖိုးအစုတစ်ခုတွင် အကျဉ်းချုပ်လုပ်ဆောင်မှုများကို လုပ်ဆောင်သည်။ တွက်ချက်မှုများလုပ်ဆောင်ရန် ကျွန်ုပ်တို့၏ကုဒ်တွင် ကျွန်ုပ်တို့အသုံးပြုသည့် စုစည်းလုပ်ဆောင်ချက်များစွာရှိသည်။ ၎င်းတို့သည်-
- AVG
- MIN
- MAX
- COUNT
- SUM
- STDEV
မေး #22) သတ်မှတ်အော်ပရေတာများ UNION, UNION ALL, MINUS & INTERSECT က ဘာကို ဆိုလိုတာလဲ။
အဖြေ- ကော်လံများနှင့် နှိုင်းရဒေတာအမျိုးအစားများဖြစ်ပါက ကော်လံများနှင့် ဆွေမျိုးဒေတာအမျိုးအစားများဖြစ်ပါက ဇယားနှစ်ခုထက်ပိုသော ဇယားနှစ်ခုမှ ဒေတာကို တစ်ကြိမ်တည်းရယူရန် အသုံးပြုသူကို သတ်မှတ်အော်ပရေတာသည် လွယ်ကူချောမွေ့စေပါသည်။ အရင်းအမြစ်ဇယားများတွင် တူညီပါသည်။
- UNION အော်ပရေတာသည် ပွားနေသောအတန်းများမှလွဲ၍ ဇယားနှစ်ခုလုံးမှ အတန်းအားလုံးကို ပြန်ပေးသည်။
- UNION ALL ပြန်ပေးသည်။ ထပ်နေသောအတန်းများနှင့်အတူ ဇယားနှစ်ခုလုံးမှ အတန်းအားလုံး။
- MINUS သည် ဒုတိယဇယားတွင်မရှိသော ပထမဇယားမှအတန်းများကို ပြန်ပေးသည်။
- INTERSECT သည် ဇယားနှစ်ခုလုံးရှိ ဘုံအတန်းများကိုသာ ပြန်ပေးသည်။
Q #23) ကျွန်ုပ်တို့သည် ရက်စွဲတစ်ခုအား Oracle တွင် char အဖြစ်သို့ ပြောင်းနိုင်သနည်း၊ သို့ဆိုလျှင် အထားအသိုဖြစ်မည့်အရာ
အဖြေ- အထက်ဖော်ပြပါ ပြောင်းလဲမှုကို လုပ်ဆောင်ရန် TO_CHAR လုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ အသုံးပြုနိုင်ပါသည်။
အညွှန်း-
SELECT to_char (to_date ('30-01-2018', 'DD-MM-YYYY'), 'YYYY-MM-DD') FROM dual;
Q #24) ဒေတာဘေ့စ် အရောင်းအ၀ယ်ကို ဘာကိုဆိုလိုတာလဲ။ Oracle တွင် TCL ထုတ်ပြန်ချက်အားလုံးကို မည်သည့်အရာများ ရနိုင်သနည်း။
အဖြေ- ငွေလွှဲလုပ်ငန်းSQL Statement အစုံကို တစ်ကြိမ်တည်း လုပ်ဆောင်သောအခါ ဖြစ်ပေါ်သည်။ ဤထုတ်ပြန်ချက်များအား အကောင်အထည်ဖော်မှုကို ထိန်းချုပ်ရန်အတွက် Oracle သည် ထုတ်ပြန်ချက်အစုံကိုအသုံးပြုသည့် ငွေပေးငွေယူထိန်းချုပ်ရေးထုတ်ပြန်ချက် TCL ကိုမိတ်ဆက်ပေးခဲ့သည်။
ထုတ်ပြန်ချက်အစုအဝေးတွင်-
- COMMIT- ငွေပေးငွေယူတစ်ခု အမြဲတမ်းပြုလုပ်ရန် အသုံးပြုပါသည်။
- ROLLBACK: ကွန်မန့်အမှတ်ကို နောက်ဆုံးထားရန် DB အခြေအနေကို ပြန်လှည့်ရန် အသုံးပြုပါသည်။
- SAVEPOINT- နောက်မှပြန်လည်လုပ်ဆောင်နိုင်သည့် ငွေပေးငွေယူအချက်ကို သတ်မှတ်ရန် ကူညီပေးသည်။
မေး #25) ဒေတာဘေ့စ်အရာဝတ္ထုတစ်ခုမှ သင်မည်သို့နားလည်သနည်း။ ၎င်းတို့ထဲမှ အချို့ကို စာရင်းပြုစုနိုင်ပါသလား။
အဖြေ- ဒေတာဘေ့စ်အတွင်း ဒေတာသိမ်းဆည်းရန် အသုံးပြုသည့်အရာ သို့မဟုတ် ဒေတာကိုးကားချက်များကို ဒေတာဘေ့စ်အရာဝတ္တုဟု လူသိများသည်။ ဒေတာဘေ့စ်တွင် ဇယားများ၊ အမြင်များ၊ အညွှန်းများ၊ ကန့်သတ်ချက်များ၊ သိမ်းဆည်းထားသည့် လုပ်ထုံးလုပ်နည်းများ၊ အစပျိုးမှုများ၊ စသည်တို့ကဲ့သို့သော DB အရာဝတ္ထု အမျိုးအစားများစွာ ပါဝင်ပါသည်။
မေး #26) nested table ဆိုသည်မှာ အဘယ်နည်း၊ ၎င်းနှင့် မည်သို့ကွာခြားသနည်း။ ပုံမှန်ဇယားလား။
အဖြေ- nested table သည် ဇယားတစ်ခုအတွင်း ကော်လံတစ်ခုအဖြစ် သိမ်းဆည်းနိုင်သည့် ဒေတာဘေ့စ်စုစည်းမှုအရာဝတ္ထုတစ်ခုဖြစ်သည်။ ပုံမှန်ဇယားတစ်ခုကို ဖန်တီးနေစဉ်၊ ကော်လံတစ်ခုတည်းတွင် nested table တစ်ခုလုံးကို ကိုးကားနိုင်သည်။ Nested ဇယားများတွင် အတန်းကန့်သတ်ချက်မရှိသော ကော်လံတစ်ခုသာရှိသည်။
ဥပမာ-
CREATE TABLE EMP ( EMP_ID NUMBER, EMP_NAME TYPE_NAME)
ဤနေရာတွင်၊ ကျွန်ုပ်တို့သည် ပုံမှန်ဇယားကို EMP အဖြစ် ဖန်တီးနေပြီး nested ဇယားကို ရည်ညွှန်းပါသည်။ TYPE_NAME ကော်လံအဖြစ်။
မေး #27) ကျွန်ုပ်တို့သည် ဒေတာဘေ့စ်တစ်ခုတွင် ပုံများကို သိမ်းဆည်းနိုင်ပြီး ဟုတ်ပါက၊ မည်သို့နည်း။
အဖြေ- BLOB သည် ပုံများ၊ အသံ & ဗီဒီယိုဖိုင်များ သို့မဟုတ် binary executable အချို့။ ဤဒေတာအမျိုးအစားသည် 4 GB အထိ ဒေတာသိမ်းဆည်းနိုင်သည့် စွမ်းရည်ရှိသည်။
မေးခ #28) ဒေတာဘေ့စ်စခီမာအားဖြင့် သင်မည်သို့နားလည်သနည်း၊ ၎င်းသည် အဘယ်အရာကို ထိန်းထားသနည်း။
Answer: Schema သည် ဤ schema အတွင်းရှိ အရာဝတ္တုအသစ်များကို ဖန်တီးနိုင် သို့မဟုတ် စီမံနိုင်သော ဒေတာဘေ့စ်အသုံးပြုသူတစ်ဦး ပိုင်ဆိုင်သော ဒေတာဘေ့စ်အရာဝတ္ထုများ စုစည်းမှုဖြစ်သည်။ schema တွင် table၊ view၊ indexes၊ clusters၊ stored procs၊ functions စသည်တို့ကဲ့သို့ မည်သည့် DB objects မဆို ပါဝင်နိုင်သည်။
Q #29) ဒေတာအဘိဓာန်ဆိုတာ ဘာလဲ၊ ဘယ်လိုဖန်တီးနိုင်မလဲ။
အဖြေ- ဒေတာဘေ့စ်အသစ်တစ်ခုကို ဖန်တီးသည့်အခါတိုင်း၊ ဒေတာဘေ့စ်ဆိုင်ရာ သီးသန့်ဒေတာအဘိဓာန်ကို စနစ်က ဖန်တီးသည်။ ဤအဘိဓာန်ကို SYS အသုံးပြုသူမှ ပိုင်ဆိုင်ပြီး ဒေတာဘေ့စ်နှင့် ပတ်သက်သည့် မက်တာဒေတာအားလုံးကို ထိန်းသိမ်းထားသည်။ ၎င်းတွင် ဖတ်ရန်သီးသန့် ဇယားများနှင့် အမြင်များ အစုံပါရှိပြီး ၎င်းကို SYSTEM ဇယားကွက်လပ်တွင် ရုပ်ပိုင်းဆိုင်ရာ သိမ်းဆည်းထားသည်။
မေး #30) View ဆိုတာ ဘာလဲ၊ ဇယားတစ်ခုနဲ့ ဘယ်လိုကွာခြားလဲ။
အဖြေ- View သည် အသုံးပြုသူသတ်မှတ်ထားသော ဒေတာဘေ့စ်အရာဝတ္ထုတစ်ခုဖြစ်ပြီး နောက်ပိုင်းတွင် ကိုးကားနိုင်သည့် SQL query တစ်ခု၏ရလဒ်များကို သိမ်းဆည်းရန်အတွက် အသုံးပြုသည်။ ကြည့်ရှုမှုများသည် ဤဒေတာကို ရုပ်ပိုင်းဆိုင်ရာအရ မသိမ်းဆည်းထားသော်လည်း အတုအယောင်ဇယားတစ်ခုအနေဖြင့်၊ ထို့ကြောင့် ၎င်းကို ယုတ္တိဇယားတစ်ခုအဖြစ် ရည်ညွှန်းနိုင်သည်။
မြင်ကွင်းသည် ဇယားနှင့် ကွဲပြားသည်-
- ဇယားတစ်ခုသည် ဒေတာကို ထိန်းထားနိုင်သော်လည်း SQL query ရလဒ်များကို မရရှိနိုင်သော်လည်း View သည် query ရလဒ်များကို သိမ်းဆည်းနိုင်သည်၊