Smarte måder at bruge en SQL-sammenkædningsstreng på

  • Mark Lucas
  • 0
  • 2313
  • 3
Reklame

Struktureret forespørgselssprog (SQL) er et bemærkelsesværdigt kraftfuldt værktøj og et, der er fyldt med funktioner. Når du har mestret de vigtigste SQL-kommandoer 13 Vigtigste SQL-kommandoer Enhver programmerer skal vide 13 Vigtigste SQL-kommandoer Enhver programmerer skal vide Hver eneste stor eller dynamisk webside bruger en database på en eller anden måde, og når den kombineres med SQL (Structured Query Language) , er mulighederne for at manipulere data virkelig uendelige. , 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-varianten.

Hvad er sammenkædning?

Sammenkædning betyder at sammenføje to ting. Du har muligvis brugt det på et programmeringssprog til at sammenføje 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. PHP bruger en fuld stop for at slå strengene sammen, hvorimod JavaScript og jQuery En grundlæggende guide til JQuery til Javascript-programmerere En grundlæggende vejledning til JQuery for Javascript-programmerere Hvis du er en Javascript-programmør, hjælper denne guide til JQuery dig med at starte kodning som en ninja. Brug et plustegn.

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

first_name = Joe last_name = Coburn hele_name = first_name + last_name

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 én 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. Mens alle disse eksempler findes i PostgreSQL-dialekten, er det let at oversætte til andre varianter ved blot at søge på nettet efter “Concatenate .” Forskellige motorer kan have en anden syntaks til sammenkobling, men princippet forbliver det samme.

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

VÆLG fornavn, efternavn, e-mail FRA brugertabel

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

VÆLG første_navn || efternavn AS fuldnavn, e-mail FRA brugertabel

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

Heldigvis er det let at løse: blot concat et mellemrum mellem de to:

VÆLG første_navn || "|| efternavn AS fuldnavn, e-mail FRA brugertabel

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.

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 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:

SELECT first_name || "|| last_name || ARRAY [123, 456] AS full_name, email FROM 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 en softwareudvikler, der arbejder med ældre kode, kender jeg smerten ved at forsøge at fejlsøge SQL, som nogen har fyldt så meget logik ind i, det er et under, at det overhovedet kører - hvis du prøver at skrive logik i SQL, skift derefter til en programmering sprog (der er masser af lette sprog at lære 6 nemmeste programmeringssprog at lære for begyndere 6 Nemmeste programmeringssprog at lære for begyndere At lære at programmere handler om at finde det rigtige sprog lige så meget som det handler om opdateringsprocessen. Her er de seks øverste nemmeste programmeringssprog for begyndere.).

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

VÆLG fornavn, efternavn, e-mail FRA brugertabell 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 “ægte” 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] Hvad er en SQL-injektion? [MakeUseOf Explains] En 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 ..., så brug ikke det 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 SOM fuldnavn, e-mail FRA brugertabel

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 mener, at de data, din forespørgsel returnerer, kan være nul, skal du bruge a flyder sammen. Koalesce kan groft betragtes som “Hvis dette er null, skal du erstatte det med denne anden streng eller kolonne”:

VÆLG første_navn || "|| COALESCE (NULL, 'ERROR NULL DATA') SOM fuldnavn, e-mail FRA user_table

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 begyndere Hvordan man laver et websted: For begyndere I 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. og genoplive det med SQL? Eller måske har du brug for en statisk stedgenerator 7 grunde til at grøfte din CMS og overveje en statisk stedgenerator 7 grunde til at grøfte din CMS og overveje en statisk stedgenerator I 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. for en enklere tilgang til opbygning af websteder.

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




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.