СКЛ је скраћеница за Струцтуред Куери Лангуаге ; то је свеобухватни или декларативни језик базе података који се користи за приступ подацима из база података.
Цомпарисон Цхарт
Основа за поређење | ГДЕ | ХАВИНГ |
---|---|---|
Басиц | Имплементирано у редовима. | Имплементирано у операцијама колона. |
Примењује на | Један ред | Сумарни ред или групе. |
Преузимање података | Она добија само одређене податке из одређених редова у складу са условима. | У почетку се комплетни подаци добијају и раздвајају према услову. |
Агрегатне функције | Не може се појавити у ВХЕРЕ клаузули. | Може се појавити у ХАВИНГ клаузули. |
Усед витх | СЕЛЕЦТ и друге изјаве као што су УПДАТЕ, ДЕЛЕТЕ или било која од њих. | Не може се користити без СЕЛЕЦТ израза. |
Делује као | Пре-филтер | Пост-филтер |
ГРУПА ОД | Долази након ВХЕРЕ. | Долази након тога. |
Дефиниција клаузуле Вхере
СКЛ ВХЕРЕ клаузула се користи за описивање стања у тренутку преузимања података из једне табеле или спајања са више табела. Она враћа само одређену вредност из табеле ако је задати услов испуњен. ВХЕРЕ клаузула се користи за прожимање записа и дохваћање само потребних записа.
СКЛ такође имплементира логичке повезнице и, или, а не у ВХЕРЕ клаузули, који су такође познати као боолеан услов; услов мора бити истинит да би се вратиле торке. Операнди логичких веза изражавају операторе поређења као што су <, <=, >, > =, =, и . Ови оператори поређења упоређују низове и аритметичке изразе. Може се користити у СЕЛЕЦТ изразу, као иу наредбама УПДАТЕ, ДЕЛЕТЕ .
Узмимо примјер. Доња табела која се зове табела ' Продаја ' састоји се од атрибута ' Продуцт ' и ' Салес_амоунт '.
СЕЛЕЦТ Производ, сум (Салес_амоунт) АС Тотал_салес ФРОМ Салес ВХЕРЕ Производ у ('Телефон', 'Звучници') ГРОУП БИ Производ;
Дефиниција клаузуле
СКЛ обезбеђује ХАВИНГ клаузулу која се може користити заједно са ГРОУП БИ клаузулом. Ова ХАВИНГ клаузула помаже у враћању вредности за групе које испуњавају одређене услове. ВХЕРЕ клаузула се може користити заједно са ХАВИНГ клаузулом током селекције, ВХЕРЕ клаузула филтрира појединачни ред. Затим се редови групишу, а извршавају се агрегатни прорачуни, а на крају ХАВИНГ клаузула филтрирају групе.
Он се понаша у истом као ВХЕРЕ када се не користи ГРОУП БИ кључна реч. Групне функције као што су мин, мак, авг, сум и цоунт могу се појавити само у две клаузуле: СЕЛЕЦТ и ХАВИНГ клаузула. Обезбеђује услов на бројевима који одговарају свакој вредности у групи атрибута. Једини скуп записа који задовољава услов ће бити приказан као резултат.
Овде такође узимамо исти пример као и ВХЕРЕ и разматрамо исту ' Салес ' табелу. Када желимо да израчунамо Тотал_салес телефона и звучника користећи ХАВИНГ клаузулу, написаћемо следећи упит.
СЕЛЕЦТ Производ, сум (Салес_амоунт) АС Тотал_салес ФРОМ Салес ГРОУП По производу Имајући у производу ('телефон', 'звучници');
Упит производи следеће излазе где се производи прво преузимају, затим се извршава агрегатна функција (сума) и на крају се филтрирају за разлику од ВХЕРЕ клаузуле.
Када желимо да нађемо само оне производе где је Тотал_салес већи од 1000. Упит се може написати као:
СЕЛЕЦТ Производ, сум (Салес_амоунт) АС Тотал_салес ФРОМ Салес ГРОУП По производу Имајући суму (Салес_амоунт)> 1000;
Произведени излаз је:
Ово се не може извршити помоћу ВХЕРЕ клаузуле упркос ХАВИНГ-у и генерише поруку о грешци јер ВХЕРЕ клаузула не може да се користи са агрегатним функцијама.
Кључне разлике између клаузула где и када
- ВХЕРЕ клаузула се користи у операцијама реда и примењује се на један ред, док се ХАВИНГ клаузула користи у операцијама колона и може се применити на резимиране групе или редове.
- У клаузули ВХЕРЕ жељени подаци се преузимају према примењеном стању. Насупрот томе, ХАВИНГ клаузула дохвати цео податак, а раздвајање се врши према стању.
- Агрегатне функције као што су мин, сум, мак, авг не могу се појавити заједно са ВХЕРЕ клаузулом. Насупрот томе, ове функције се могу појавити у ХАВИНГ клаузули.
- ХАВИНГ клаузула се не може користити без СЕЛЕЦТ израза. Насупрот томе, ВХЕРЕ се може користити са СЕЛЕЦТ, УПДАТЕ, ДЕЛЕТЕ, итд.
- ВХЕРЕ клаузула се понаша као пре-филтер док ХАВИНГ клаузула дјелује као пост-филтер.
- ВХЕРЕ клаузула када се користи са ГРОУП БИ, долази пре ГРОУП БИ. Ово означава да ВХЕРЕ филтрира редове пре него што се изврше агрегатна израчунавања. С друге стране, ХАВИНГ долази након ГРОУП БИ, што значи да се филтрира након извршених агрегатних израчуна.
Закључак
ВХЕРЕ и ХАВИНГ клаузула ради на исти начин, осим додатне функције по којој је ХАВИНГ клаузула популарна. ХАВИНГ клаузула може ефикасно да ради са агрегатним функцијама док ВХЕРЕ не може да ради са агрегатним функцијама.