Паметни начини коришћења СКЛ стринга за повезивање

Паметни начини коришћења СКЛ стринга за повезивање

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





Постоји много различитих СКЛ дијалеката. За све ове примере користим ПостгреСКЛ варијанта.





како уклонити гоогле диск са рачунара

Шта је спајање?

Конкатенација значи спојити две ствари заједно. Можда сте га користили у програмском језику за спајање два низа. Можда имате променљиве имена и презимена које сте спојили као променљиву за пуно име.





Конкатенација је веома користан начин комбиновања два низа у један. ПХП користи тачку за спајање низова, док ЈаваСцрипт и јКуери користе знак плус.

Спајање у СКЛ -у ради потпуно исто. За спајање две ствари у једну користите посебан оператер. Ево примера у Псеудокод :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

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

Иако су променљиве у СКЛ -у мање уобичајене (али се и даље користе), повезивање је и даље потребно за враћање комбинованих резултата или за манипулацију подацима.





Како спојити

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

Враћајући се на наш пример имена, ево основног изаберите упит:





SELECT first_name, last_name, email FROM users_table

Овде нема ништа компликовано, па додајмо уједињење:

SELECT first_name || last_name AS full_name, email FROM users_table

Као што видите, ово спајање је савршено функционисало, али постоји један мали проблем. Резултујуће пуно име спојено је тачно као производ обе колоне - требало би да постоји размак између имена!

На срећу, лако је поправити: једноставно затворите размак између њих двоје:

SELECT first_name || ' ' || last_name AS full_name, email FROM users_table

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

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

Иде дубље

Сада када знате основе, погледајмо неке дубље примере, заједно са неким уобичајеним замкама.

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

SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table

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

Ако сте добро размислили шта треба да урадите, а још увек не можете да покренете СКЛ, да ли сте размислили о коришћењу програмског језика? Као програмер софтвера који ради на наслеђеном коду, знам да је бол покушавајући да отклони грешке у СКЛ -у да је неко угурао толико логике у чудо што уопште ради - ако покушавате да пишете логику у СКЛ -у, пређите на програмски језик (постоји много језика који се лако уче).

Спајање ради веома добро за где изјаве такође:

SELECT first_name, last_name, email FROM users_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date

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

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

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

SELECT first_name || ' ' || NULL AS full_name, email FROM users_table

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

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

SELECT first_name || ' ' || COALESCE(NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table

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

Шта год да радите, јавите нам у коментарима испод!

Ви -Фи лаптоп не ради Виндовс 10
Објави Објави Твеет Емаил 6 звучних алтернатива: најбоље бесплатне или јефтине апликације за аудио књиге

Ако не волите да плаћате аудио књиге, ево неколико сјајних апликација које вам омогућавају да их слушате бесплатно и легално.

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

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

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

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

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

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