Reklame

Struktureret forespørgselssprog (SQL) er et bemærkelsesværdigt kraftfuldt værktøj og et, der er fyldt med funktioner. Når du først har mestet mest vigtige SQL-kommandoer 13 Vigtigste SQL-kommandoer Enhver programmerer skal videEthvert stort eller dynamisk websted bruger en database på en eller anden måde, og når de kombineres med SQL (Structured Query Language), er mulighederne for at manipulere data virkelig uendelige. Læs mere , kan du begynde at blive lidt mere kreativ med din SQL. I dag viser jeg dig alt hvad du har brug for at vide om SQL-sammenkædningsstrenge.

Der er mange forskellige SQL-dialekter. Til alle disse eksempler bruger jeg PostgreSQL variant.

Hvad er sammenkædning?

Sammenkædning betyder at forbinde to ting sammen. Du har muligvis brugt det på et programmeringssprog til at forbinde to strenge sammen. Måske har du et fornavn- og efternavnsvariabler, som du har samlet sammen som en fuldt navnevariabel.

Sammenkædning er en meget nyttig måde at kombinere to strenge i en.

instagram viewer
PHP bruger en fuld stop for at slå strengene sammen, hvorimod JavaScript og jQuery En grundlæggende guide til JQuery til Javascript-programmerereHvis du er en Javascript-programmør, hjælper denne guide til JQuery dig med at starte kodning som en ninja. Læs mere Brug et plustegn.

Sammenkædning i SQL fungerer nøjagtigt det samme. Du bruger en speciel operatør til at slutte to ting sammen. Her er et eksempel i pseudokode:

first_name = Joe. sidste navn = Coburn. helnavn = fornavn + efternavn

I programmeringssprog gør sammenkædning kode lettere at læse. Hvis din kode altid har brug for adgang til to strenge, ved at kombinere dem i en gør det lettere at huske og reducerer kodens længde.

Mens variabler i SQL er mindre almindelige (men stadig bruges), er det stadig nødvendigt at sammenkæde for at returnere kombinerede resultater eller til at manipulere data.

Sådan sammenkædes

Sammenkædning er meget let i SQL. Mens SQL er et almindeligt sprog, implementerer individuelle databasemotorer funktioner på forskellige måder. Selvom alle disse eksempler findes i PostgreSQL-dialekten, er det let at oversætte til andre varianter ved blot at søge på nettet efter “Sammenføjede .” Forskellige motorer kan have en anden syntaks til sammenkobling, men princippet forbliver det samme.

Vende tilbage til vores navneksempel, her er en grundlæggende Vælg forespørgsel:

VÆLG fornavn, efternavn, e-mail FRA brugertabel
sql vælg

Intet komplekst her, så lad os tilføje sammenkædet:

VÆLG første_navn || efternavn AS fuldnavn, e-mail FRA brugertabel
SQL grundlæggende sammenkædning

Som du kan se, har denne sammenkædning fungeret perfekt, men der er et lille problem. Det resulterende fulde navn er syet sammen nøjagtigt som produktet fra begge søjler - der skal være et mellemrum mellem navnene!

Heldigvis er det nemt at rette: blot concat et mellemrum mellem de to:

VÆLG første_navn || '' || efternavn AS fuldnavn, e-mail FRA brugertabel
sql sammenhængende plads

Dette er grundlæggende eksempler, men du skal se, hvordan sammenkædning fungerer - det er virkelig så let! Røroperatøren (|) bruges to gange mellem klausuler. Din SQL-motor ved, at hver del før og efter dette symbol skal sammenføjes og behandles som en. Vær dog forsigtig, hvis du bruger concat-operatøren, men ikke sammenkæder noget, får du en fejl.

sql-fejl

Som nævnt ovenfor bruger disse eksempler PostgreSQL-varianten af ​​SQL. Andre varianter bruger muligvis en anden operatør eller endda en speciel funktion, du skal kalde. Det betyder ikke rigtig noget hvordan du sammenkæder strenge, forudsat at du gør det på den måde, som din databasemotor forventer.

Gå dybere

Nu hvor du kender det grundlæggende, lad os se på nogle dybdegående eksempler sammen med nogle almindelige faldgruber.

De fleste databasemotorer vil med succes samle en blanding af strenge og heltal, måske endda datoer også. Du vil normalt opstå problemer, når du prøver at sammenkæde komplekse typer som arrays:

VÆLG første_navn || '' || efternavn || ARRAY [123, 456] AS fuldnavn, e-mail FRA user_table

Denne kode fungerer ikke. Det er ikke muligt at kombinere strenge med komplekse objekter som arrays. Hvis du tænker over, hvad du skal gøre, kan du ofte skrive enkel kode, der fungerer snarere end kompleks, skør kode, der ikke kører.

Hvis du har tænkt nøje over, hvad du skal gøre, og stadig ikke kan få SQL til at fungere, har du overvejet at bruge et programmeringssprog? Som softwareudvikler, der arbejder med legacy code, kender jeg smerten ved at prøve at fejlsøge SQL, som nogen har fyldt så meget logik det er underligt, at det overhovedet kører - hvis du prøver at skrive logik i SQL, skal du skifte til et programmeringssprog (der er masser af lette sprog at lære 6 nemmeste programmeringssprog at lære for begyndereAt lære at programmere handler om at finde det rigtige sprog lige så meget som det handler om opbygningsprocessen. Her er de seks mest nemmeste programmeringssprog for begyndere. Læs mere ).

Sammenkædning fungerer meget godt for hvor udsagn også:

VÆLG fornavn, efternavn, e-mail FRA brugertabeller WHERE date_of_birth = ('DAG' || '/' || 'MÅNED' || '/' || 'ÅR'):: dato

Der sker et par ting her. I dette eksempel DAG, MÅNED, og ÅR er parametre, der er sendt fra et script. Måske er disse blevet genereret af kode eller indtastet af en bruger. Disse samles sammen og kastes derefter til en datatype (ved hjælp af PostgreSQL cast til dato syntaks ::dato).

Ved hjælp af sammenkædning på denne måde kan du kæde sammen de enkelte dele af en dato, som derefter kan behandles som en "rigtig" dato i modsætning til en streng. Glem ikke, at dette grundlæggende eksempel ikke beskytter mod SQL-injektion Hvad er en SQL-injektion? [MakeUseOf Explains]Verden af ​​internetsikkerhed er plaget med åbne havne, bagdøre, sikkerhedshuller, trojanere, orme, firewall sårbarheder og en række andre problemer, der holder os alle på tæerne hver dag. For private brugere, ... Læs mere , så brug ikke den i nogen produktionskode uden at ændre.

En anden faldgrube man skal passe på er nul værdier (en nullstreng er en tom eller ikke-eksisterende streng). Givet denne forespørgsel:

VÆLG første_navn || '' || NULL AS fuldnavn, e-mail FRA brugertabel
sql null sammenkædning

Denne forespørgsel mislykkes stille. Dette skyldes den måde, hvorpå sammenkædning internt kodes på din databasemotor. Du støder muligvis ikke altid på dette problem, men det er en ganske almindelig forekomst.

Hvis du tror, ​​at de data, din forespørgsel returnerer, kan være nul, skal du bruge a flyder sammen. Koalesce kan groft tænkes som "hvis dette er nul, udskift det med denne anden streng eller kolonne":

VÆLG første_navn || '' || COALESCE (NULL, 'ERROR NULL DATA') SOM fuldnavn, e-mail FRA user_table
sql sammenkædning samles

Nu ved du hvordan man bruger sammenkædning i SQL, hvad vil du gøre med det? Vil du oprette et websted Sådan oprettes et websted: For begyndereI dag vil jeg guide dig gennem processen med at oprette et komplet websted fra bunden. Bare rolig, hvis dette lyder svært. Jeg vil guide dig gennem det hvert skridt på vejen. Læs mere og genoplive det med SQL? Eller måske har du brug for en statisk stedgenerator 7 grunde til at grøfte dit CMS og overveje en statisk stedgeneratorI mange år var det svært for mange brugere at offentliggøre et websted. CMS'er som WordPress ændrede det, men de kan stadig være forvirrende. Et andet alternativ er en statisk stedgenerator. Læs mere for en enklere tilgang til opbygning af websteder.

Uanset hvad du gør, så lad os vide det i kommentarerne herunder!

Joe er uddannet inden for datalogi fra University of Lincoln, UK. Han er en professionel softwareudvikler, og når han ikke flyver droner eller skriver musik, kan han ofte findes, når han tager billeder eller producerer videoer.