СКЛ Цоммандс Цхеат Схеет

СКЛ Цоммандс Цхеат Схеет

СКЛ је структурирани језик упита. Створен је посебно за управљање и приступ подацима који се налазе у релацијским базама података. Први комерцијални подухват који је користио СКЛ био је Орацле, који и даље има свој језик упита СКЛ * Плус као основа свих својих система управљања релацијским базама података (РДМС).

Данас МиСКЛ, СКЛ Сервер, САП и Сибасе сви користе СКЛ за приступ бази података. У овом водичу ћемо вам дати стандардну верзију СКЛ наредби, обраћајући посебну пажњу на Орацле имплементацију у СКЛ * Плус.

ИЗБОР УРЕДНИКА: Препоручујемо алате за управљање инфраструктуром СоларВиндс за надгледање свих ваших Мицрософт алата, укључујући СКЛ Сервер. Потребан вам је пакет алата за надгледање који могу комуницирати како бисте обухватили све садржаје који подржавају вашу релацијску базу података.

Релативне базе података

СКЛ управља релацијске базе података. Релативна база података садржи табеле које су одвојене да би се смањило понављање података. Процес одлучивања о правилном груписању категорија података назива се „нормализација.“У неким случајевима, захтеви за перформансама могу диктирати да таблице раде боље, ако нису у потпуности нормализоване. Овај процес се назива „денормализација“ и ретка је појава.

Свакој табели је потребан ступац који јединствено идентификује сваки ред. То се назива „Примарни кључ.”Остале табеле које се могу придружити том ентитету морају садржавати референцу на примарни кључ у сваком запису. Та се референца назива „страни кључ." Ти придружити таблице заједно слажући страни кључ у једној табели са примарним кључем у другој. Ова радња се изводи са СКЛ-ом. Дијаграм односа између ентитета корисна је референца када одлучујете о структурирању СКЛ израза.

Да бисте убрзали приступ, нормално је поставити ан индекс на сваки примарни кључ у бази података. Такође је могуће сачувати често коришћене придруживања за креирање виртуелних табела које се називају „погледа.“

Још један објект базе података је а Окидач. Ово је део СКЛ-а који се покреће кад год се вредност дода у колону или промени. Окидач ће ажурирати вредности у колони у другој табели или у другим ступцима у истој табели. То се догађа ако се у колони на коју је постављен окидач додате или промените вредност. Такође може да ограничи вредности које се могу унијети у колону.

ДКЛ, ДДЛ, ДЦЛ и ДМЛ

СКЛ укључује четири подскупове наредби. Су Језик упита података (ДКЛ), Језик описа података (ДДЛ), Језик контроле података (ДЦЛ), и Језик манипулације подацима (ДМЛ).

На већини пројеката Администратор базе (ДБА) је једини члан тима који има привилегије да користи ДДЛ. Ова командна група креира, мења и испушта табеле, индексе, окидаче и приказе.

ДМЛ користи се за додавање, промену или уклањање записа из табела у бази података. Приступ овим СКЛ функцијама обично је ограничен на особље за подршку или на старије, одговорне чланове заједнице корисника.

ДКЛ користи се за генерисање извештаја из базе података. Овај подскуп наредби користе програмери и могу бити доступни крајњим корисницима како би могли извршавати властите упите.

Управљање привилегијама корисника чува се у истој бази података као и подаци. Међутим, приступ овим табелама обично је ограничен на ДБА. Управљање корисничким приступом све се имплементира кроз ДЦЛ.

Постоји једна корисна СКЛ наредба која не спада у класификације било ДКЛ, ДДЛ, ДЦЛ или ДМЛ. Ово је "опишите“Која се обично имплементира као ДЕСЦ. Ово показује структуру објекта у бази података. У случају табеле, она ће показати листу ступаца и врсту података и величину сваке. Показаће СКЛ који је створио приказ или окидач и показаће колоне који су укључени у дати индекс.

Релативни оператори

Теорија иза релацијских база података дефинисана је са Е. Ф. Цодд 1970. У Цоддовој дефиницији лежи захтев алата за постављање упита који мора имплементирати осам битних релацијских операција. Су:

  1. ОДАБИР
  2. ПРОЈЕКАТ
  3. ПРИДРУЖИТИ
  4. ПРОИЗВОД
  5. УНИЈА
  6. ИНТЕРСЕЦТ
  7. РАЗЛИКА
  8. ПОДЕЛА

Морате савладати сваку од ових операција да бисте ефикасно приступили подацима из релацијске базе података. Ово су објашњена у даљем тексту.

ОДАБИР

Првобитно је позван СЕЛЕЦТ ОГРАНИЧЕЊЕ. То је могућност издвајања једног записа или групе одговарајућих записа из табеле у бази података. Као и теоријска операција, ОДАБИР је име главне наредбе у било којој СКЛ имплементацији. У ствари, сви подаци се изводе помоћу СЕЛЕЦТ. Команда је толико моћна да се може модификовати на много, много начина. Већина СКЛ-а који ћете морати научити јесу „клаузуле“ на СЕЛЕЦТ изјави.

ПРОЈЕКАТ

ПРОЈЕКТ је могућност изолације колоне (или „атрибута“) у табели. Ово се увек спроводи са СЕЛЕЦТ изјавом.

ПРИДРУЖИТИ

ПРИДРУЖИТЕ се повезује табеле на заједнички атрибут. Користите страни кључ у једној табели да бисте се подударали са вредностима примарног кључа у другој табели. Акт ефикасно обједињује две табеле. Ово се имплементира као клаузула у СЕЛЕЦТ изразу. Спајање између две табеле ће аутоматски изоставити све записе који се не појављују у обе пратеће табеле. Ан “спољни спој“Ће приказати записе који немају подударање у другој табели, а поља која је требало да достави друга табела оставе празна.

ПРОИЗВОД

ПРОИЗВОД је такође познат као „пута.“Ово се имплементира као СЕЛЕЦТ изјава која црпи податке из две табеле, али не одређује спајање између њих. У стварном животу постоји врло мало практичних разлога због којих би неко икад извео два стола. Обично је знак упозорења да сте лоше написали клаузулу ЈОИН. Резултат ПРОИЗВОДА је да се сваки квалификациони запис у једној табели подудара са сваким квалификационим записом у другој табели. Дакле, ако направите СЕЛЕЦТ изјаву из две табеле, од којих свака има десет записа, резултати ће бити укупно 100 записа.

УНИЈА

УНИОН је уобичајени оператор у теорији скупова. Ако имате два сета, синдикат обједињује све чланове оба сета. Умножавање се уклања из резултата. У СКЛ-у то имплементира ИЛИ Боолов оператор.

ИНТЕРСЕЦТ

ИНТЕРСЕЦТ је други главни оператор теорије скупова. Ако имате два скупа, пресјек описује оне предмете који су чланови оба скупа. Било који предмет који је члан само једног од два скупа је искључен из резултата. У СКЛ-у то имплементира И Боолов оператор.

РАЗЛИКА

РАЗЛИКА је такође позната као „минус"И у нотацији је представљен знаком минус (" - "). Постоји неколико начина да се имплементира РАЗЛИКА. Може се створити укључивањем боола НЕ у критеријумима за избор, а може га имплементирати и МИНУС оператера након чега следи подупит.

ПОДЕЛА

ДИВИДЕ је необична операција која, попут ПРОДУЦТ-а, има врло мало практичних примена. Цодд је ДИВИДЕ сматрао киселинским тестом било ког релацијског система и његовог алата за упите, тако да свака СКЛ имплементација укључује ову могућност само да би се квалификовала за наслов „релационалан“. У стварности, никад га нећете користити. Имплементација ДИВИДЕ-а захтијева низ подупитава који се уносе у МИНУС у Орацле СКЛ * Плус и ан ОСИМ оператора у неким другим СКЛ имплементацијама, као што су СКЛ Сервер и ПостгреСКЛ.

Булови оператери

Георге Бооле био је британски математичар који је умро 1864. Изумио је Боолеову алгебру која није имала практичну примену све док се поља информатике и релацијских база података нису појавила крајем 20. века. Боолеова алгебра кључна је за рад СКЛ-а - могли сте писати најосновније СКЛ упите без употребе логике Боолеан-а. Боолова логика такође подупире све претраживаче. Кључни Боолеови оператори у СКЛ-у су:

  • И
  • ИЛИ
  • НЕ

Други чудан викторијански Британац о коме морате знати је Аугустус де Морган. Смислио је запажање о трансформацији у Боолеовој теорији скупова, чега сваки СКЛ програмер мора бити свестан. Ово је да НЕ може променити начин рада И и ИЛИ. Кратка верзија је да морате бити опрезни како користите заграде у својим изјавама да бисте избјегли ненамјерне посљедице. Дакле, „и“ и „или“ би такође требало да се сматрају важним логичким операторима у СКЛ-у.

И

И имплементира ИНТЕРСЕЦТ у теорији скупова. Ако желите да извучете записе из базе података који се подударају само са два захтева, а не само једним од ових композитних критеријума, тада морате да користите АНД. На пример, можете покренути семенски посао, а ваша база података садржи табелу у којој се чувају сва ваша семена са њиховим атрибутима. Купац се јави и жели само жуте бегоније. Дакле, ти би претраживао базу података врста = „бегонија“ И боја = „жута“ да бисте добили прави каталог семена.

ИЛИ

ИЛИ вам даје све чланове два сета - то је УНИОН у теорији скупова. Дакле, у вашој семенској бази података ако сте покренули упит: врста = „бегонија“ ИЛИ боја = „жута“, добили бисте резултате који укључују жуте руже, жуту бегонију, ружичасте бегоније и жуте нарциси. У овом примеру, жуте бегоније се квалификују два пута. У релацијској теорији треба вратити само један запис. Срећом, СКЛ укључује квалификатор ДИСТИНЦТ, па уласком ОДАБИР ДИСТИНЦИЈЕ * ОД цвећа ГДЈЕ врста = „бегонија“ ИЛИ боја = „жута“, тај жути запис о бегонији појавио би се само једном.

НЕ

НЕ је лако разумети. Искључује резултате које би произвела следећа изјава: И НЕ, ИЛИ НЕ. У пракси скоро никада нећете користити „ИЛИ НЕ“ у упиту. Ако је ваш купац за семе хтео било коју боју бегоније осим жуте, користили бисте је врста = „бегонија“, а НЕ боја = „жута“ да одаберете производе које ћете понудити.

Конзоле

Према Де Морган-овом закону:

„Негација дисјункције је спајање негација; а негација коњункције је дисјункција негација. ".

На обичном енглеском језику користите заграде пажљиво у СКЛ изјави и када укључите НОТ да спречите да се АНД-ови трансформишу у ОР-ове и обрнуто. Услови кочења заједно могу такође скратити критеријуме за избор. На пример, НЕ (врсте = „бегонија“ И боја = „жута“) исто је као НИЈЕ врста = „бегонија“ ИЛИ НИЈЕ боја = „жута“.

Вађење записа

Различите СКЛ имплементације користе различите синтаксе, али у овом водичу ћемо пратити Орацле-ов СКЛ * Плус. Основна структура избора СКЛ података је:

ОДАБИР
ОД

ГДЕ

Тако ћете добити листу вредности из једног ступца у једној табели. Ово је ПРОЈЕКАТ релацијски рад дефинисан од Цодда.

Ступцевима можете додати СЕЛЕЦТ или користити оператор вилдцард („*") Да бисте добили све колоне у табели:

ОДАБИР *
ОД

ГДЕ

Ово је Цодд'с ОДАБИР релацијски рад. Без ГДЕ клаузулом, добили бисте сваки запис у табели.

Више ступаца одвојено је зарезима („,”):

ОДАБИР стубица1, ступца2, ступца7
ОД

ГДЕ

Тхе ГДЕ клаузула бира одређене записе. Ово је најважнија сврха логичких оператера:

СЕЛЕЦТ сеед_нум, сеед_десц
ОД семенки
ГДЈЕ врста = „бегонија“ И боја = “жута“

Приметићете у овим примерима да не стављате наводнике око имена ступаца, већ наводите око вредности колона. Ако заборавите ставити наводнике око вриједности, ДБМС ће очекивати да ће ријечи бити називи ступаца. Дакле, у горњем упиту, без наводника, добили бисте грешку која вам каже да у табели нема бегоније и жутих ступаца.

Придружени столови

Кључни посао у СКЛ упитима лежи у спајању таблица. Постоји много трикова које можете извести помоћу подупитака, али ако погрешно придружите, ваш упит ће увијек вратити погрешне резултате.

Ваш најбољи водич за придруживање је Дијаграм односа између ентитета и односа. Све што вам је потребно да бисте створили придруживање је више од једне табеле у ОД клаузуле СЕЛЕЦТ и обавезно наведите колоне за повезивање у ГДЕ клаузула Имајте на уму да неке таблице могу користити исте називе ступаца. Да бисте избегли забуну, боље је дати свакој табели придруживање псеудоним тако да можете препознати извор ступаца на које упућујете у наредби СЕЛЕЦТ:

СЕЛЕЦТ а.сеед_нум, а.сеед_десц, б.супплиер_наме
ИЗ семенки а, добављачи б
ГДЈЕ а.специес = „бегонија“ И а.цолор = “жуто“
И б.супплиер_ИД = а.супплиер_ИД

У горњем примеру, добављач_ИД је примарни кључ у табели добављача, а поље са истим називом је страни кључ у табели семенки који се повезује на одговарајући запис у табели добављача.

Иако је технички могуће користити ОР за придруживање, уобичајеније је користити АНД. ИЛИ користите само за критеријуме одабира, а не за креирање придруживања.

Подупити

Можете да користите а ОДАБИР изјава као извор података за главни ОДАБИР а можете се придружити и неколико њих ОДАБИР изјаве заједно са оператерима, као што су МИНУС. Ови примери додатних упита који послужују главну СЕЛЕЦТ изјаву називају се „подупити.“Када креирате подупит, кључна реч ИН може бити врло корисно.

На пример, ако желите да добијете жуту бегонију од добављача у ЕУ, можете да направите листу вредности са ИН као такав:

СЕЛЕЦТ а.сеед_нум, а.сеед_десц, б.супплиер_наме
ИЗ семенки а, добављачи б
ГДЈЕ а.специес = „бегонија“ И а.цолор = “жуто“
И б.супплиер_ИД = а.супплиер_ИД
И б.супплиер_цоунтри ИН („УК“, „Франце“, „Германи“…)

Та листа свих земаља у ЕУ проширила би се на 28 вредности и требало би да унесете у све њих - „…“ у примеру је само ради сажетке. У овом примеру, морали бисте поново да прегледате све своје упите и мењате тај списак вредности кад год се нека држава придружи или напусти ЕУ. Ефикасније је правити табелу земаља ЕУ и позивати се на то. Тада морате додати или обрисати записе у једној табели када се састав ЕУ мења.

У овом би сценарију створили табелу која се зове ЕУ_цоунтриес са пољем цоунтри_ИД као примарним кључем и ступцем имена државе. Тада бисте могли да направите подупит за креирање листе земаља ЕУ:

СЕЛЕЦТ а.сеед_нум, а.сеед_десц, б.супплиер_наме
ИЗ семенки а, добављачи б
ГДЈЕ а.специес = „бегонија“ И а.цолор = “жуто“
И б.супплиер_ИД = а.супплиер_ИД
АНД б.супплиер_цоунтри ИН (СЕЛЕЦТ_име државе из ЕУ_цоунтриес)

Могуће је креирати низ угнијежђених упита, а неке СКЛ функције захтијевају најмање два СЕЛЕЦТ израза. На пример, ако желите да набавите семе које нису чланице ЕУ, можете да користите МИНУС:

СЕЛЕЦТ а.сеед_нум, а.сеед_десц, б.супплиер_наме
ИЗ семенки а, добављачи б
ГДЈЕ а.специес = „бегонија“ И а.цолор = “жуто“
И б.супплиер_ИД = а.супплиер_ИД
МИНУС
СЕЛЕЦТ ц.сеед_нум, ц.сеед_десц, д.супплиер_наме
ИЗ семенки ц, добављача д, ЕУ_држава е
ГДЈЕ д.супплиер_цоунтри_ИД = е.цоунтри_ИД
И б.супплиер_ИД = а.супплиер_ИД

У горњем примеру, други упит ће вратити далеко више записа него први. Међутим, ниједан од резултата тог упита неће се појавити у излазу. Сви резултати у главном упиту који одговарају резултатима другог упита биће уклоњени са излазне листе.

ГРУПА ОД

Можете добити СКЛ да обједини податке за вас током обраде упита. Тхе ГРУПА ОД клаузула омогућава израчунавање статистичких података о групама записа. На пример:

ОДАБЕРИТЕ цвет врста, пребројите (1) примере
ОД семенки
ГРУПА ПО врстама

У овом примеру можете видети функцију, ЦОУНТ. Ово захтева ступац као параметар, али уместо тога можете да му додате токен, 1.  Овај пример такође показује да можете дати псеудониме имена ступаца. Не постоји кома између врста и цвета у првом реду ОДАБИР. ДБМС ће интерпретирати ову другу ријеч као назив ступца који ће се приказати у излазу. У неким СКЛ имплементацијама тај псеудоним треба бити у наводницима, а у другима треба га навести кључном речју КАО:

ОДАБИР врста као „цвет“, рачунати (1) АС „примере“
ОД семенки
ГРУПА ПО врстама

Стављање смисленог имена у колону је посебно важно ако користите функције у упиту.

Горњи упит ће вам дати посебан списак имена врста из табеле семенки и дати број свих записа у табели који имају сваку вредност.

НАРУЧИТЕ ПО

Можете одредити излазни низ резултата с НАРУЧИТЕ ПО клаузула То ће подразумевано приказивати вредности у узлазном редоследу, али можете да одредите и приказивање записа у силазном редоследу.

ОДАБИР ДИСТИНЦТ врста
ОД семенки
НАРУЏБА ПО врстама ДЕСЦ

Ако имате неколико ступаца у свом излазу, можете именовати било који од њих као поље за наручивање. У већини СКЛ имплементација не морате уписивати назив ступца у клаузулу ОРДЕР БИ, већ само број позиције ступца, као што је НАРУЧИТЕ ДО 2 када желите да други ступац на излазу диктира редослед приказа.

У овом примеру видите ДИСТИНЦТ опција на а ОДАБИР, који има исти ефекат као а ГРУПА ОД. Међутим, ако додате функције обједињавања у СЕЛЕЦТ, мораћете да користите ГРУПА ОД уместо ДИСТИНЦТ.

СКЛ функције

Већ сте видели функцију ЦОУНТ. Много је других функција доступних у свим имплементацијама СКЛ-а. То нису, строго говорећи, СКЛ, већ додатни услужни програми које је створио СКЛ верзија. Статистичке функције, као што су просек, збир, мак и мин, заједничке су свим СКЛ аромама.

Механизми за контролу протока, који као АКОпесак ДОК петље не постоје у СКЛ-у. Међутим, условни избор може се провести кроз различите функције.

Цомпаритецх СКЛ Цхеат Схеет

Дуга је листа опција које можете ставити на СЕЛЕЦТ изјаву. Овај кратки водич обухватио је само основну структуру изјаве СЕЛЕЦТ, која је главни алат СКЛ-а Језик упита података. Свеобухватну листу можете видети у Цомпаритецх МиСКЛ Цхеат Схеет (ПДФ). Тај лист такође садржи стандардне команде које се користе за СКЛ-ов језик описа података, језик контроле података и језик манипулације подацима..

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *

31 − 26 =

Adblock
detector