Smarte måter å bruke en SQL -sammenkoplingsstreng

Smarte måter å bruke en SQL -sammenkoplingsstreng

Strukturert spørrespråk (SQL) er et bemerkelsesverdig kraftig verktøy, og et som er fullpakket med funksjoner. Når du mestrer mest viktige SQL -kommandoer , kan du begynne å bli litt mer kreativ med SQL. I dag skal jeg vise deg alt du trenger å vite om SQL -sammenkoplingsstrenger.





Det er mange forskjellige SQL -dialekter. For alle disse eksemplene bruker jeg PostgreSQL variant.





windows 10 wifi tilkoblet, men ingen internett

Hva er sammenkopling?

Sammenkobling betyr å koble to ting sammen. Du har kanskje brukt det i et programmeringsspråk for å koble to strenger sammen. Kanskje du har en fornavn og etternavn variabler som du slo sammen som en full navn variabel.





Sammenkopling er en veldig nyttig måte å kombinere to strenger til en. PHP bruker et punktum for å slå sammen strenger, mens JavaScript og jQuery bruker et pluss -tegn.

Sammenkopling i SQL fungerer nøyaktig det samme. Du bruker en spesiell operatør til å koble to ting til en. Her er et eksempel i Pseudokode :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

I programmeringsspråk gjør sammenkoblingen koden lettere å lese. Hvis koden din alltid trenger tilgang til to strenger, er det enklere å huske å kombinere dem til en og redusere lengden på koden.

Selv om variabler i SQL er mindre vanlige (men fortsatt brukes), er det fortsatt nødvendig med sammenkobling for å returnere kombinerte resultater eller for å manipulere data.





Hvordan henge sammen

Sammenkobling er veldig enkelt i SQL. Mens SQL er et vanlig språk, implementerer individuelle databasemotorer funksjoner på forskjellige måter. Selv om alle disse eksemplene er på PostgreSQL -dialekten, er det enkelt å oversette til andre varianter ved å bare søke på nettet etter 'Concatenate'. Ulike motorer kan ha en annen syntaks for sammenkobling, men prinsippet forblir det samme.

For å gå tilbake til vårt navneeksempel, her er en grunnleggende plukke ut spørsmål:





SELECT first_name, last_name, email FROM users_table

Ikke noe komplisert her, så la oss legge til sammenføyningen:

SELECT first_name || last_name AS full_name, email FROM users_table

Som du kan se, har denne sammenkoblingen fungert perfekt, men det er et lite problem. Det resulterende fulle navnet har blitt sydd sammen nøyaktig som produktet av begge kolonnene - det skal være et mellomrom mellom navnene!

Heldigvis er det enkelt å fikse: bare sett inn et mellomrom mellom de to:

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

Dette er grunnleggende eksempler, men du bør se hvordan sammenkoblingen fungerer - det er virkelig så enkelt! Røroperatøren ( | ) brukes to ganger mellom leddene. SQL -motoren din vet at hver del før og etter dette symbolet bør settes sammen og behandles som en. Vær forsiktig, men hvis du bruker concat -operatøren, men ikke sammenkobler noe, får du en feilmelding.

Som nevnt ovenfor bruker disse eksemplene PostgreSQL -varianten av SQL. Andre varianter kan bruke en annen operatør, eller til og med en spesiell funksjon du må ringe til. Det spiller egentlig ingen rolle hvordan du kobler sammen strenger, forutsatt at du gjør det på den måten databasemotoren forventer.

Går dypere

Nå som du kjenner det grunnleggende, la oss se på noen grundige eksempler, sammen med noen vanlige fallgruver.

De fleste databasemotorer vil lykkes med å kombinere en blanding av strenger og heltall, kanskje også datoer. Du vil vanligvis støte på problemer når du prøver å sammenkoble komplekse typer som matriser:

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

Denne koden fungerer ikke. Det er ikke mulig å kombinere strenger med komplekse objekter som matriser. Hvis du tenker på hva du må gjøre, kan du ofte skrive enkel kode som fungerer, i stedet for kompleks, gal kode som ikke klarer å kjøre.

Hvis du har tenkt nøye gjennom hva du må gjøre, og fremdeles ikke kan få SQL til å fungere, har du tenkt på å bruke et programmeringsspråk? Som en programvareutvikler som jobber med eldre kode, kjenner jeg smerten ved å prøve å feilsøke SQL som noen har proppet så mye logikk inn i, det er et rart det kjører i det hele tatt - hvis du prøver å skrive logikk i SQL, så bytt til en programmeringsspråk (det er mange enkle språk å lære).

Sammenkobling fungerer veldig bra for hvor uttalelser også:

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

Det er noen få ting som skjer her. I dette eksemplet, DAG , MÅNED , og ÅR er parametere som er sendt inn fra et skript. Kanskje disse er generert med kode, eller lagt inn av en bruker. Disse kobles sammen og kastes deretter til en datotype (ved hjelp av PostgreSQL -kast til dato -syntaksen ::Dato ).

Ved å bruke sammenkobling på denne måten kan du kjede sammen de enkelte delene av en dato, som deretter kan behandles som en 'ekte' dato, i motsetning til en streng. Ikke glem at dette grunneksemplet ikke beskytter mot SQL -injeksjon, så ikke bruk det i noen produksjonskode uten å endre.

En annen fallgruve å passe på er null verdier (en null -streng er en tom eller ikke -eksisterende streng). Gitt denne forespørselen:

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

Denne spørringen mislykkes stille. Dette skyldes måten sammenkoblingen er internt kodet på databasemotoren. Du støter kanskje ikke alltid på dette problemet, men det er ganske vanlig.

Hvis du tror dataene spørringen din returnerer kan være null, må du bruke en samles . Coalesce kan grovt tenkes som 'hvis dette er null, erstatt det med denne andre strengen eller kolonnen':

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

Nå vet du hvordan du bruker sammenkopling i SQL, hva vil du gjøre med det? Vil du lage et nettsted og livne det opp med SQL? Eller kanskje du trenger en statisk nettstedgenerator for en enklere tilnærming til å bygge nettsteder.

Uansett hva du gjør, gi oss beskjed i kommentarene nedenfor!

hvordan finne musikk fra en youtube -video
Dele Dele kvitring E -post 6 hørbare alternativer: De beste gratis eller billige lydbokappene

Hvis du ikke liker å betale for lydbøker, er det noen flotte apper som lar deg lytte til dem gratis og lovlig.

Les neste
Relaterte temaer
  • Programmering
  • Programmering
  • SQL
Om forfatteren Joe Coburn(136 artikler publisert)

Joe er utdannet innen informatikk fra University of Lincoln, Storbritannia. Han er en profesjonell programvareutvikler, og når han ikke flyr droner eller skriver musikk, kan han ofte bli funnet å ta bilder eller produsere videoer.

Mer fra Joe Coburn

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere