Увод у основе СКЛ-а

Структурирани језик упита (СКЛ) један је од основних градивних елемената модерне архитектуре база података. СКЛ дефинише методе коришћене за креирање и манипулисање релационим базама података на свим главним платформама. На први поглед језик може деловати застрашујуће и сложено, али није све тако тешко.

О СКЛ-у

Исправан изговор СКЛ-а спорно је питање унутар заједнице база података. У свом СКЛ стандарду, Амерички национални институт за стандарде прогласио је да је званични изговор „ред чекања“ ел. „Међутим, многи професионалци у бази података приступили су наставку сленг изговора.“ Као и код изговора од ГИФ, нема правог одговора.

СКЛ долази у многим укусима. Орацле базе података користе свој заштићени ПЛ / СКЛ. Мицрософт СКЛ Сервер користи Трансацт-СКЛ. Све варијације су засноване на индустријском стандарду АНСИ СКЛ.

Овај увод користи СКЛ наредбе усклађене са АНСИ које раде на било ком савременом систему релационих база података.

ДДЛ и ДМЛ

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

instagram viewer

СКЛ подржава трећу врсту синтаксе која се назива Језик за контролу података. ДЦЛ управља безбедносним приступом објектима у бази података. На пример, а ДЦЛ скрипта додељује или опозива одређеним корисничким налозима право читања или писања у табеле унутар једног или више дефинисаних подручја базе података. У већини управљаних вишекорисничких окружења администратори базе података обично извршавају ДЦЛ скрипте.

Наредбе језика за дефинисање података

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

Креирај

Тхе Креирај наредба успоставља базе података, табеле или упите на вашој платформи. На пример, наредба:

СТВАРАЊЕ БАЗЕ БАЗА запослених;

креира празну базу података са именом запослени на вашем ДБМС-у. Након креирања базе података, следећи корак је стварање табела које садрже податке. Друга варијанта Креирај команда остварује ову сврху. Команда:

ЦРЕАТЕ ТАБЛЕ персонал_инфо (фирст_наме цхар (20) нот нулл, ласт_наме цхар (20) нот нулл, воркер_ид инт нот нулл);

успоставља табелу са насловом персонал_инфо у тренутној бази података. У примеру, табела садржи три атрибута: име, презиме, и Број запосленог заједно са неким додатним информацијама.

Користите

Тхе употреба наредба наводи активну базу података. На пример, ако тренутно радите у бази података о продаји и желите да издате неке наредбе које ће утицати на базу података запослених, предговорите им следећу СКЛ наредбу:

Запослени у УСЕ;

Још једном проверите базу података у којој радите пре издавања СКЛ наредби које манипулишу подацима.

Алтер

Након што креирате табелу у бази података, измените њену дефиницију помоћу алтер наредба, која мења структуру табеле без брисања и поновног стварања. Погледајте следећу команду:

АЛТЕР ТАБЕЛА персонал_инфо ДОДАТИ новац од зараде нулл;

Овај пример додаје нови атрибут табели персонал_инфо - плата запосленог. Тхе новац аргумент прецизира да зараде запосленог складиште у формату долара и центи. Коначно, нула Кључна реч говори бази података да је у реду да ово поље не садржи вредност за било ког запосленог.

Кап

Последња команда језика за дефинисање података, кап, уклања читаве објекте базе података из нашег ДБМС-а. На пример, да бисте трајно уклонили табелу персонал_инфо коју смо креирали, користите следећу наредбу:

ТАПЕЛА ЗА СПУСТАЊЕ персонал_инфо;

Слично томе, наредба у наставку користила би се за уклањање целокупне базе података запослених:

ДРОП БАЗА БАЗА запослених;

Опрезно користите ову наредбу. Тхе кап наредба уклања читаве структуре података из ваше базе података. Ако желите уклонити појединачне записе, користите избрисати команда језика за манипулисање подацима.

Наредбе језика за манипулисање подацима

Језик за манипулацију подацима користи се за преузимање, уметање и модификовање података из базе података. Ове ДМЛ наредбе нуде типични оквир за рутинску интеракцију са базом података.

Уметни

Тхе уметак наредба додаје записе у постојећу табелу. Враћајући се на пример персонал_инфо из претходног одељка, замислите да наш одјел за људске ресурсе треба да дода новог запосленог у своју базу података. Користите наредбу сличну овој:

ИНСЕРТ ИНТО персонал_инфо
вредности ('барт', 'симпсон', 12345, 45000 УСД);

Имајте на уму да су за запис наведене четири вредности. Они одговарају атрибутима табеле оним редоследом како су дефинисани: име, презиме, Број запосленог и плата.

Изаберите

Тхе изаберите наредба је најчешће коришћена наредба у СКЛ-у. Преузима одређене информације из оперативне базе података. Погледајте неколико примера, поново користећи табелу персонал_инфо из базе података запослених.

Наредба приказана доле преузима све информације садржане у табели персонал_инфо. Звездица је замјенски знак у СКЛ-у.

СЕЛЕЦТ *
ФРОМ персонал_инфо;

Алтернативно, ограничавањем атрибута који се преузимају из базе података наведите Шта буде изабран. На пример, одељење за људске ресурсе може захтевати листу презимена свих запослених у компанији. Следећа СКЛ наредба ће дохватити само те информације:

СЕЛЕЦТ презиме
ФРОМ персонал_инфо;

Тхе где клаузула ограничава записе који се преузимају на оне који испуњавају одређене критеријуме. Генерални директор би могао бити заинтересован за преглед кадровских евиденција свих високо плаћених запослених. Следећа команда преузима све податке садржане у персонал_инфо за записе који имају вредност плате веће од 50.000 УСД:

СЕЛЕЦТ *
ФРОМ персонал_инфо
ГДЕ плата> 50000 УСД;

ажурирање

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

АЖУРИРАТИ персонал_инфо
СЕТ плата = плата * 1,03;

Када нови запослени Барт Симпсон покаже перформансе изнад и изван дужности, управа жели да препозна његова звездана достигнућа са повишицом од 5.000 америчких долара. Клаузула ВХЕРЕ издваја Барта за ову повишицу:

АЖУРИРАТИ персонал_инфо
СЕТ плата = плата + 5000
ВХЕРЕ запослени_ид = 12345;

Избриши

На крају, погледајмо избрисати команда. Открићете да је синтакса ове наредбе слична синтакси осталих ДМЛ наредби. Команда ДЕЛЕТЕ са где клаузула, уклоните запис из табеле:

ИЗБРИШИ ИЗ персонал_инфо
ВХЕРЕ запослени_ид = 12345;

ДМЛ такође подржава агрегатна поља. У а изаберите изјава, математички оператори воле сума и рачунати резимирати податке у оквиру упита. На пример, упит:

одаберите цоунт (*) из персонал_инфо;

броји број записа у табели.

Датабасе Јоинс

А. придружити изјава комбинује податке у неколико табела за ефикасну обраду великих количина података. У овим исказима је стварна снага базе података.

Да би се истражила употреба основног придружити операцију комбиновања података из две табеле, наставите са примером користећи табелу персонал_инфо и додајте додатну табелу у микс. Претпоставимо да имате табелу која се зове дисциплински поступак који је створен са следећом изјавом:

ЦРЕАТЕ ТАБЛЕ дисциплинари_ацтион (ацтион_ид инт нот нулл, воркер_ид инт нот нулл, коментари цхар (500));

Ова табела садржи резултате дисциплинских мера за запослене у компанији. Не садржи никакве податке о запосленом осим броја запосленог.

Претпоставимо да сте добили задатак да направите извештај у којем се наводе дисциплинске мере предузете против свих запослених са платом већом од 40.000 америчких долара. У овом случају употреба ЈОИН операције је једноставна. Дођите до ових информација помоћу следеће наредбе:

СЕЛЕЦТ персонал_инфо.фирст_наме, персонал_инфо.ласт_наме, дисциплинари_ацтион.цомментс
ОД персонал_инфо ИННЕР ПРИДРУЖИТЕ се дисциплинској_акцији ОН персонал_инфо.емплоиее_ид = дисциплинари_ацтион.емплоиее_ид
ВХЕРЕ персонал_инфо.салари> 40000;

Врсте придруживања

Типови придруживања у СКЛ-у

Спојеви долазе у неколико укуса. У СКЛ изразу, прва табела (обично се зове Табела А. или Леви сто) придружује се другој табели (обично се назива Табела Б. или Десни сто) на позиционо свестан начин. Стога, ако промените редослед табела у наредби за придруживање, резултати операције ће се разликовати. Главни типови спајања укључују:

  • Иннер Јоин: Подудара се само са записима на којима је на услов подудара се са истим записима у обе табеле.
  • Спољно придруживање: Подудара се само са записима из обе табеле који искључити резултати идентификовани у на стање.
  • Ригхт Јоин: Подудара се са свим записима из табеле Б плус записима из табеле А који се подударају са на стање.
  • Лефт Јоин: Подудара се са свим записима из табеле А плус записима из табеле Б који се подударају са на стање.
  • Цросс Јоин: Поклапа се са свим записима као да су табеле идентичне. Овај процес генерише нешто што се зове декартов производ. Често су унакрсна спајања непожељна, јер се подударају са сваким редом Табеле А, појединачно, са сваким редом Табеле Б. Према томе, ако је Табела А понудила пет записа, а Табела Б 9 записа, упит за унакрсно спајање нуди 45 резултујућих редова.
instagram story viewer