Moduri inteligente de a utiliza un șir de concatenare SQL

Moduri inteligente de a utiliza un șir de concatenare SQL

Limbaj de interogare structurat (SQL) este un instrument remarcabil de puternic și unul plin de caracteristici. Odată ce ai stăpânit cel mai mult comenzi SQL importante , puteți începe să obțineți ceva 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ă.





cum să vizionați videoclipuri cu restricții de vârstă pe YouTube

Ce este concatenarea?

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





Concatenarea este un mod foarte util de a combina două șiruri într-una. PHP folosește un punct pentru a uni șiruri, întrucât JavaScript și jQuery folosesc un semn plus.

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



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

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

În timp ce variabilele din SQL sunt mai puțin frecvente (dar sunt încă utilizate), concatenarea este încă necesară pentru a returna rezultate combinate sau pentru a manipula date.





Cum se concatenează

Concatenarea este foarte ușor în SQL. În timp ce SQL este un limbaj comun, motoarele de baze de date individuale implementează caracteristici în moduri diferite. În timp ce toate aceste exemple se află în dialectul PostgreSQL, este ușor de tradus în alte variante prin simpla căutare pe web pentru „Concatenare”. Motoare diferite pot avea o sintaxă diferită pentru concatenare, dar principiul rămâne același.

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





SELECT first_name, last_name, email FROM users_table

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

SELECT first_name || last_name AS full_name, email FROM users_table

După cum puteți vedea, 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 concatați un spațiu între cele două:

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

Acestea sunt exemple de bază, dar ar trebui să vedeți cum funcționează concatenarea - chiar este 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 ar trebui să fie unite și tratate ca una singură. Aveți grijă, totuși, dacă utilizați operatorul concat, dar nu concatenați nimic, veți primi o eroare.

După cum sa menționat mai sus, aceste exemple utilizează varianta SQL PostgreSQL. Alte variante pot folosi un operator diferit sau chiar o funcție specială pe care trebuie să o apelați. Nu prea contează Cum concatenați șiruri, cu condiția să faceți acest lucru așa cum se așteaptă motorul de bază de date.

Mergând mai adânc

Acum, că știți elementele de bază, să ne uităm la câteva exemple detaliate, împreună cu câteva capcane comune.

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

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

Acest cod nu va funcționa. Nu este posibil să combinați șiruri cu obiecte complexe, cum ar fi tablouri. 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 ce trebuie să faceți și totuși nu puteți face ca SQL 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 vechi, știu durerea de a încerca să depanați SQL că cineva a înghesuit atât de multă logică, încât este o minune că rulează deloc - dacă încercați să scrieți logică în SQL, treceți la un limbaj de programare (există o mulțime de limbaje ușor de învățat).

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

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

Aici se întâmplă câteva lucruri. În acest exemplu, ZI , LUNĂ , și AN sunt parametri care au fost trimiși dintr-un script. Poate că acestea au fost generate de cod sau introduse de un utilizator. Acestea sunt concatenate împreună, și apoi aruncate la un tip de dată (folosind sintaxa de distribuire PostgreSQL până la dată ::Data ).

Utilizarea concatenării în acest mod vă permite să legați împreună 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 protejează împotriva injecției SQL, deci nu folosiți-l în niciun cod de producție fără a modifica.

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

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

Această interogare nu reușește în tăcere. Acest lucru se datorează modului în care concatenarea este codată intern pe motorul dvs. de baze de date. Este posibil să nu întâmpinați întotdeauna această problemă, dar este o întâmplare destul de obișnuită.

Dacă credeți că datele furnizate de interogarea dvs. pot fi nule, atunci va trebui să utilizați un se unesc . Coalesce poate fi considerat aproximativ ca „dacă acest lucru este nul, înlocuiți-l cu acest alt șir sau coloană”:

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

Acum știi cum să folosești concatenarea în SQL, ce vei face cu ea? Veți creați un site web și să-l animați cu SQL? Sau poate aveți nevoie de un generator de site static pentru o abordare mai simplă a construirii site-urilor web.

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

cum să porniți camera pe Mac
Acțiune Acțiune Tweet E-mail 6 alternative sonore: cele mai bune aplicații gratuite sau ieftine pentru cărți audio

Dacă nu vă place să plătiți pentru cărți audio, iată câteva aplicații grozave care vă permit să le ascultați gratuit și legal.

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • Programare
  • SQL
Despre autor Joe Coburn(136 articole publicate)

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

Mai multe de la Joe Coburn

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona