Pametni načini uporabe niza združevanja SQL

Pametni načini uporabe niza združevanja SQL

Strukturirani povpraševalni jezik za delo s podatkovnimi bazami (SQL) je izjemno zmogljivo orodje, ki je polno funkcij. Ko enkrat obvladaš največ pomembni ukazi SQL , lahko s svojim SQL začnete postajati nekoliko bolj ustvarjalni. Danes vam bom pokazal vse, kar morate vedeti o nizih združevanja SQL.





Obstaja veliko različnih narečij SQL. Za vse te primere uporabljam PostgreSQL varianta.





kateri kodirni jezik uporablja enota

Kaj je združevanje?

Združevanje pomeni združiti dve stvari skupaj. Morda ste ga uporabili v programskem jeziku za združevanje dveh nizov. Morda imate spremenljivke imena in priimka, ki ste jih združili kot spremenljivko polnega imena.





Združevanje je zelo uporaben način združevanja dveh nizov v eno. PHP uporablja točko za združevanje nizov, medtem ko JavaScript in jQuery uporabljata znak plus.

Združevanje v SQL deluje popolnoma enako. Za združevanje dveh stvari v eno uporabite posebnega operaterja. Tukaj je primer v Psevdokoda :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

V programskih jezikih združevanje olajša branje kode. Če mora vaša koda vedno dostopati do dveh nizov, si njihovo združevanje v eno olajša zapomnitev in skrajša dolžino kode.

Čeprav so spremenljivke v SQL manj pogoste (vendar se še vedno uporabljajo), je za vrnitev kombiniranih rezultatov ali za manipulacijo podatkov še vedno potrebna združitev.





Kako združiti

Združevanje je zelo enostavno v SQL. Čeprav je SQL skupni jezik, posamezni motorji baz podatkov izvajajo funkcije na različne načine. Čeprav so vsi ti primeri v narečju PostgreSQL, jih je preprosto prevesti v druge različice, tako da preprosto po spletu poiščete »Poveži«. Različni motorji imajo lahko drugačno skladnjo za združevanje, vendar načelo ostaja enako.

Če se vrnemo k našemu primeru imena, tukaj je osnovno izberite poizvedba:





SELECT first_name, last_name, email FROM users_table

Tukaj ni nič zapletenega, zato dodajmo združevanje:

SELECT first_name || last_name AS full_name, email FROM users_table

Kot lahko vidite, je to združevanje delovalo odlično, vendar obstaja ena majhna težava. Nastalo polno ime je združeno točno kot produkt obeh stolpcev - med imeni mora biti presledek!

Na srečo je to enostavno popraviti: preprosto stisnite presledek med tema dvema:

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

To so osnovni primeri, vendar bi morali videti, kako deluje združevanje - res je tako enostavno! Operater cevi ( | ) se med stavki uporablja dvakrat. Vaš motor SQL ve, da je treba vsak del pred in po tem simbolu združiti in obravnavati kot eno. Bodite previdni, če uporabljate operater concat, vendar ničesar ne povežete, boste dobili napako.

Kot je navedeno zgoraj, ti primeri uporabljajo različico PostgreSQL SQL. Druge različice lahko uporabljajo drugega operaterja ali celo posebno funkcijo, ki jo morate poklicati. Res ni pomembno kako povežete nize, če to storite tako, kot pričakuje vaš motor baze podatkov.

Globlje

Zdaj, ko poznate osnove, poglejmo nekaj poglobljenih primerov skupaj z nekaterimi pogostimi pasti.

Večina motorjev baz podatkov bo uspešno združila mešanico nizov in celih števil, morda celo datume. Običajno boste naleteli na težave, ko boste poskušali združiti kompleksne vrste, kot so nizi:

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

Ta koda ne bo delovala. Ni mogoče kombinirati nizov s kompleksnimi predmeti, kot so matrike. Če pomislite, kaj morate storiti, lahko pogosto napišete preprosto kodo, ki deluje, namesto zapletene, nore kode, ki se ne zažene.

Če ste dobro premislili, kaj morate storiti, in še vedno ne morete aktivirati SQL, ste pomislili na uporabo programskega jezika? Kot razvijalec programske opreme, ki dela na podedovani kodi, poznam bolečino, ko poskušam odpraviti napake SQL, da je nekdo natrpal toliko logike, da je čudno, da sploh deluje - če poskušate zapisati logiko v SQL, potem preklopite na programski jezik (obstaja veliko jezikov, ki jih je enostavno naučiti).

Združevanje deluje zelo dobro za kje tudi izjave:

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

Tu se dogaja nekaj stvari. V tem primeru DAN , MESEC , in LETO so parametri, ki so bili posredovani iz skripta. Morda jih je ustvarila koda ali pa jih je vnesel uporabnik. Ti so združeni skupaj in nato oddani v vrsto datuma (z uporabo sintakse oddajanja datuma PostgreSQL :: datum ).

Na ta način povezovanje omogoča povezovanje posameznih delov datuma, ki se nato lahko obdela kot 'pravi' datum, v nasprotju z nizom. Ne pozabite, da ta osnovni primer ne ščiti pred vbrizgavanjem SQL, zato ga ne uporabljajte v nobeni produkcijski kodi brez spreminjanja.

Še ena napaka, na katero morate biti pozorni, je nič vrednosti (ničelni niz je prazen ali neobstoječ niz). Glede na to poizvedbo:

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

Ta poizvedba tiho ne uspe. To je posledica načina, kako je združevanje interno kodirano v vašem motorju baz podatkov. Morda se ne boste vedno srečali s to težavo, vendar je to precej pogost pojav.

Če menite, da so podatki, ki jih vrne vaša poizvedba, nični, morate uporabiti a združiti . Coalesce lahko približno pomislimo kot 'če je to ničelno, ga zamenjajte s tem nizom ali stolpcem':

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

Zdaj veste, kako uporabljati združevanje v SQL, kaj boste storili z njim? Boš naredite spletno stran in oživiti s SQL? Ali pa za preprostejši pristop k izdelavi spletnih mest potrebujete generator statičnih spletnih mest.

Karkoli naredite, nam to sporočite v spodnjih komentarjih!

kako pospešiti nalaganje v storitvi steam
Deliti Deliti Cvrkutati E-naslov 6 zvočnih alternativ: najboljše brezplačne ali poceni aplikacije za zvočne knjige

Če ne želite plačati za zvočne knjige, je tukaj nekaj odličnih aplikacij, ki vam omogočajo, da jih poslušate brezplačno in zakonito.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Programiranje
  • SQL
O avtorju Joe Coburn(136 objavljenih člankov)

Joe je diplomiral iz računalništva na Univerzi v Lincolnu v Veliki Britaniji. Je poklicni razvijalec programske opreme in ko ne leti z brezpilotnimi letali ali ne piše glasbe, ga pogosto najdejo pri fotografiranju ali ustvarjanju videoposnetkov.

Več od Joea Coburna

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti