Taitavia tapoja käyttää SQL -ketjutusjonoa

Taitavia tapoja käyttää SQL -ketjutusjonoa

Jäsennelty kyselykieli (SQL) on erittäin tehokas työkalu, joka on täynnä ominaisuuksia. Kun olet oppinut eniten tärkeitä SQL -komentoja , voit alkaa olla hieman luovempi SQL: lläsi. Tänään näytän sinulle kaiken, mitä sinun tarvitsee tietää SQL -ketjutusjonoista.





SQL -murteita on monia. Kaikissa näissä esimerkeissä käytän PostgreSQL variantti.





mikä on bixby puhelimessani

Mikä on ketjutus?

Yhdistäminen tarkoittaa kahden asian yhdistämistä yhteen. Olet saattanut käyttää sitä ohjelmointikielellä kahden merkkijonon yhdistämiseen. Ehkä sinulla on etu- ja sukunimimuuttujat, jotka liitit yhteen koko nimimuuttujana.





Ketjutus on erittäin hyödyllinen tapa yhdistää kaksi merkkijonoa yhdeksi. PHP käyttää pistettä pisteen yhdistämiseen, kun taas JavaScript ja jQuery käyttää plusmerkkiä.

Ketjutus SQL: ssä toimii täsmälleen samalla tavalla. Käytät erityistä operaattoria yhdistämään kaksi asiaa yhdeksi. Tässä esimerkki Pseudokoodi :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

Ohjelmointikielillä ketjutus helpottaa koodin lukemista. Jos koodisi tarvitsee aina käyttää kahta merkkijonoa, niiden yhdistäminen yhdeksi helpottaa muistamista ja lyhentää koodin pituutta.

Vaikka SQL: n muuttujat ovat harvinaisempia (mutta niitä käytetään edelleen), yhdistettyjä tuloksia tarvitaan edelleen yhdistettyjen tulosten palauttamiseksi tai tietojen käsittelemiseksi.





Miten ketjuttaa

Ketjutus on erittäin helppoa SQL: ssä. Vaikka SQL on yleinen kieli, yksittäiset tietokantamoottorit toteuttavat ominaisuuksia eri tavoin. Vaikka kaikki nämä esimerkit ovat PostgreSQL -murretta, on helppo kääntää muille muunnelmille yksinkertaisesti etsimällä verkosta 'Concatenate'. Eri moottoreilla voi olla eri syntaksi ketjutusta varten, mutta periaate pysyy samana.

Palataksemme nimiesimerkkiimme, tässä on perusasiat valitse kysely:





SELECT first_name, last_name, email FROM users_table

Tässä ei ole mitään monimutkaista, joten lisätään ketjutus:

SELECT first_name || last_name AS full_name, email FROM users_table

Kuten näette, tämä ketjutus on toiminut täydellisesti, mutta siinä on yksi pieni ongelma. Tuloksena oleva täydellinen nimi on ommeltu yhteen täsmälleen molempien sarakkeiden tuloksi - nimien väliin on jätettävä väli!

Onneksi se on helppo korjata: yhdistä vain väli näiden kahden välille:

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

Nämä ovat perusesimerkkejä, mutta sinun pitäisi nähdä, miten ketjutus toimii - se on todella niin helppoa! Putken käyttäjä ( | ) käytetään kahdesti lausekkeiden välillä. SQL -moottorisi tietää, että jokainen osa ennen tätä symbolia ja sen jälkeen tulee yhdistää ja käsitellä yhtenä. Ole kuitenkin varovainen, jos käytät concat -operaattoria, mutta et yhdistä mitään, saat virheilmoituksen.

Kuten edellä mainittiin, näissä esimerkeissä käytetään SQL: n PostgreSQL -varianttia. Muut vaihtoehdot voivat käyttää toista operaattoria tai jopa erityistä toimintoa, joka sinun on kutsuttava. Sillä ei ole oikeastaan ​​väliä Miten ketjutat merkkijonoja edellyttäen, että teet sen tavalla, jolla tietokantamoottori odottaa.

Menee syvemmälle

Nyt kun tiedät perusasiat, katsotaanpa joitain perusteellisia esimerkkejä ja joitain yleisiä sudenkuoppia.

Useimmat tietokantamoottorit yhdistävät onnistuneesti merkkijonojen ja kokonaislukujen yhdistelmän, ehkä jopa päivämäärät. Yleensä joudut ongelmiin yrittäessäsi yhdistää monimutkaisia ​​tyyppejä, kuten matriiseja:

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

Tämä koodi ei toimi. Merkkijonoja ei voi yhdistää monimutkaisiin kohteisiin, kuten matriiseihin. Jos mietit mitä sinun on tehtävä, voit usein kirjoittaa yksinkertaisen toimivan koodin eikä monimutkaista, hullua koodia, joka ei toimi.

Jos olet miettinyt huolellisesti, mitä sinun on tehtävä, etkä silti saa SQL: ää toimimaan, oletko harkinnut ohjelmointikielen käyttöä? Ohjelmistokehittäjänä, joka työskentelee vanhan koodin parissa, tiedän sen tuskan, joka liittyy SQL: n virheenkorjaukseen, kun joku on pakannut niin paljon logiikkaa, että on ihme, että se toimii ollenkaan - jos yrität kirjoittaa logiikkaa SQL: ssä, vaihda ohjelmointikieli (helppoja kieliä on paljon).

Ketjutus toimii erittäin hyvin missä lausunnot myös:

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

Täällä tapahtuu muutamia asioita. Tässä esimerkissä PÄIVÄ , KUUKAUSI ja VUOSI ovat parametrit, jotka on välitetty komentosarjasta. Ehkä nämä ovat koodin luomia tai käyttäjän syöttämiä. Nämä yhdistetään toisiinsa ja lähetetään sitten päivämäärätyypiksi (käyttäen PostgreSQL -päivämäärään perustuvaa syntaksia ::Päivämäärä ).

Kun käytät ketjutusta tällä tavalla, voit ketjuttaa yhteen päivämäärän yksittäiset osat, jotka voidaan sitten käsitellä 'todellisina' päivämäärinä merkkijonon sijaan. Älä unohda, että tämä perusesimerkki ei suojaa SQL -injektiolta, joten älä käytä sitä missään tuotantokoodissa ilman muutoksia.

Toinen ansa varoa on tyhjä arvot (tyhjä merkkijono on tyhjä tai olematon merkkijono). Tämän kyselyn perusteella:

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

Tämä kysely epäonnistuu hiljaa. Tämä johtuu siitä, miten ketjutus on koodattu sisäisesti tietokantamoottorissasi. Et voi aina kohdata tätä ongelmaa, mutta se on melko yleinen ilmiö.

Jos uskot, että kyselysi palauttamat tiedot voivat olla tyhjiä, sinun on käytettävä a sulautua yhteen . Yhdistämistä voidaan ajatella suunnilleen seuraavasti: 'jos tämä on nolla, korvaa se tällä toisella merkkijonolla tai sarakkeella':

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

Nyt tiedät kuinka käyttää ketjutusta SQL: ssä, mitä aiot tehdä sen kanssa? Aiotko sinä tehdä verkkosivusto ja elävöittää sitä SQL: llä? Tai ehkä tarvitset staattisen sivustogeneraattorin, joka helpottaa verkkosivustojen rakentamista.

Mitä tahansa teetkin, kerro meille alla olevista kommenteista!

sovelluksen avulla näet, kuka katselee instagram -videojasi
Jaa Jaa Tweet Sähköposti 6 kuultavaa vaihtoehtoa: parhaat ilmaiset tai halvat äänikirjasovellukset

Jos et halua maksaa äänikirjoista, tässä on hienoja sovelluksia, joiden avulla voit kuunnella niitä ilmaiseksi ja laillisesti.

Lue seuraava
Liittyvät aiheet
  • Ohjelmointi
  • Ohjelmointi
  • SQL
Kirjailijasta Joe Coburn(136 artikkelia julkaistu)

Joe on valmistunut tietojenkäsittelytieteestä Lincolnin yliopistosta Iso -Britanniasta. Hän on ammattimainen ohjelmistokehittäjä, ja kun hän ei lentä droneilla tai kirjoita musiikkia, hänet voidaan usein ottaa valokuvista tai videoista.

Lisää Joe Coburnilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi