Gudri veidi, kā izmantot SQL salikšanas virkni

Gudri veidi, kā izmantot SQL salikšanas virkni

Strukturēta vaicājumu valoda (SQL) ir ārkārtīgi spēcīgs rīks, kas ir pilns ar funkcijām. Kad esat apguvis visvairāk svarīgas SQL komandas , jūs varat sākt kļūt nedaudz radošāks, izmantojot savu SQL. Šodien es jums parādīšu visu, kas jums jāzina par SQL salikšanas virknēm.





Ir daudz dažādu SQL dialektu. Visiem šiem piemēriem es izmantoju PostgreSQL variants.





kā uzlabot grafiku klēpjdatorā

Kas ir sasaistīšana?

Saskaņošana nozīmē apvienot divas lietas. Iespējams, esat to izmantojis programmēšanas valodā, lai savienotu divas virknes. Varbūt jums ir vārda un uzvārda mainīgie, kurus apvienojāt kā pilna vārda mainīgo.





Salikšana ir ļoti noderīgs veids, kā apvienot divas virknes vienā. PHP izmanto punktu, lai savienotu virknes kopā, turpretī JavaScript un jQuery izmanto plus zīmi.

Saskaņošana SQL darbojas tieši tāpat. Jūs izmantojat īpašu operatoru, lai apvienotu divas lietas vienā. Šeit ir piemērs Pseidokods :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

Programmēšanas valodās apvienošana atvieglo koda lasīšanu. Ja jūsu kodam vienmēr ir jāpiekļūst divām virknēm, to apvienošana vienā atvieglo atcerēšanos un samazina koda garumu.

Lai gan SQL mainīgie ir retāk sastopami (bet joprojām tiek izmantoti), apvienošana joprojām ir nepieciešama, lai atgrieztu kombinētos rezultātus vai manipulētu ar datiem.





Kā savienot

Saskaņošana ir ļoti viegli SQL. Lai gan SQL ir izplatīta valoda, atsevišķi datubāzes dzinēji funkcijas ievieš dažādos veidos. Lai gan visi šie piemēri ir PostgreSQL dialektā, to ir viegli tulkot citos variantos, vienkārši meklējot tīmeklī “Concatenate”. Dažādiem dzinējiem var būt atšķirīga saiknes sintakse, taču princips paliek nemainīgs.

Atgriežoties pie mūsu vārda piemēra, šeit ir pamata izvēlieties vaicājums:





SELECT first_name, last_name, email FROM users_table

Šeit nav nekas sarežģīts, tāpēc pievienosim apvienojumu:

SELECT first_name || last_name AS full_name, email FROM users_table

Kā redzat, šī savienošana ir strādājusi perfekti, taču ir viena neliela problēma. Iegūtais pilns nosaukums ir salikts kopā tieši tā, kā abu kolonnu produkts - starp nosaukumiem jābūt atstarpei!

Par laimi, to ir viegli novērst: vienkārši salieciet atstarpi starp abiem:

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

Šie ir pamata piemēri, taču jums vajadzētu redzēt, kā darbojas apvienošana - tas tiešām ir tik vienkārši! Cauruļu operators ( | ) tiek lietots divreiz starp klauzulām. Jūsu SQL dzinējs zina, ka katra daļa pirms un pēc šī simbola ir jāsavieno kopā un jāuzskata par vienu. Tomēr esiet piesardzīgs, ja izmantojat salikto operatoru, bet neko nesaistiet, tiks parādīta kļūda.

Kā minēts iepriekš, šajos piemēros tiek izmantots SQL PostgreSQL variants. Citi varianti var izmantot citu operatoru vai pat īpašu funkciju, kas jums jāizsauc. Tam nav īsti nozīmes jūs savienojat virknes, nodrošinot, ka jūs to darāt tā, kā to paredz jūsu datu bāzes dzinējs.

Iet dziļāk

Tagad, kad jūs zināt pamatus, apskatīsim dažus padziļinātus piemērus, kā arī dažas izplatītas kļūdas.

Lielākā daļa datu bāzes dzinēju veiksmīgi apvienos virkņu un veselu skaitļu kombināciju, varbūt pat datumus. Parasti jums rodas problēmas, mēģinot savienot sarežģītus tipus, piemēram, masīvus:

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

Šis kods nedarbosies. Virknes nav iespējams apvienot ar sarežģītiem objektiem, piemēram, masīviem. Ja jūs domājat par to, kas jums jādara, jūs bieži varat rakstīt vienkāršu kodu, kas darbojas, nevis sarežģītu, traku kodu, kuru neizdodas palaist.

Ja esat rūpīgi pārdomājis, kas jums jādara, un joprojām nevarat panākt, lai SQL darbotos, tad vai esat apsvēris iespēju izmantot programmēšanas valodu? Kā programmatūras izstrādātājs, kurš strādā pie mantotā koda, es zinu, ka ir grūti mēģināt atkļūdot SQL, jo kāds ir iebāzis tik daudz loģikas, ka ir brīnums, ka tas vispār darbojas - ja jūs mēģināt rakstīt loģiku SQL, tad pārslēdzieties uz programmēšanas valoda (ir daudz viegli apgūstamu valodu).

Saskaņošana ļoti labi darbojas kur paziņojumi arī:

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

Šeit notiek dažas lietas. Šajā piemērā DIENA , MĒNESIS , un GADS ir parametri, kas ir nodoti no skripta. Varbūt tos ir ģenerējis kods vai ievadījis lietotājs. Tie ir savienoti kopā un pēc tam tiek pārvērsti datuma tipā (izmantojot PostgreSQL sintaksi ::datums ).

Šādā veidā izmantojot sasaisti, jūs varat sasaistīt atsevišķas datuma daļas, kuras pēc tam var apstrādāt kā “īstu” datumu, nevis virkni. Neaizmirstiet, ka šis pamata piemērs neaizsargā pret SQL ievadīšanu, tāpēc neizmantojiet to nevienā ražošanas kodā, nemainot to.

Vēl viena kļūda, kas jāuzmanās, ir null vērtības (nulles virkne ir tukša vai neeksistējoša virkne). Ņemot vērā šo vaicājumu:

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

Šis vaicājums klusi neizdodas. Tas ir saistīts ar veidu, kā jūsu datu bāzes motorā ir iekodēta savienošana. Jūs ne vienmēr varat saskarties ar šo problēmu, taču tā ir diezgan izplatīta parādība.

Ja uzskatāt, ka vaicājuma atdotie dati var būt nulle, jums jāizmanto a saplūst . Par saplūšanu var domāt aptuveni šādi: “ja tas ir nulle, nomainiet to ar šo citu virkni vai kolonnu”:

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

Tagad jūs zināt, kā SQL izmantot saplūšanu, ko jūs ar to darīsit? Vai jūs izveidot vietni un atdzīvināt to ar SQL? Vai varbūt jums ir nepieciešams statisks vietņu ģenerators, lai vienkāršotu pieeju vietņu veidošanai.

Lai ko jūs darītu, informējiet mūs zemāk esošajos komentāros!

kā pārvietot kanālus uz roku
Kopīgot Kopīgot Čivināt E -pasts 6 dzirdamas alternatīvas: labākās bezmaksas vai lētas audiogrāmatu lietotnes

Ja jums nepatīk maksāt par audiogrāmatām, šeit ir dažas lieliskas lietotnes, kas ļauj tās klausīties bez maksas un likumīgi.

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Programmēšana
  • SQL
Par autoru Džo Koburns(Publicēti 136 raksti)

Džo ir absolvējis datorzinātnes Linkolnas universitātē, Lielbritānijā. Viņš ir profesionāls programmatūras izstrādātājs, un, kad viņš nelido ar droniem un neraksta mūziku, viņu bieži var atrast, fotografējot vai veidojot video.

Vairāk no Joe Coburn

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu