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

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

Struktureret forespørgselssprog (SQL) er et bemærkelsesværdigt kraftfuldt værktøj, og et, der er fyldt med funktioner. Når du mestrer mest vigtige SQL -kommandoer , kan du begynde at blive lidt mere kreativ med din SQL. I dag viser jeg dig alt hvad du behøver at vide om SQL -sammenkædningsstrenge.





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





hvordan slettes andre på iphone

Hvad er sammenkædning?

Sammenkædning betyder at forbinde to ting sammen. Du har muligvis brugt det i et programmeringssprog til at forbinde to strenge sammen. Måske har du et fornavn og efternavn variabler, som du sluttede sammen som en fuld navne variabel.





Sammenkædning er en meget nyttig måde at kombinere to strenge til en. PHP bruger et punktum til at forbinde strenge sammen, hvorimod JavaScript og jQuery brug et plustegn.

Sammenkædning i SQL fungerer nøjagtig det samme. Du bruger en speciel operator til at forbinde to ting til en. Her er et eksempel i Pseudokode :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

På programmeringssprog gør sammenkædning koden lettere at læse. Hvis din kode altid skal have adgang til to strenge, gør det lettere at huske det ved at kombinere dem til en og reducere længden af ​​koden.

Selvom variabler i SQL er mindre almindelige (men stadig bruges), er sammenkædning stadig nødvendig 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 fælles sprog, implementerer individuelle databasemotorer funktioner på forskellige måder. Selvom alle disse eksempler er på PostgreSQL -dialekten, er det let at oversætte til andre varianter ved blot at søge på nettet efter 'Sammenkædning'. Forskellige motorer kan have en anden syntaks for sammenkædning, men princippet forbliver det samme.

Går vi tilbage til vores navneeksempel, her er en grundlæggende Vælg forespørgsel:





SELECT first_name, last_name, email FROM users_table

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

SELECT first_name || last_name AS full_name, email FROM users_table

Som du kan se, har denne sammenkædning fungeret perfekt, men der er et lille problem. Det resulterende fulde navn er blevet syet præcis som produktet af begge kolonner - der skal være et mellemrum mellem navnene!

Heldigvis er det let at rette op på: Indsæt blot et mellemrum mellem de to:

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

Dette er grundlæggende eksempler, men du bør 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 sættes sammen 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 kan bruge en anden operatør eller endda en særlig funktion, du skal ringe til. Det gør ikke rigtig noget hvordan du sammenkæder strenge, forudsat at du gør det på den måde, din databasemotor forventer.

Går 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 sammensætte en blanding af strenge og heltal, måske endda også datoer. Du vil som regel løbe ind i problemer, når du forsøger at sammenkoble komplekse typer såsom arrays:

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

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

Hvis du har tænkt grundigt over, hvad du skal gøre, og stadig ikke kan få SQL til at fungere, har du så overvejet at bruge et programmeringssprog? Som softwareudvikler, der arbejder med ældre kode, kender jeg smerten ved at prøve at fejlsøge SQL, som nogen har proppet så meget logik ind i, at det er et under, at det overhovedet kører - hvis du prøver at skrive logik i SQL, så skift til en programmeringssprog (der er masser af lette sprog at lære).

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

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

Der sker et par ting her. I dette eksempel, DAG , MÅNED , og ÅR er parametre, der er videregivet fra et script. Måske er disse blevet genereret med kode eller indtastet af en bruger. Disse sammenkædes sammen og castes derefter til en datotype (ved hjælp af PostgreSQL -kast til dato -syntaks ::dato ).

Ved at bruge sammenkædning på denne måde kan du kæde de enkelte dele af en dato sammen, 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 -indsprøjtning, så brug ikke det i nogen produktionskode uden at ændre det.

En anden faldgrube at passe på er nul værdier (en null -streng er en tom eller ikke -eksisterende streng). I betragtning af denne forespørgsel:

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

Denne forespørgsel fejler lydløst. Dette skyldes den måde, sammenkoblingen er internt kodet på din databasemotor. Du støder måske 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 en flyder sammen . Coalesce kan groft sagt opfattes som 'hvis dette er nul, erstat det med denne anden streng eller kolonne':

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

Nu ved du, hvordan du bruger sammenkædning i SQL, hvad vil du gøre med det? Vil du lave et websted og livne det op med SQL? Eller måske har du brug for en statisk webstedsgenerator til en enklere tilgang til opbygning af websteder.

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

hvorfor virker min bærbare mus ikke
Del Del Tweet E -mail 6 hørbare alternativer: De bedste gratis eller billige lydbogsapps

Hvis du ikke har lyst til at betale for lydbøger, her er nogle gode apps, der lader dig lytte til dem gratis og lovligt.

Læs Næste
Relaterede emner
  • Programmering
  • Programmering
  • SQL
Om forfatteren Joe Coburn(136 artikler udgivet)

Joe er uddannet i datalogi fra University of Lincoln, UK. Han er en professionel softwareudvikler, og når han ikke flyver med droner eller skriver musik, kan han ofte findes tage fotos eller producere videoer.

Mere fra Joe Coburn

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere