SQL ခုနှစ်တွင် Databases နှင့်ဇယား Creating

အဆိုပါဒေတာဘေ့စ Creating

သင်နှင့်အတူ databases ကိုနှင့်စားပွဲစတင်ဖန်တီးဖို့ရန်အဆင်သင့်ဖြစ်ပြီလား ပုံစံချထားသော Query Language ? ဤဆောင်းပါး၌, ကျနော်တို့စူးစမ်းလေ့လာ စားပွဲအတွက်လုပ်ငန်းစဉ်သည် ၎င်းနှင့်အတူကိုယ်တိုင် CREATE DATABASE နှင့် TABLE ပညတ်တော်တို့ကို CREATE ။ သငျသညျ SQL အသစ်ဆိုရင်, သင်တို့သည်ငါတို့၏ပြန်လည်သုံးသပ်ဖို့လိုပေမည် SQL အခြေခံ ပထမဦးဆုံးဆောင်းပါး။

စီးပွားရေးလုပ်ငန်းလိုအပ်ချက်များ

ကျနော်တို့ကကီးဘုတ်မှာထိုင်မီ, ငါတို့သည်ဖောက်သည်ရဲ့လိုအပ်ချက်တစ်ခုအစိုင်အခဲဥာဏ်ရှိသည်သေချာဖို့လိုအပ်ပါတယ်။ ဒီထိုးထွင်းသိမြင်မှုရယူဖို့အကောင်းဆုံးနည်းလမ်းတစ်ခုကဘာလဲ? သင်တန်း၏, ဖောက်သည်ဖို့ပြောနေတာ! XYZ ရဲ့လူ့စွမ်းအားအရင်းအမြစ်ဒါရိုက်တာနှင့်အတူထိုင်ပြီးနောက်ကျနော်တို့သူတို့တစ်တွေ widget ကအရောင်းကုမ္ပဏီဖြစ်ကြောင်းနှင့်၎င်းတို့၏ရောင်းအားပုဂ္ဂိုလ်များအပေါ်သတင်းအချက်အလက်ခြေရာခံထဲမှာအဓိကအားဖြင့်စိတ်ဝင်စားဖြစ်ကြောင်းလေ့လာသင်ယူပါတယ်။

XYZ ကော်ပိုရေးရှင်းတစ်ဦးချင်းစီရောင်းအားကိုယ်စားလှယ်များဖြင့်ဖုံးလွှမ်းအများအပြားနယ်မြေများသို့ကွဲပြားတစ်ဦးချင်းစီ၏အရှေ့ပိုင်းနှင့်အနောက်ပိုင်းဒေသများသို့သူတို့ရဲ့ရောင်းအားအင်အားသုံးအပိုင်းသုံးပိုင်း။ The HR ဌာနတစ်ခုချင်းစီကိုဝန်ထမ်းအဖြစ်တစ်ဦးချင်းစီန်ထမ်းရဲ့လစာသတင်းအချက်အလက်နှင့်ကြီးကြပ်ရေးမှူးဖွဲ့စည်းပုံမှာဖြင့်ဖုံးလွှမ်းနယ်မြေကိုခြေရာခံဖို့လိုပါတယ်။ ဤအလိုအပ်ချက်များကိုဖြည့်ဆည်းဖို့, ကျနော်တို့အတွက်ပြသသုံးစားပွဲ, ပါဝင်သည်ဟုတစ်ဒေတာဘေ့စဒီဇိုင်းရေးဆွဲပြီးပြီ Entity-ဆက်ဆံရေးပုံ ဤစာမျက်နှာတွင်။

တစ်ဦး Database ဟာပလက်ဖောင်းရွေးချယ်ခြင်း

ကျနော်တို့ကသုံးစွဲဖို့ဆုံးဖြတ်လိုက်ပါတယ်င့် ဒေတာဘေ့စစီမံခန့်ခွဲမှုစနစ်အ ပုပုံစံချထားသော Query Language (SQL) အပေါ်သို့ built ကွောငျး (သို့မဟုတ် DBMS) ။ ထို့ကြောင့်, ကျွန်တော်တို့ရဲ့ဒေတာဘေ့စနှင့်စားပွဲပေါ်မှာဖန်ဆင်းခြင်းပညတ်တော်တို့ကိုအပေါငျးတို့သစိတျထဲတှငျစံ ANSI SQL နှင့်အတူတိကျမ်းစာ၌လာသည်ရပါမည်။

တစ်ဦးကဆက်ပြောသည်အကျိုးကျေးဇူးအဖြစ်, ANSI-compliant SQL ကို အသုံးပြု. ထို command ကို support မဆို DBMS အလုပ်လုပ်ပါလိမ့်မယ်ဆိုတာသေချာပါလိမ့်မယ် ယင်း SQL စံ ဟာ Oracle နှင့် Microsoft SQL Server အပါအဝင်။ သငျသညျသေးသင့်ရဲ့ဒေတာဘေ့စများအတွက်ပလက်ဖောင်းမရွေးကြပြီမဟုတ်လျှင်, ဆောင်းပါး ဒေတာဘေ့စဆော့ဝဲ Options ကို ရွေးချယ်လုပ်ငန်းစဉ်မှတဆင့်သင်ကလမ်းလျှောက်။

အဆိုပါဒေတာဘေ့စ Creating

ကျနော်တို့ရဲ့ပထမဦးဆုံးခြေလှမ်းကတော့ဒေတာဘေ့စသူ့ဟာသူဖန်တီးရန်ဖြစ်ပါသည်။ အတော်များများကဒေတာဘေ့စစီမံခန့်ခွဲမှုစနစ်များကိုဒီခြေလှမ်းမှာဒေတာဘေ့စ parameters တွေကိုစိတ်ကြိုက်ရွေးချယ်စရာတစ်ခုစီးရီးပူဇော်, ဒါပေမယ့်ကျွန်တော်တို့ရဲ့ဒေတာဘေ့စတစ်ခုသာဒေတာဘေ့စ၏အရိုးရှင်းဖန်တီးမှုခွင့်ပြုထားသည်။ ကျွန်တော်တို့ရဲ့ပညတ်တော်တို့ကိုအပေါငျးတို့သကဲ့သို့ပင်, သင်သည်သင်၏တိကျတဲ့စနစ်ဖြင့်ထောက်ခံမည်သည့်အဆင့်မြင့် parameters တွေကိုသင့်ရဲ့လိုအပ်ချက်များကိုဖြည့်ဆည်းလျှင်ဆုံးဖြတ်ရန်ရန်သင့် DBMS များအတွက်မှတ်တမ်းတင်တိုင်ပင်ဖို့လိုပေမည်။ ရဲ့ကျွန်တော်တို့ရဲ့ဒေတာဘေ့စကို set up ဖို့ CREATE DATABASE command ကိုသုံးပါစို့:

DATABASE ပုဂ္ဂိုလ်များ CREATE

အပေါ်ကဥပမာထဲမှာအသုံးပြုတဲ့အရင်းအနှီး၏အထူးမှတ်ချက်ကိုယူပါ။ ထိုသို့သောက "ပုဂ္ဂိုလ်များ" ဒေတာဘေ့စနာမည်ကဲ့သို့သောအသုံးပြုသူ-သတ်မှတ်ထားသောအမည်များအားလုံးကိုစာလုံးအသေးကိုသုံးနေစဉ် "DATABASE" "CREATE" နှင့်အမျှ SQL သော့ချက်စာလုံးများအားလုံးကိုစာလုံးသုံးစွဲဖို့ SQL programmer တွေအကြားဘုံအလေ့အကျင့်ပါပဲ။ ဒီသဘောတူညီချက်တွေကိုလွယ်ကူသောဖတ်နိုင်တဲ့အဘို့သည်။

ကျွန်တော်တို့ရဲ့ဒေတာဘေ့စများအတွက်စားပွဲဖန်တီးအတိုင်းဤသင်ခန်းစာဖတ်နေ Continue ။

နောက်ထပ်သင်ယူခြင်း

သင်နှင့်ပတ်သက်ပြီးပိုမိုလေ့လာသင်ယူရန်လိုလျှင် ပုံစံချထားသော Query Language ဖတ် SQL ဖို့နိဒါန်း သို့မဟုတ်ကျွန်တော်တို့ရဲ့အခမဲ့သင်ယူ SQL e-mail, သင်တန်းတက်သည်လက်မှတ်ထိုးခဲ့ကြသည်။

ယခုငါတို့ဒီဇိုင်းနှင့်ကျွန်ုပ်တို့၏ဒေတာဘေ့စ created သွားပါပြီ, ကျွန်တော် XYZ ကော်ပိုရေးရှင်းရဲ့ပုဂ္ဂိုလ်များ data တွေကိုသိမ်းထားဖို့အသုံးပြုတဲ့သုံးကျောက်ပြားကိုစတင်ဖန်တီးဖို့ရန်အဆင်သင့်ပါပဲ။ ကျနော်တို့ကဒီသင်ခန်းစာ၏ယခင်အဘို့ကိုအတွက်ထုတ်လုပ်ထားတဲ့ကျောက်ပြားကိုအကောင်အထည်ဖော်ပါလိမ့်မယ်။

ကျွန်ုပ်တို့၏ပထမဦးစွာစားပွဲတင် Creating

ကျနော်တို့ရဲ့ပထမဦးဆုံးစားပွဲကျွန်တော်တို့ရဲ့ကုမ္ပဏီတစ်ခုချင်းစီန်ထမ်းများအတွက်ပုဂ္ဂိုလ်ရေးအချက်အလက်များ၏ပါဝင်ပါသည်။ ကျနော်တို့တစ်ဦးချင်းစီန်ထမ်းရဲ့အမည်, လစာ, ID ကိုနှင့်မန်နေဂျာတို့ပါဝင်သည်ဖို့လိုအပ်ပါတယ်။ ဒါဟာအနာဂတ်အတွက်ရှာဖွေနေနှင့် sorting data တွေကိုရှင်းလင်းလွယ်ကူစေရန်သီးခြားလယ်ကွင်းထဲသို့နောက်ဆုံးနှင့်ပထမဦးဆုံးအမည်များကိုခွဲခြားရန်ကောင်းသောဒီဇိုင်းကိုအလေ့အကျင့်ပါပဲ။ ဒါ့အပြင်ကျနော်တို့တစ်ဦးချင်းစီဝန်ထမ်းစံချိန်အတွက်မန်နေဂျာရဲ့ဝန်ထမ်း ID ကိုမှတစ်ဦးကိုကိုးကားထည့်ခြင်းဖြင့်တစ်ဦးချင်းစီန်ထမ်းရဲ့မန်နေဂျာခြေရာခံစောင့်ရှောက်ပါလိမ့်မယ်။ ၏ပထမဦးဆုံးလိုချင်သောဝန်ထမ်းစားပွဲ၌ကြည့်ကြရအောင်။

အဆိုပါ ReportsTo attribute ကိုတစ်ခုချင်းစီကိုဝန်ထမ်းများအတွက်မန်နေဂျာ ID ကိုသိုလှောင်ပါသည်။ ပြထားတဲ့နမူနာမှတ်တမ်းများကနေကျနော်တို့က Sue Scampi တွမ် Kendall နှင့်ယောဟန် Smith ကနှစ်ဦးစလုံး၏မန်နေဂျာကြောင်းဆုံးဖြတ်ရန်နိုင်ပါတယ်။ ညွှန်ပြအဖြစ်သို့သော်ဆူးရဲ့မန်နေဂျာအပေါ် database ထဲတွင်မပါအချက်အလက်များလည်းမရှိ သည့် null entry ကိုအားဖြင့် သူမ၏အတန်း၌တည်၏။

အခုဆိုရင်ကျွန်တော်တို့ရဲ့ပုဂ္ဂိုလ်များ database ထဲတွင်စားပွဲကိုဖန်တီးရန် SQL ကိုသုံးနိုင်သည်။ ကျွန်တော်အဲဒီလိုမဖြစ်မီရဲ့ကျွန်တော်တစ်ဦးအသုံးပြုမှု command ကိုထုတ်ပေးခြင်းဖြင့်မှန်ကန်သောဒေတာဘေ့စ၌နေသောသေချာပါစေ:

ပုဂ္ဂိုလ်များအသုံးပွု;

တနည်းအားဖြင့် "DATABASE ပုဂ္ဂိုလ်များ;" command ကိုအတူတူ function ကိုလုပ်ဆောင်လိမ့်မည်။ အခုဆိုရင်ကျွန်တော်တို့ရဲ့န်ထမ်းစားပွဲကိုဖန်တီးရန်အသုံးပြုတဲ့ SQL command ကိုကြည့်ယူနိုင်သည်

TABLE CREATE န်ထမ်း (employeeid integer null မဟုတ်ပါ, lastname VARCHAR (25) မ null, integer null reportsto, null မ VARCHAR (25) firstname);

အထက်ပါဥပမာနှင့်ဝသကဲ့သို့, programming ကိုစည်းဝေးကြီးတစ်ခုကိုကျွန်တော် SQL သော့ချက်စာလုံးများနှင့်အသုံးပြုသူ-အမည်ရှိကော်လံနှင့်ဇယားများအတွက်စာလုံးအသေးအားလုံးကိုစာလုံးကိုသုံးပါဆိုထားသည်ကြောင်းသတိပြုပါ။ အပေါ်က command ကိုပထမဦးဆုံးမှာရှုပ်ထွေးပုံရပေမည်, သို့သော်နောက်ကွယ်မှရိုးရှင်းတဲ့ဖွဲ့စည်းတည်ဆောက်ပုံကိုအမှန်တကယ်ရှိပါတယ်။ ဒီနေရာတွင်နည်းနည်းအမှုအရာထရှင်းလင်းအံ့သောငှါတစ် generalized အမြင်ဖွင့်:

TABLE table_name (ATTRIBUTE_NAME datatype options များ ... , ATTRIBUTE_NAME datatype ရွေးချယ်စရာ) CREATE;

attribute တွေနဲ့ဒေတာအမျိုးအစားများ

ယခင်ဥပမာထဲမှာ, စားပွဲပေါ်မှာနာမကိုအမှီန်ထမ်းများနှင့်ကျွန်တော်လေး attribute တွေပါဝင်သည်: employeeid, lastname, FIRSTNAME နှင့် reportsto ။ အဆိုပါ datatype ကျနော်တို့တစ်ဦးချင်းစီသည်လယ်ပြင်၌သိုလှောင်ရန်ဆန္ဒရှိသတင်းအချက်အလက်အမျိုးအစားကိုဖော်ပြသည်။ အဆိုပါဝန်ထမ်း ID ကိုရိုးရှင်းတဲ့ကိန်းအရေအတွက်ဖြစ်ပါတယ်, ဒါကြောင့်ကျနော်တို့က employeeid လယ်ပြင်နှင့် reportsto လယ်ကွင်းနှစ်ဦးစလုံးအတှကျ integer datatype ကိုသုံးပါလိမ့်မယ်။ အဆိုပါဝန်ထမ်းအမည်များ variable ကိုအရှည်၏ဇာတ်ကောင်ညှို့မည်ဖြစ်ပြီးကျမတို့ကလည်းဘယ်ဝန်ထမ်းမဟုတ်တော့ 25 ဇာတ်ကောင်ထက်ပထမဦးဆုံးသို့မဟုတ်နောက်ဆုံးအမည်ရှိသည်ဖို့မျှော်လင့်ထားပါဘူး။ ထို့ကွောငျ့ကြှနျုပျတို့သညျဤလယ်ကွင်းများအတွက် VARCHAR (25) အမျိုးအစားကိုသုံးပါလိမ့်မယ်။

null တန်ဖိုးများ

ငါတို့သည်လည်းဖြစ်စေသတ်မှတ်နိုင်ပါတယ် null null သို့မဟုတ်မ ပု CREATE ကြေညာချက်၏ရွေးချယ်စရာလယ်ပြင်၌။ ဒါဟာရိုးရှင်းစွာဒေတာဘေ့စဖို့တန်းစီထည့်သွင်းသည့်အခါ null (သို့မဟုတ်ဗလာ) တန်ဖိုးများကြောင်း attribute ကိုအဘို့အခွင့်ပြုခဲ့ကြသည်ရှိမရှိအဆိုပါဒေတာဘေ့စပြောပြသည်။ ကျွန်တော်တို့ရဲ့ဥပမာထဲမှာ, HR ဌာနတစ်ခုန်ထမ်း ID နှင့်ပြည့်စုံနာမကိုအမှီတစ်ခုချင်းစီကိုဝန်ထမ်းများအတွက်သိမ်းဆည်းထားစေခြင်းလိုအပ်သည်။ သို့သျောလညျး, မတိုင်းန်ထမ်းတစ်ဦးမန်နေဂျာရှိပါတယ် - အမှုဆောင်အရာရှိချုပ်ဘယ်သူမှမှသတင်းပေးပို့! - ဒါကြောင့်ကျွန်တော်လယ်ပြင်၌ null entries တွေကိုခွင့်ပြုပါ။ null သတိပြုပါ ပုံသေတန်ဖိုးဖြစ်ပြီးဒီ option ကိုချန်လှပ်လုံးလုံးလြားလြားတစ်ခု attribute ကိုများအတွက် null တန်ဖိုးများကိုခွင့်ပြုပါလိမ့်မယ်။

အဆိုပါလက်ကျန်ဇယားတည်ဆောက်ခြင်း

အခုတော့ရဲ့နယ်မြေများစားပွဲ၌ကြည့်ယူကြကုန်အံ့။ ဒီဒေတာကိုတစ်ဦးအမြန်ကြည့် မှစ. ငါတို့သည်တစ်ခုကိန်းနှစ်ခု variable ကိုအရှည်ညှို့သိမ်းထားဖို့လိုအပျကွောငျးပုံပေါ်ပါတယ်။ ကျွန်တော်တို့ရဲ့ယခင်ဥပမာကဲ့သို့ပင်ကျနော်တို့တိုင်းဒေသကြီး ID ကိုကျော်ကို 25 ဇာတ်ကောင်လောင်ဖို့မျှော်လင့်ထားပါဘူး။ သို့သော်ကျွန်ုပ်တို့၏နယ်မြေများအချို့ရှည်အမည်များရှိသည်, ဒါကြောင့်ကျနော်တို့က 40 ဇာတ်ကောင်ကို attribute ကို၏အိုင်အိုဒင်းအရှည်ချဲ့ထွင်ပါလိမ့်မယ်။ သက်ဆိုင်ရာ SQL ကိုကြည့်ကြရအောင်:

TABLE နယ်မြေများ CREATE (territoryid integer null မဟုတ်ပါ, null မဟုတ်ပါနယ်မြေကိုဖျေါပွခကျြ VARCHAR (40), VARCHAR (25) မ null regionid);

နောက်ဆုံးအနေနဲ့ကျွန်တော်န်ထမ်းများနှင့်နယ်မြေများအကြားဆက်ဆံရေးကိုသိုလှောင်ဖို့အ EmployeeTerritories စားပွဲပေါ်မှာကိုသုံးပါလိမ့်မယ်။ တစ်ခုချင်းစီကိုဝန်ထမ်းများနှင့်ပိုင်နက်အပေါ်အသေးစိတ်သတင်းအချက်အလက်ကိုကျွန်တော်တို့ရဲ့ယခင်ကျောက်ပြားနှစ်ပြားထဲမှာသိမ်းထားတဲ့ဖြစ်ပါတယ်။ ထို့ကွောငျ့ကြှနျုပျတို့သသာဒီ table ထဲမှာနှစ်ခုကိန်းမှတ်ပုံတင်နံပါတ်များကိုသိမ်းဆည်းထားရန်လိုအပ်သည်။ ကြှနျုပျတို့သညျဤသတင်းအချက်အလက်ကိုချဲ့ထွင်ဖို့လိုအပ်ခဲ့လျှင်ကျွန်တော်တစ်ဦးကျွန်တော်တို့ရဲ့ဒေတာရွေးချယ်ရေးအတွက် JOIN ကိုသုံးနိုင်သည်မျိုးစုံစားပွဲကနေသတင်းအချက်အလက်ရရှိရန်ပညတ်တော်မူ၏။ ဒေတာသိုလှောင်၏ဤနည်းလမ်းကိုကျွန်တော်တို့ရဲ့ဒေတာဘေ့စအတွက် redundancy လျော့နည်းစေနှင့်ကျွန်ုပ်တို့၏သိုလှောင်မှု drives တွေကိုအပေါ်အာကာသ၏အကောင်းဆုံးအသုံးပြုမှုကိုသေချာ။ ကျနော်တို့အနာဂတ်သင်ခန်းစာအတွက် In-depth ကိုပု JOIN command ကိုကိုဖုံးလွှမ်းလိမ့်မယ်။ ဤတွင်ကျွန်တော်တို့ရဲ့နောက်ဆုံးစားပွဲပေါ်မှာအကောင်အထည်ဖေါ်ရန်အ SQL code ကိုဖွင့်:

TABLE employeeterritories CREATE (employeeid integer null မဟုတ်ပါ, territoryid integer မဟုတ်ပါ null);

အဆိုပါယန္တရား SQL ဖန်ဆင်းခြင်းပြီးနောက်တစ်ဒေတာဘေ့စများ၏ဖွဲ့စည်းပုံပြောင်းလဲပစ်ရန်ပေး

သငျသညျယနေ့အထူးသဖြင့်လာဘ်ဆိုရင်, သင်တို့သည်ငါတို့၏ဒေတာဘေ့စစားပွဲအကောင်အထည်ဖော်သည့်အခါကြှနျုပျတို့သညျ "မတော်တဆ" ဟုအဆိုပါဒီဇိုင်းလိုအပ်ချက်များ၏တဦးတည်းချန်လှပ်သတိပြုမိကြပေလိမ့်မည်။ XYZ ကော်ပိုရေးရှင်းရဲ့ HR ဒါရိုက်တာအဆိုပါဒေတာဘေ့စခြေရာခံဝန်ထမ်းလစာသတင်းအချက်အလက်ကြောင်းမေတ္တာရပ်ခံကျနော်တို့အတွက်ဒီအတှကျပေးလျစ်လျူရှု ဒေတာဘေ့စစားပွဲ ကျနော်တို့ကိုဖန်တီးခဲ့တယ်။

သို့သော်အားလုံးပျောက်မဟုတ်ပါဘူး။ ကျွန်တော်တို့ရဲ့လက်ရှိဒေတာဘေ့စဖို့ဒီ attribute ကို add ဖို့ ALTER TABLE command ကိုသုံးနိုင်သည်။ ကျနော်တို့အနေနဲ့ integer ဖြစ်တဲ့အတွက်တန်ဖိုးအားအဖြစ်လစာသိုလှောင်ထားချင်တယ်။ အဆိုပါ syntax သည့် CREATE TABLE command ကို၏ရန်အတော်လေးဆင်တူဖြစ်တယ်, ဒီမှာဖြစ်ပါသည်:

TABLE န်ထမ်းလစာ integer null ADD ALTER;

ကျွန်တော် null တန်ဖိုးများကိုဒီ attribute ကိုအဘို့အခွင့်ပြုထားကြသည်သတ်မှတ်ထားသောကြောင်းသတိပြုပါ။ ရှိပြီးသားစားပွဲပေါ်မှာတစ်ကော်လံထည့်သွင်းတဲ့အခါမှာအများဆုံးကိစ္စများတွင်မရှိ option ကိုလည်းမရှိ။ ဤသည်စားပွဲပေါ်မှာထားပြီးဒီ attribute ကိုမ entry ကိုနှင့်အတူတန်းစီပါရှိသည်ဆိုတဲ့အချက်ကိုကြောင့်ဖြစ်သည်။ ဒါကြောင့် DBMS အလိုအလျောက်ည့ null တန်ဖိုးကို ယင်းကိုပယ်ဖြည့်စွက်ရန်။

ထိုအကွောငျး SQL database နှင့်စားပွဲဖန်တီးမှုလုပ်ငန်းစဉ်သည်မှာကျွန်တော်တို့ရဲ့ကြည့်ကိုထုပ်။ မကြာခဏပြန်လည်စစ်ဆေး သစ်ကိုအရစ်ကျများအတွက် ကျွန်ုပ်တို့၏ SQL သင်ခန်းစာစီးရီး၌တည်၏။ သငျသညျသစ်ကိုဆောင်းပါးများအကြောင်း Databases များကို site ကိုမှဆက်ပြောသည်အခါ e-mail ကိုသတိပေးမှုချင်ပါတယ်ဆိုလျှင်, ကျွန်တော်တို့ရဲ့သတင်းလွှာစာရင်းသွင်းရန်သေချာစေပါ!