СКЛ основе

Сазнајте више о ДДЛ, ДМЛ и ЈОИН-има

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

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

О СКЛ-у

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

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

ДДЛ и ДМЛ

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

Команде језика за дефинисање података

Језик дефинисања података се користи за креирање и уништавање база података и објеката базе података. Ове наредбе примарно користе администратори базе података током фазе подешавања и уклањања пројекта базе података. Ево погледа на структуру и коришћење четири основне ДДЛ наредбе:

ЦРЕАТЕ. Инсталирање система управљања базом података на рачунару омогућава вам да креирате и управљате многим независним базама података. На пример, можда ћете желети да одржите базу података о корисничким контактима за вашу продајну службу и базу података о особљу за вашу ХР одјелу. Команда ЦРЕАТЕ се користи за успостављање сваке од ових база података на вашој платформи. На пример, команда:

ЦРЕАТЕ ДАТАБАСЕ запослени

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

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

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

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

Користите запослене

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

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

АЛТЕР ТАБЛЕ персонал_инфо АДД платите новац нулл

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

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

ДРОП ТАБЛЕ персонал_инфо

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

Запослени у ДРОП ДАТАБАСЕ-у

Користите ову команду пажљиво. ДРОП наредба уклања целокупне структуре података из ваше базе података. Ако желите уклонити појединачне записе, користите ДЕЛЕТЕ команду Језик за управљање подацима.

Команде језика за управљање подацима

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

ИНСЕРТ. Команда ИНСЕРТ у СКЛ-у се користи за додавање записа у постојећу табелу. Враћајући се на примјер персонал_инфо из претходног одјељка, замислите да наш одјел за људске ресурсе треба додати новог запосленог у своју базу података. Можете користити команду сличну овом:

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

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

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

Команда приказана испод преузима све информације садржане у табели персонал_инфо. Имајте на уму да се звездица користи као џокер у СКЛ-у. Ово буквално значи "Изабери све из табеле персонал_инфо".

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

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

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

Клаузула ВХЕРЕ се може користити за ограничавање записа који се враћају на оне који испуњавају одређене критеријуме. Директор би могао бити заинтересован за преглед кадровске евиденције свих високо плаћених запослених. Следећа наредба преузима све податке садржане у персонал_инфо-у за записе који имају вредност плата већу од 50.000 долара:

СЕЛЕЦТ * ФРОМ персонал_инфо ВХЕРЕ салари> $ 50000

АЖУРИРАЊЕ. УПДАТЕ наредба се може користити за модификовање информација садржаних у табели, било у већем или појединачном облику. Претпоставимо да компанија даје свим запосленима 3% трошкова живота повећање њихове зараде годишње. Сљедећа СКЛ наредба би се могла искористити за брзо примјену овога на све запослене који се налазе у бази података:

УПДАТЕ персонал_инфо СЕТ салдо = плата * 1.03

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

УПДАТЕ персонал_инфо СЕТ плата = плата + 5000 УСД ВХЕРЕ емплоиее_ид = 12345

ДЕЛЕТЕ. На крају, погледајте команду ДЕЛЕТЕ. Наћи ћете да је синтакса ове команде слична оној у другим ДМЛ командама. Нажалост, наш најновији извјештај о корпоративној зараде није задовољио очекивања, а сиромашни Барт је отпуштен. Команда ДЕЛЕТЕ са ВХЕРЕ клаузулом се може користити да уклони свој запис из табеле персонал_инфо:

ДЕЛЕТЕ ФРОМ персонал_инфо ВХЕРЕ емплоиее_ид = 12345

ЈОИНс

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

Да бисте истражили употребу основне операције ЈОИН за комбиновање података из две табеле, наставите са примјером кориштењем табеле ПЕРСОНАЛ_ИНФО и додајте додатну таблицу у микс. Претпоставимо да имате табелу под називом ДИСЦИПЛИНАРИ_АЦТИОН која је креирана са следећом изјавом:

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

Ова табела садржи резултате дисциплинских мера за запослене у компанији. Приметили сте да не садржи никакве информације о запосленику, осим броја запослених. Лако је замислити многе сценарије у којима можете комбиновати информације из ДИСЦИПЛИНАРИ_АЦТИОН и ПЕРСОНАЛ_ИНФО таблица.

Претпоставите да сте имали задатак да креирате извештај који наводи дисциплинске мере против свих запослених са плати већом од 40.000 долара. Коришћење операције ЈОИН, у овом случају, је једноставно. Ову информацију можемо преузети помоћу следеће команде:

СЕЛЕЦТ персонал_инфо.фирст_наме, персонал_инфо.ласт_наме, дисциплинари_ацтион.цомментс ФРОМ персонал_инфо, дисциплинари_ацтион ВХЕРЕ персонал_инфо.емплоиее_ид = дисциплинари_ацтион.емплоиее_ид АНД персонал_инфо.салари> 40000

Код одређује две табеле које желимо да се придруже у клаузули ФРОМ, а затим укључују изјаву у ВХЕРЕ клаузули да ограничите резултате на записе који су имали одговарајуће ИД-ове запослених и испунили наше критеријуме плата већу од 40.000 долара.