Publicitate

Limbaj de interogare structurat (SQL) este un instrument remarcabil de puternic și unul care este plin de funcții. Odată ce ai stăpânit cel mai mult comenzi SQL importante 13 Cele mai importante comenzi SQL pe care orice programator ar trebui să le cunoascăFiecare site web mare sau dinamic folosește într-un fel o bază de date și, atunci când este combinat cu Structurad Query Language (SQL), posibilitățile de manipulare a datelor sunt într-adevăr interminabile. Citeste mai mult , puteți începe să obțineți un pic mai creativ cu SQL. Astăzi vă voi arăta tot ce trebuie să știți despre șirurile de concatenare SQL.

Există multe dialecte SQL diferite. Pentru toate aceste exemple, folosesc PostgreSQL variantă.

Ce este concatenarea?

Concatenarea înseamnă a uni două lucruri. Este posibil să îl fi folosit într-un limbaj de programare pentru a uni două șiruri împreună. Poate că aveți un nume de familie și variabile pe care le-ați unit ca o variabilă de nume complet.

Concatenarea este un mod foarte util de a combina două șiruri într-una.

instagram viewer
PHP folosește un stop complet pentru a uni șiruri împreună, întrucât JavaScript și jQuery Un ghid de bază pentru JQuery pentru programatori JavascriptDacă sunteți programator Javascript, acest ghid pentru JQuery vă va ajuta să începeți codarea ca un ninja. Citeste mai mult folosiți un semn plus.

Concatenarea în SQL funcționează exact la fel. Folosiți un operator special pentru a uni două lucruri într-unul singur. Iată un exemplu în Pseudo cod:

prenumele = Joe. last_name = Coburn. nume întreg = prenumele + prenumele

În limbajele de programare, concatenarea face citirea codului mai ușor. Dacă codul dvs. trebuie să acceseze întotdeauna două șiruri, combinarea lor într-una face mai ușor de reținut și reduce lungimea codului.

Deși variabilele în SQL sunt mai puțin obișnuite (dar sunt încă utilizate), concatenarea este încă necesară pentru a returna rezultatele combinate sau pentru a manipula datele.

Cum să concatenăm

Concatenarea este foarte ușor în SQL. Deși SQL este un limbaj comun, motoarele individuale de bază de date implementează caracteristici în moduri diferite. Deși toate aceste exemple sunt în dialectul PostgreSQL, este ușor de tradus în alte variante doar căutând pe web „Concatenate” .“ Diferite motoare pot avea o sintaxă diferită pentru concatenare, dar principiul rămâne același.

Revenind la exemplul numelui nostru, iată un element de bază Selectați interogare:

SELECT prenumele, prenumele, e-mailul de la utilizatori_tabel
sql selecta

Nimic complex aici, deci să adăugăm în concatenat:

SELECT prenumele || prenumele AS nume complet, e-mail FROM utilizatori_tabel
sql concatenare de bază

După cum vedeți, această concatenare a funcționat perfect, dar există o mică problemă. Numele complet rezultat a fost îmbinat exact ca produsul ambelor coloane - ar trebui să existe un spațiu între nume!

Din fericire, este ușor de remediat: pur și simplu puneți un spațiu între cele două:

SELECT prenumele || '' || prenumele AS nume complet, e-mail FROM utilizatori_tabel
mpl spatiu de concatenare

Acestea sunt exemple de bază, dar ar trebui să vezi cum funcționează concatenarea - este într-adevăr atât de ușor! Operatorul de conducte (|) este folosit de două ori între clauze. Motorul dvs. SQL știe că fiecare parte înainte și după acest simbol trebuie să fie unite și tratate ca una. Aveți însă grijă, dacă utilizați operatorul concat, dar nu concatați nimic, veți primi o eroare.

sql eroare

După cum am menționat mai sus, aceste exemple utilizează varianta SQL PostgreSQL. Alte variante pot utiliza un operator diferit sau chiar o funcție specială pe care trebuie să o apelați. Nu contează cu adevărat Cum concatenează șiruri, cu condiția să o faci așa cum se așteaptă motorul bazei de date.

Mergând mai adânc

Acum că cunoașteți elementele de bază, să analizăm câteva exemple în profunzime, împreună cu unele capcane comune.

Majoritatea motoarelor bazei de date vor concura cu succes un amestec de șiruri și numere întregi, poate chiar și date. De obicei, veți avea probleme atunci când încercați să concatenați tipuri complexe, cum ar fi tablele:

SELECT prenumele || '' || ultimul nume || ARRAY [123, 456] AS nume complet, e-mail FROM users_table

Acest cod nu va funcționa. Nu este posibil să combinați șiruri cu obiecte complexe, cum ar fi tablele. Dacă vă gândiți la ce trebuie să faceți, puteți scrie adesea cod simplu care funcționează, mai degrabă decât cod complex, nebun, care nu reușește să ruleze.

Dacă v-ați gândit cu atenție la ceea ce trebuie să faceți și încă nu puteți obține SQL-ul să funcționeze, atunci v-ați gândit să folosiți un limbaj de programare? În calitate de dezvoltator de software care lucrează la codul moștenitor, știu durerea de a încerca să depane SQL că cineva a înghesuit atâta logică este o minune să funcționeze deloc - dacă încercați să scrieți logică în SQL, atunci treceți la un limbaj de programare (există o mulțime de de limbi ușoare de învățat 6 limbi de programare cel mai ușor de învățat pentru începătoriÎnvățarea la program înseamnă a găsi o limbă potrivită la fel de mult ca și despre procesul de edificare. Iată primele șase limbi de programare cele mai ușoare pentru începători. Citeste mai mult ).

Concatenarea funcționează foarte bine pentru Unde declarații:

SELECT prenumele, prenumele, e-mail de la utilizatori_tabel WHERE data_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'ANUL'):: data

Se întâmplă câteva lucruri aici. În acest exemplu, ZI, LUNĂ, și AN sunt parametri trecuți dintr-un script. Poate acestea au fost generate de cod, sau introduse de un utilizator. Acestea sunt concatenate împreună, apoi aruncate la un tip de dată (folosind distribuția PostgreSQL pentru sintaxa datei) ::Data).

Utilizarea concatenării vă permite să asociați părțile individuale ale unei date, care pot fi apoi procesate ca o dată „reală”, spre deosebire de un șir. Nu uitați că acest exemplu de bază nu vă protejează Injecție SQL Ce este o injecție SQL? [FaceUseOf Explică]Lumea securității pe internet este plină de porturi deschise, spate în aer liber, găuri de securitate, troieni, viermi, vulnerabilități pentru firewall și o mulțime de alte probleme care ne țin pe toți în picioare în fiecare zi. Pentru utilizatorii privați, ... Citeste mai mult deci nu-l folosiți în niciun cod de producție fără să modificați.

O altă capcană de care trebuie să aveți grijă este nul valori (un șir nul este un șir gol sau inexistent). Având în vedere această întrebare:

SELECT prenumele || '' || NULL AS nume complet, e-mail FROM utilizatori_tabel
sql concatenare nulă

Această interogare eșuează în tăcere. Acest lucru se datorează modului în care concatenarea este codată intern pe motorul bazei de date. Nu puteți întâmpina întotdeauna această problemă, dar este o întâmplare destul de comună.

Dacă credeți că datele pe care le returnează interogarea pot fi nule, atunci va trebui să utilizați o Coalesce. Coalesce poate fi gândit aproximativ ca „dacă acest lucru este nul, înlocuiți-l cu acest alt șir sau coloană”:

SELECT prenumele || '' || COALESCE (NULL, „ERROR NULL DATA”) CA nume complet, e-mail de la utilizatori_tabel
sql concatenare coalesce

Acum știi cum să folosești concatenarea în SQL, ce vei face cu ea? Veți creează un site web Cum să creezi un site web: pentru începătoriAstăzi vă voi ghida în procesul de creare de la zero a unui site complet. Nu vă faceți griji dacă sună dificil. Te voi ghida prin ea la fiecare pas. Citeste mai mult și să-l amori cu SQL? Sau poate ai nevoie de generator de site static 7 motive pentru a vă deconecta CMS-ul și luați în considerare un generator de site staticTimp de mulți ani, publicarea unui site web a fost dificilă pentru mulți utilizatori. CMS-urile ca WordPress au schimbat asta, dar pot fi în continuare confuze. O altă alternativă este un generator de situri statice. Citeste mai mult pentru o abordare mai simplă a construirii de site-uri web.

Orice ai face, anunță-ne în comentariile de mai jos!

Joe este absolvent în informatică de la Universitatea din Lincoln, Marea Britanie. Este un dezvoltator de software profesionist, iar atunci când nu zboară drone sau scrie muzică, poate fi găsit adesea făcând fotografii sau producând videoclipuri.