Annonse
Strukturert spørrespråk (SQL) er et bemerkelsesverdig kraftig verktøy, og et som er full av funksjoner. Når du har mestret mest viktige SQL-kommandoer 13 Viktigste SQL-kommandoer Enhver programmerer bør viteHver store eller dynamiske webside bruker en database på noen måte, og når den kombineres med SQL (Structured Query Language), er mulighetene for å manipulere data uendelige. Les mer , kan du begynne å bli litt mer kreativ med SQL-en. I dag skal jeg vise deg alt du trenger å vite om SQL-sammenkettingsstrenger.
Det er mange forskjellige SQL-dialekter. For alle disse eksemplene bruker jeg PostgreSQL variant.
Hva er sammenkjøring?
Samkjøring betyr å knytte to ting sammen. Du har kanskje brukt det på et programmeringsspråk for å slå sammen to strenger. Kanskje har du et fornavn- og etternavnsvariabler som du gikk sammen som en fullstendig variabel.
Samkjøring er en veldig nyttig måte å kombinere to strenger i en. PHP bruker et stopp for å slå sammen strengene, mens Javascript og jQuery
En grunnleggende guide til JQuery for Javascript-programmerereHvis du er en Javascript-programmerer, vil denne guiden til JQuery hjelpe deg med å starte koding som en ninja. Les mer bruk et plussskilt.Samkjøring i SQL fungerer nøyaktig det samme. Du bruker en spesiell operatør for å slå sammen to ting til en. Her er et eksempel på pseudo:
fornavn = Joe. etternavn = Coburn. hele navnet = fornavn + etternavn
I programmeringsspråk gjør sammenkjøring koden lettere å lese. Hvis koden din alltid trenger tilgang til to strenger, ved å kombinere dem i en gjør det lettere å huske, og reduserer lengden på koden.
Selv om variabler i SQL er mindre vanlige (men fortsatt brukes), er det fortsatt nødvendig med sammenkoble for å returnere kombinerte resultater, eller for å manipulere data.
Hvordan slå sammen
Samkjøring 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 å ganske enkelt søke på nettet etter “Concatenate
Gå tilbake til navnet vårt eksempel, her er en grunnleggende å velge spørsmål:
VELG fornavn, etternavn, e-post fra brukere_tabellen
Ingenting komplekst her, så la oss legge til i medfølgende:
VELG fornavn || etternavn AS fullt_navn, e-post fra brukerens tabell
Som du kan se, har denne sammenkjøringen fungert perfekt, men det er ett lite problem. Det resulterende fulle navnet er blitt sydd sammen nøyaktig som produktet fra begge kolonnene - det skal være et mellomrom mellom navnene!
Heldigvis er det enkelt å fikse: bare koble et mellomrom mellom de to:
VELG fornavn || '' || etternavn AS fullt_navn, e-post fra brukerens tabell
Dette er grunnleggende eksempler, men du bør se hvordan sammenkoble fungerer - det er virkelig så enkelt! Røroperatøren (|) brukes to ganger mellom ledd. SQL-motoren din vet at hver del før og etter dette symbolet skal settes sammen og behandles som en. Vær forsiktig, hvis du bruker concat-operatøren, men ikke kobler sammen noe, vil du få en feil.
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. Det spiller ingen rolle hvordan du sammenkoble strengene, forutsatt at du gjør det på samme måte som databasemotoren din forventer.
Gå dypere
Nå som du kjenner det grunnleggende, la oss se på noen dyptgående eksempler, sammen med noen vanlige fallgruver.
De fleste databasemotorer vil lykkes med å blande en blanding av strenger og heltall, kanskje også datoer. Du vil vanligvis få problemer når du prøver å koble sammen komplekse typer som matriser:
VELG fornavn || '' || etternavn || ARRAY [123, 456] AS fullt navn, e-post fra brukeren_tabellen
Denne koden vil ikke fungere. Det er ikke mulig å kombinere strenger med komplekse objekter som matriser. Hvis du tenker på hva du trenger å gjøre, kan du ofte skrive enkel kode som fungerer, snarere enn kompleks, gal kode som ikke klarer å kjøre.
Hvis du har tenkt nøye gjennom hva du trenger å gjøre, og fremdeles ikke kan få SQL til å fungere, har du vurdert å bruke et programmeringsspråk? Som en programvareutvikler som jobber med legacy code, kjenner jeg smerten ved å prøve å feilsøke SQL som noen har stappet så mye logikk på det er et under at det i det hele tatt kjører - hvis du prøver å skrive logikk i SQL, så bytt til et programmeringsspråk (det er nok av enkle språk å lære 6 enkleste programmeringsspråk å lære for nybegynnereÅ lære å programmere handler om å finne riktig språk like mye som det handler om oppbyggingsprosessen. Her er de seks enkleste programmeringsspråkene for nybegynnere. Les mer ).
Samkjøring fungerer veldig bra for hvor uttalelser også:
VELG fornavn, etternavn, e-post FRA brukere_tabell WHERE date_of_birth = ('DAG' || '/' || 'MÅNED' || '/' || 'ÅR'):: dato
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 har blitt generert av kode, eller lagt inn av en bruker. Disse kobles sammen, og kastes deretter til en datatype (ved hjelp av PostgreSQL-cast til dato-syntaks ::Dato).
Ved å bruke sammenkoble 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 grunnleggende eksemplet ikke beskytter mot SQL-injeksjon Hva er en SQL-injeksjon? [MakeUseOf Explains]Verden av Internett-sikkerhet er plaget med åpne porter, bakdører, sikkerhetshull, trojanere, ormer, brannmurproblemer og en rekke andre problemer som holder oss alle på tå hver dag. For private brukere, ... Les mer , så ikke bruk den i noen produksjonskode uten å endre.
En annen fallgruve å passe på er null verdier (en nullstreng er en tom eller ikke eksisterende streng). Gitt denne spørringen:
VELG fornavn || '' || NULL AS fullt navn, e-post fra brukernavn
Denne spørringen mislykkes lydløst. Dette er på grunn av hvordan sammenkobling er kodet internt på databasemotoren din. Det er ikke sikkert at du alltid støter på dette problemet, men det er ganske vanlig.
Hvis du tror at dataene spørsmålet ditt returnerer kan være null, må du bruke a coalesce. Coalesce kan grovt sett tenkes som “hvis dette er null, erstatt det med denne andre strengen eller kolonnen”:
VELG fornavn || '' || COALESCE (NULL, 'ERROR NULL DATA') SOM fullt navn, e-post fra brukerens tabell
Nå vet du hvordan du bruker sammenkoble i SQL, hva vil du gjøre med det? Vil du lage et nettsted Hvordan lage et nettsted: For nybegynnereI dag vil jeg veilede deg gjennom prosessen med å lage et komplett nettsted fra bunnen av. Ikke bekymre deg hvis dette høres vanskelig ut. Jeg vil guide deg gjennom det hvert trinn på veien. Les mer og livner det opp med SQL? Eller kanskje du trenger en statisk stedsgenerator 7 grunner til å grøfte CMS og vurdere en statisk nettstedgeneratorI mange år var det vanskelig å publisere et nettsted for mange brukere. CMS-er som WordPress endret det, men de kan fortsatt være forvirrende. Et annet alternativ er en statisk stedsgenerator. Les mer for en enklere tilnærming til å bygge nettsteder.
Uansett hva du gjør, gi oss beskjed i kommentarene nedenfor!
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 finne bilder og produsere videoer.