13 најважнијих СКЛ команди које сваки програмер треба да зна

13 најважнијих СКЛ команди које сваки програмер треба да зна

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





Данас ћу вам показати неке од њих основне СКЛ команде морате знати као програмер.





Постоји много назива за податке враћене из табеле базе података. Подаци се обично називају Редови , Рецордс , или Туплес . Ове изразе ћу користити наизменично у овом чланку.





Предговор

Сви данашњи примери биће засновани на четири измишљене табеле. Тхе муштерија табела садржи име и старост купаца:

Тхе висине табела садржи име и висину било које особе:



Тхе особље табела садржи име и старост особља - потпуно исто што и табела купаца:

Завршни сто тзв људи садржи име и старост људи, баш као и табеле купаца и особља:





1. Одаберите

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

Као што му назив говори, селецт је навикао изаберите податке из базе података. Ево најједноставније употребе:





SELECT * FROM table;

Ово има два дела. Први део ( СЕЛЕЦТ * ) одређује које колоне желите да изаберете. Звездица означава да желите да изаберете све колоне у табели. Други део ( ИЗ табеле ) говори вашем механизму базе података одакле желите да преузмете ове податке. Замените 'табле' именом ваше табеле базе података.

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

Можете изричито навести које колоне желите да преузмете, на пример:

SELECT age, name FROM people;

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

Ако желите да изаберете додатни податак, али се не чувају ни у једној од ваших табела, то можете учинити на следећи начин:

SELECT age, '1234' FROM people;

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

2. Где

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

SELECT age, name FROM people WHERE age > 10;

Овај упит је сада ограничен на особе старије од 10 година. Можете комбиновати више услова користећи И оператер:

SELECT age, name FROM people WHERE age > 10 AND age <20;

Тхе И команда ради потпуно исто као и на енглеском језику: примењује други услов на исказ. У овом примеру, враћени подаци били би сви записи стари између 10 и 20 година. Како нема одговарајућих резултата, не враћају се подаци.

како отворити псд датотеке без пхотосхопа

Друга наредба која се може користити заједно са овим је ИЛИ . Ево примера:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Овај упит враћа записе у којима је старост већа од 10 година или је име једнако 'Јое'. Запазите како постоји само један знак једнакости? Већина програмских језика користи двоструко једнако (==) за проверу еквивалентности. Ово није потребно за велику већину машина за базе података (али може по окружењу, па прво двапут проверите).

3. Ред

Тхе ред команда се користи за сортирање враћених резултата. Још један је једноставан за употребу. Једноставно га додајте на крај ваше изјаве:

SELECT name, age FROM people ORDER BY age DESC;

Морате навести колону и редослед, који може бити АСЦ за узлазни или ДЕСЦ за спуштање. Можете наручити по више колона овако:

SELECT name, age FROM people ORDER BY name ASC, age DESC

НАРУЧИ ПО је можда најкориснији у комбинацији са другим командама. Неће сви упити вратити податке на логичан или уређен начин - ова команда вам омогућава да то промените.

4. Придружите се

Тхе придружити команда је навикла да придружити повезане податке ускладиштене у једној или више табела. ти придружити другу табелу у прву табелу и наведите како су подаци повезани. Ево основног примера:

како погледати инстаграм уживо на рачунару
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Овде се дешава неколико ствари. Морате почети са синтаксом 'ЛЕФТ ЈОИН', која одређује да желите да се придружите табели помоћу придруживања типа лефт. Затим наведите табелу којој желите да се придружите (висине). Тхе УСИНГ (име) синтакса наводи да се ступац 'наме' може пронаћи у обје таблице, те да га треба користити као кључ за спајање таблица.

Не брините ако ваше колоне имају различите називе у свакој табели. Можете користити „ОН“ уместо „УСИНГ“:

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

Наредба он изричито наводи на које ступце треба укуцати. Постоји много врста придруживања и требало би дуго времена да се уђу у детаље за сваки од њих, па ево кратког сажетка њихове употребе:

  • (УНУТРАШЊЕ) ПРИДРУЖИТЕ СЕ - Враћа редове са подударањем у обе табеле.
  • ЛИЈЕВО (ВАЊСКО) ПРИДРУЖИВАЊЕ - Враћа све редове из леве табеле, са свим подударањима из десне табеле. Ако нема подударања, леви записи табеле се и даље враћају.
  • ДЕСНО (ВАЊСКО) ПРИДРУЖИТЕ СЕ - Ово је супротно од левог спајања: сви редови из десне табеле се враћају, заједно са свим подударањима у левој табели.
  • ФУЛЛ (ОУТЕР) ЈОИН - Враћа све записе који се подударају у било којој табели.

Синтакса „ИННЕР“ или „ОУТЕР“ није обавезна. То може олакшати разумевање ствари, али не морате то да наводите већину времена.

5. Псеудоними

Сада знате основе, погледајмо алиас команда. Ово се користи за привремено преименовање табеле - више надимак него било шта друго, јер ово ново име постоји само унутар појединачне трансакције коју покрећете. Ево како га користите:

SELECT A.age FROM people A;

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

SELECT people.age FROM people;

Уместо да морате да уносите дугачко име табеле, можете да откуцате једноставно и лако памтљиво слово - али у чему је поента? Па, ако бирате из више од једне табеле, лако ћете се збунити око тога које колоне припадају којој табели. Ако случајно обе ваше табеле имају колоне са истим именом, ваш упит према бази података можда чак неће успети да се изврши без изричитог позивања на име или псеудоним табеле. Ево примера са две табеле:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

И ево истог упита са псеудонимима:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

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

Такође можете преименовати колону са псеудонимом помоћу команде 'АС':

SELECT age AS person_age FROM people;

Када се овај упит покрене, колона ће се сада звати „персон_аге“ уместо „аге“.

6. Синдикат

унија је сјајна команда. Омогућава вам да међусобно додајете редове. За разлику од спојева који додају подударајуће колоне, унија може додавати неповезане редове под условом да имају исти број и назив колона. Ево како га користите:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Синдикат можете замислити као начин комбиновања резултата два упита. Синдикат ће вратити резултате само ако постоји јединствени ред између два упита. Можете користити синтаксу „УНИОН АЛЛ“ за враћање свих података, без обзира на дупликате:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Примећујете како се мења редослед редова? Унион послује на најефикаснији начин, па се враћени подаци могу разликовати по редоследу.

Могући случај употребе за сједињење је међузбир: можете уписати упит укупног збира у упит појединачних збира за одређени сценарио.

7. Уметните

Сада знате све о преузимању података из базе података, али шта је са њиховим уметањем? Овде се налази уметнути долази команда. Ево примера:

INSERT INTO people(name, age) VALUES('Joe', 102);

Морате да наведете назив табеле (људи) и колоне које желите да користите (име и старост). Синтакса „ВАЛУЕС“ се затим користи за обезбеђивање вредности за уметање. Они морају бити у истом редоследу као и претходно наведене колоне.

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

8. Ажурирајте

Након уметања неких података, природно је да морате да промените одређене редове. Ево ажурирање синтакса команде:

UPDATE people SET name = 'Joe', age = 101;

Морате да наведете табелу коју желите да промените, а затим помоћу синтаксе 'СЕТ' одредите колоне и њихове нове вредности. Овај пример је добар, али ће ажурирати сваки појединачни запис - нешто што није увек пожељно!

Да бисте били прецизнији, можете да користите клаузуле 'ВХЕРЕ' као и када радите одабир:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Можете чак да наведете више услова користећи „АНД“ и „ОР“:

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Обратите пажњу на то како се заграде користе за ограничавање услова.

морају имати програме за Виндовс 10

9. Упсерт

Упс је чудна звучна реч, али је невероватно корисна команда. Рецимо да имате ограничење на табели и навели сте да увек желите само записе са јединственим именима - на пример, не желите да складиштите два реда са истим именом. Ако покушате да унесете више вредности 'Јое', ваш механизам базе података би направио грешку и одбио да то учини (сасвим оправдано). УПСЕРТ вам омогућава да ажурирате запис ако већ постоји. Ово је невероватно корисно! Без ове команде, морали бисте написати много логике да бисте прво проверили постоји ли запис, уметните га ако не постоји, у супротном преузмите исправан примарни кључ, а затим ажурирајте.

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

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Обратите пажњу на то да је ово у суштини ажурирање и израз за уметање, који се може сажети као „ажурирање ако уметање није успело“.

10. Избриши

Избриши користи се за потпуно уклањање записа - може бити прилично штетно ако се злоупотреби! Основна синтакса је врло једноставна за употребу:

DELETE FROM people;

Као и већина других команди, и ово ће избрисати све ! Морате да користите где да га ограничите на мало разумнији број редова - идеално један:

DELETE FROM people WHERE name = 'Joe';

Ако развијате систем, често је паметно применити „меко брисање“. Никада заправо не покрећете команду делете, већ креирате избрисану колону, а затим проверавате ту колону у свом избору - то може избећи много потенцијалних непријатности ако можете брзо и једноставно дохватити наводно избрисане записе. Међутим, ово није замена за одговарајуће сигурносне копије.

11. Креирајте табелу

Тхе креирајте табелу команда се користи за креирање табела. То је још један врло једноставан:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

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

12. Алтер Табле

Тхе алтер табле команда се користи за измену структуре табеле. Ово је мало ограничено, јер вам база података неће дозволити да промените табелу ако постојећи подаци изазову сукоб - на пример, промените стринг у цео број. У тим случајевима прво поправите податке, а затим измените табелу. Ево примера:

ALTER TABLE people ADD height integer;

Овај пример додаје колону под називом 'хеигхт' типа интегер у табелу људи. Заиста нема ограничења у томе шта можете да промените.

13. Дроп Табле

Коначна команда је дроп табле . Замислите ово као брисање, али уместо брисања једног записа, он уклања сваки појединачни запис заједно са табелом! Ево како га користите:

DROP TABLE people;

То је прилично драстична команда и нема разлога да је потребно програмирати у ваш систем. То би требало да се ради само ручно у великој већини случајева, а може бити врло деструктивни.

То је све за данас. Надам се да сте научили неке корисне трикове! Могли бисте научити како направите веб страницу , а затим искористите своје новостечене вештине да бисте га учинили динамичним - само се уверите да не правите ове грешке и не остављате га рањивим на СКЛ убризгавање. Ако нисте сигурни да требате научити СКЛ, јесте ли размишљали о генератору статичке веб локације?

Зашто не оставите коментар испод са својим омиљеним СКЛ саветима и триковима?

Заслуге за слику: ХИС_НП/Схуттерстоцк

Објави Објави Твеет Емаил Да ли је вредно надоградње на Виндовс 11?

Виндовс је редизајниран. Али да ли је то довољно да вас убеди да пређете са Виндовс 10 на Виндовс 11?

Прочитајте следеће
Повезане теме
  • Програмирање
  • Програмирање
  • СКЛ
О аутору Јое Цобурн(136 објављених чланака)

Јое је дипломирао рачунарство на Универзитету Линцолн, УК. Он је професионални програмер софтвера и када не лети беспилотним летелицама или не пише музику, често га се може затећи како фотографише или производи видео записе.

Више од Јоеа Цобурна

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили