ကွန်ပျူတာများ, ဖိုင်အမျိုးအစားများ
SQL ကွဲပြား: ဖော်ပြချက်, ဥပမာ, ဂုဏ်သတ္တိများ
သင်စားပွဲကနေဒေတာတွေကို retrieve မှ SQL အသုံးပြုတဲ့အခါမကြာခဏ user ကမလိုအပ်တဲ့ဒေတာတစ်ခုလုံးဝတူညီထပ်တန်း၏တည်ရှိမှုသည်အလက်ခံ၏။ ဤအခြေအနေမှရှောင်ရှားရန်, Select လုပ်ပါဝါကျထဲမှာ SQL ကွဲပြားငြင်းခုံကိုအသုံးပြုပါ။ ဤဆောင်းပါးသည်ဤဆင်ခြေများအသုံးပြုခြင်း၏နမူနာအဖြစ်လျှောက်လွှာဟာငြင်းခုံခြင်းဖြင့်စွန့်ပစ်ရပါမည်သည့်အခြေအနေများဆွေးနွေးကြမည်။
ကျနော်တို့ကသီးခြားဥပမာစဉ်းစားရန်ဆက်လက်ဆောင်ရွက်မပြုမီ, စားပွဲ၏စုံတွဲတစ်တွဲလိုအပ်သောဒေတာဘေ့စဖန်တီးပါ။
ပြင်ဆင်မှုစားပွဲပေါ်မှာ
ကျနော်တို့ကျောက်ပြားနှစ်ပြားအတွက်တင်ပြနောက်ခံပုံအကြောင်းဒေတာဘေ့စစတိုးဆိုင်များသတင်းအချက်အလက်ရှိသည်ဆိုပါစို့။ ဤသည်စားပွဲပေါ်မှာ oboi အမျိုးအစား (နောက်ခံပုံအမျိုးအစား။ - စက္ကူ, ဗီနိုင်း, etc) ၏အိုင်ဒီလယ်ကွင်း (မူထူးခြားတဲ့အမှတ်အသား) နဲ့ (ဝေါလ်ပေပါ), အရောင် (အရောင်), တစ်ဦး struct (ဖွဲ့စည်းပုံ) နှင့်စျေးနှုန်း (ဈေးနှုန်း) ။ ထိုအ id_oboi လယ်ကွင်း (စားပွဲ Oboi အတွက်ထူးခြားတဲ့အမှတ်အသားတစ်ခုရည်ညွှန်း) နှင့်ရေတွက် (စတော့ရှယ်ယာထဲမှာလိပ်၏နံပါတ်) နှင့်အတူစားပွဲ Ostatki (အကြွင်းအကျန်) ။
ဒေတာစားပွဲပေါ်မှာဖြည့်ပါ။ စားပွဲအတွက်ဝေါလ်ပေ 9 မှတ်တမ်းများ add:
Oboi | ||||
အိုင်ဒီ | ပုံစံ | အရောင် | struct | စြေး |
1 | စက္ကူ | multicolor | ဖောင်းကြွ | 56,9 |
2 | စက္ကူကို double-အလွှာ | အဝါနုရောင်ရှိသော | ခြောသော | 114,8 |
3 | ဗီနိုင်း | လိမ်မော်သီး | ဖောင်းကြွ | 504 |
4 | မွေး | အဝါနုရောင်ရှိသော | ဖောင်းကြွ | 1020,9 |
5 | စက္ကူကို double-အလွှာ | အဝါနုရောင်ရှိသော | ခြောသော | 150,6 |
6 | စက္ကူ | multicolor | ခြောသော | 95,4 |
7 | ဗီနိုင်း | ညိုသော | ခြောသော | 372 |
8 | မွေး | အဖြူ | ဖောင်းကြွ | 980,1 |
9 | အထည် | ပန်းရောင် | ခြောသော | 1166,5 |
အဆိုပါအကြွင်းအကျန်နှင့်အတူစားပွဲ - ကိုးမှတ်တမ်းများ:
Ostatki | |
id_oboi | ရေတွက် |
1 | 8 |
2 | 12 |
3 | 24 |
4 | 9 |
5 | 16 |
6 | 7 |
7 | 24 |
8 | 32 |
9 | 11 |
ကျနော်တို့ SQL အတွက်ကွဲပြားအလို့ငှာ၏ဖော်ပြချက်မှဆက်လက်ဆောင်ရွက်။
ယင်းကို Select လုပ်ပါအပိုဒ်အတွက်ကွဲပြားထားပါ
ကွဲပြားငြင်းခုံချက်ချင်းမေးမြန်းချက်အတွက်ကို Select လုပ်ပါသော့ချက်စာလုံးပြီးနောက်ထားရှိရပါမည်။ ဒါကြောင့်နောက်ဆုံးစုံစမ်းမှုရလဒ်လုံးဝတူညီညှို့ဖြစ်ပါသည်မှဖယ်ထုတ်လိုက်ပါမည်ဘာလို့လဲဆိုတော့သူ Select လုပ်ပါဝါကျအတွက်သတ်မှတ်ထားသောအပေါငျးတို့သကော်လံဖို့လျှောက်လွှာတင်ခဲ့တယ်။ ထို့ကြောင့်တစ်ချိန်က SQL တောင်းဆိုမှုကို«ကွဲပြား select လုပ်ပါ»ရေးသားခြင်းသည့်အခါသတ်မှတ်ဖို့လုံလောက်ပါတယ်။ အဆိုပါခြွင်းချက်အနည်းငယ်အကြာတွင်ကိုကြည့်ကြောင်းစုစုပေါင်းလုပ်ဆောင်ချက်များကိုအတွင်း၌ကွဲပြား၏အသုံးပြုမှုသည်။
ဒါဟာဒေတာဘေ့စအများစုနှင့်တောင်းဆိုချက်အရသင့်ရဲ့ type ကိုအသိအမှတျမထားဘူးအောက်မေ့ရပါမည်:
ကွဲပြား Ostatki.Count, ကွဲပြား Oboi SELECT ။ * oboi FROM မှ Inner Ostatki ON Oboi.id = Ostatki.id_oboi JOIN |
အဲဒီမှာအငြင်းအခုံအကြိမ်ပေါင်းများစွာစဉ်းစားသို့မဟုတ်သတ်မှတ်ထားသောပေမယ့်ဒုတိယမတိုင်မီတတိယသို့မဟုတ်အခြားမရွေးကော်လံတစ်ချိန်ကမခံခဲ့ရပါဘူး။ သင်တစ်ဦးအမှား syntax အတွက်မှားယွင်းမှုတစ်ခုကိုရည်ညွှန်းရပါလိမ့်မယ်။
စံအတွက်လျှောက်လွှာကွဲပြားမေးမြန်းချက်
ဒါဟာသင့်လျော်သောအဆောက်အဦးတည်ဆောက်ပုံစားပွဲနှင့်တစ်ခုတည်းစားပွဲပေါ်မှာအတွင်းသူတို့ကိုဖြည့်လုံးဝတူညီညှို့ရှိပါတယ်အခါအခွအေနေဖယ်ထုတ်ထားကြောင်းသိသာသည်။ ထိုကွောငျ့, တဦးတည်း table ၏နမူနာအတူစုံစမ်းမှုကွပ်မျက်«ကွဲပြားကို Select လုပ်ပါ * »လက်တွေ့ဖြစ်ပါတယ်။
ကျနော်တို့အမျိုးအစားအားဖြင့် sort မှပဲအဆင်ပြေဘို့ကျနော်တို့ဝေါလ်ပေပါတယျ type ကိုသိရန်လိုအပ်သည့်အခါအခြေအနေကိုစဉ်းစားကြည့်ပါ:
Oboi.type SELECT အမျိုးအစားအားဖြင့် Oboi အလို့ငှာ FROM မှ |
ထိုအခါရလဒ်များသည် get:
ပုံစံ |
စက္ကူ |
စက္ကူ |
စက္ကူကို double-အလွှာ |
စက္ကူကို double-အလွှာ |
ဗီနိုင်း |
ဗီနိုင်း |
အထည် |
မွေး |
မွေး |
စားပွဲတွင်တွေ့မြင်အဖြစ်ထပ်တန်းရှိပါတယ်။ ကျွန်တော်အဆိုပြုချက်ကို add ပါလျှင်ကွဲပြားရွေးချယ်ပါ:
ကွဲပြား Oboi.type SELECT အမျိုးအစားအားဖြင့် Oboi အလို့ငှာ FROM မှ |
ကျွန်တော်အထပ်ထပ်မရှိဘဲရလဒ်ရ:
ပုံစံ |
စက္ကူ |
စက္ကူကို double-အလွှာ |
ဗီနိုင်း |
အထည် |
မွေး |
စနစ်တကျစားပွဲတစ်ခုအတွက် data တွေကိုရိုက်ထည့်လျှင်ထို့ကြောင့်, ထို့နောက်ချက်ချင်းဝယ်လက်တစ်ဦးကိုဖုန်းဖြင့်ခေါ်ဆိုမှုသို့မဟုတ်တောင်းဆိုချက်ကိုအပြီးကျနော်တို့သောအရည်ဝေါလ်ပေပါကိုဖွဆေိုနိုငျသညျ, စတိုးဆိုင်များတွင်ရရှိနိုင်ဖိုက်ဘာမှန်နဲ့ acrylic နောက်ခံပုံများမရှိကြပေ။ စျေးဆိုင်များ၏အကွာအဝေးများသောအားဖြင့်တရာဝေါလ်ပေကန့်သတ်ထားသည်မဟုတ်ကြောင်းပေးထား, non-ထူးခြားတဲ့အမျိုးအစားများစာရင်းကိုအတော်လေးအလုပ်သမား-intensive ပါလိမ့်မယ်ရှုမြင်ကြသည်။
အတွင်းကွဲပြားစုစုပေါင်းလုပ်ဆောင်ချက်များကို၏လျှောက်လွှာ
SQL ကွဲပြားငြင်းခုံဆိုစုစုပေါင်း function ကိုအတူသုံးနိုင်တယ်။ ဒါပေမယ့်မင်းနှင့်မက်စ်သည်၎င်း၏လျှောက်လွှာမပါအကျိုးသက်ရောက်မှုရှိသည်, ဒါပေမယ့်ပေါင်းလဒ်သို့မဟုတ်ပျမ်းမျှတန်ဖိုးကိုတွက်ချက်တဲ့အခါမှာမရှိသလောက်အဘယ်သူမျှမအကောင့်ထဲသို့ထပ်ခါထပ်ခါယူရှိသည်မယ်လို့ဘယ်မှာအခြေအနေမျိုးဖြစ်ပါတယ်လိမ့်မယ်။
ငါတို့သည်ငါတို့၏ဂိုဒေါင်၏ပမာဏကိုစစ်ဆေးရန်နှင့်ဤတောင်းဆိုမှုကိုပို့ချင်ဆိုပါစို့, စတော့ရှယ်ယာအတွက်ကွိုင်၏စုစုပေါင်းအရေအတွက်က computes:
SELECT ပေါင်းလဒ် (Ostatki.count) Ostatki FROM မှ |
သို့သော်ကျနော်တို့မှပြောင်းလဲပစ်ပါလိမ့်မယ် အကယ်. တောင်းဆိုမှုအဖြေ 143. ကိုပေးမည်:
SELECT ပေါင်းလဒ် (ကွဲပြား Ostatki.count) Ostatki FROM မှ |
စိတျအပိုငျးနံပါတ်များကို 3 နဲ့ 7 ဝေါလ်ပေပါတူညီတဲ့ငွေပမာဏအတွက်စတော့ရှယ်ယာ၌ရှိကြ၏သကဲ့သို့ငါတို့သည်စုစုပေါင်း 119 ရရှိရန်။ သို့ရာတွင်ထိုသို့အဖြေကမှားကြောင်းသိသာသည်။
အများစုကတော့ SQL ကွဲပြား function ကိုရေတွက်အတွက်အသုံးပြုခဲ့သည်။ ဒါကြောင့်ကျနော်တို့ကအလွယ်တကူနောက်ခံပုံများမည်မျှထူးခြားတဲ့အမျိုးအစားများထွက်ရှာတွေ့နိုင်ပါသည်, ငါတို့မ:
SELECT count က (ကွဲပြား Oboi.type) oboi FROM မှ |
သာမန်စက္ကူနှင့်ကို double-layer ကိုဗီနိုင်းနှင့် Non-ရက်ထည် - နှင့် 5 ၏ရလဒ်ရရှိမည်ဖြစ်သည်။ ဒီဆိုင်ဖွင့်စုံတွဲတစ်တွဲတစ်ဒါဇင်လိပ်နှင့်ဝေါလ်ပေပါခေတ်မီအမျိုးအစားများကိုအမျိုးမျိုးမဟုတျကွောငျးဆိုလိုသော "သာလျှင်ကျနော်တို့ဝေါလ်ပေပါ 20 အမျိုးမျိုး, ကျော်ရှိတယ်": အကယ်စင်စစ်အားလုံးထိုကဲ့သို့သောအဖြစ်ကြော်ငြာများကိုမွငျ။
ဒါဟာတူညီတဲ့မေးမြန်းမှုအတွက်, သငျသညျအရေအတွက်ကွဲပြား attribute နဲ့တူမျိုးစုံလုပ်ဆောင်ချက်များကိုသတ်မှတ်, ထိုသို့မပါဘဲနိုင်သောစိတ်ဝင်စားစရာကောင်းဖြစ်ပါတယ်။ ဒါက Select'e အတွက်ကွဲပြားပစ္စုပ္ပန်အကြိမ်ပေါင်းများစွာနိုင်ပါတယ်ရှိရာသာခွအေနကေိုဖြစ်ပါတယ်။
ယင်းငြင်းခုံ၏အသုံးပြုမှုကိုစွန့်ခွာလိုက်တဲ့အခါ
SQL ကွဲပြားငြင်းခုံ၏အသုံးပြုမှုကိုကနေနှစ်ခုအမှုပေါင်းတစွန့်ပစ်ရပါမည်:
- သငျသညျစားပွဲတစ်ရွေးချယ်ရေးလုပ်ဆောင်စီထူးခြားတဲ့တန်ဖိုးယုံကြည်မှုရှိပါတယ်။ ဒါကြောင့် (DBMS အမျိုးအစားပေါ် မူတည်. ) ဆာဗာသို့မဟုတ် client ကိုတခုတခုအပေါ်မှာနောက်ထပ်ဝန်ကြောင့်ဤကိစ္စတွင်ခုနှစ်, အငြင်းအခုံများအသုံးပြုခြင်း, မသင့်လျော်သည်။
- သင်သည်သင်၏ data တွေကိုဆုံးရှုံးကြောက်နေကြတယ်။ ကျွန်တော်တို့ကိုရှင်းပြပါရစေ။
အမျိုးအစားနှင့်အရောင် - သညျဟုထငျသူဌေးနှစ်ခုသာကော်လံ၏အရိပ်အယောင်နှင့်အတူ, သငျသညျရှိသည်သောဝေါလ်ပေပါစာရင်းပြုစုရန်သင့်အားမေးသည်။ အလေ့အထထဲက, သင်ကွဲပြားအငြင်းအခုံပေး:
ကွဲပြား Oboi.type, Oboi.color SELECT oboi FROM မှ Oboi.type BY ORDER |
နှင့် - အခြို့သောဒေတာများဆုံးရှုံး:
ပုံစံ | အရောင် |
စက္ကူ | multicolor |
စက္ကူကို double-အလွှာ | အဝါနုရောင်ရှိသော |
ဗီနိုင်း | ညိုသော |
ဗီနိုင်း | လိမ်မော်သီး |
အထည် | ပန်းရောင် |
မွေး | အဝါနုရောင်ရှိသော |
မွေး | အဖြူ |
ဒါဟာစက္ကူဝေါလ်ပေပါ (သမားရိုးကျနှင့် Dual-layer ကို) ကြှနျုပျတို့တကယ်တော့ပင်နှစ်ခုဆောင်းပါး (ကွဲပြားမရှိဘဲရလဒ်) ၏ကျနော်တို့ရဲ့အသေးစား table ထဲမှာ, တစ်ဦးတည်းသာစိတ်ထဲရှိသည်သောအထင်အမြင်ချီးမွမ်းစေခြင်းငှါ:
ပုံစံ | အရောင် |
စက္ကူ | multicolor |
စက္ကူ | multicolor |
စက္ကူကို double-အလွှာ | အဝါနုရောင်ရှိသော |
စက္ကူကို double-အလွှာ | အဝါနုရောင်ရှိသော |
ဗီနိုင်း | ညိုသော |
ဗီနိုင်း | လိမ်မော်သီး |
အထည် | ပန်းရောင် |
မွေး | အဖြူ |
မွေး | အဝါနုရောင်ရှိသော |
ဒါကြောင့်လုပ်ငန်းတာဝန်အပေါ် မူတည်. ၎င်း၏လျှောက်လွှာအပေါ်ဆုံးဖြတ်သတိထားနှင့်အရည်အချင်းဖြစ်ဖို့ငြင်းခုံကွဲပြားလိုအပ်ကြောင်းနှင့်အတူမည်သည့်တောင်းဆိုမှုကိုရေးသားခြင်း၌ရှိသကဲ့သို့။
ကွဲပြားအခြားရွေးချယ်စရာ
အားလုံးအငြင်းအခုံ - ကွဲပြားသည့်အငြင်းအခုံဆန့်ကျင်။ ၎င်း၏လျှောက်လွှာအတွက်ထပ်တန်းစီသိမ်းဆည်းထားသည်။ ဒါပေမယ့်က default ဒေတာဘေ့စအဖြစ်ကြောင့်အပေါငျးတို့သတန်ဖိုးများကိုဖော်ပြရန်လိုအပ်သောကြောင်းတွေ့ခြင်း, ငြင်းခုံအားလုံး - ကမဟုတ်ဘဲအမှန်တကယ် function ကိုငြင်းခုံထက်ခြေစစ်ပွဲဖြစ်ပါတယ်။
Similar articles
Trending Now