Smarta sätt att använda en SQL -sammanlänkningssträng

Smarta sätt att använda en SQL -sammanlänkningssträng

Structured Query Language (SQL) är ett anmärkningsvärt kraftfullt verktyg, och ett som är fullt med funktioner. När du mest har mestat viktiga SQL -kommandon , kan du börja bli lite mer kreativ med din SQL. Idag visar jag dig allt du behöver veta om SQL -sammanlänkningssträngar.





Det finns många olika SQL -dialekter. För alla dessa exempel använder jag PostgreSQL variant.





hur laddar jag ner bilder från min Samsung -telefon till min dator?

Vad är sammanfogning?

Sammankoppling innebär att sammanfoga två saker. Du kanske har använt det i ett programmeringsspråk för att sammanfoga två strängar. Kanske har du ett för- och efternamnsvariabler som du sammanfogade som en fullständig namnvariabel.





Sammankoppling är ett mycket användbart sätt att kombinera två strängar till en. PHP använder ett punkt för att sammanfoga strängar, medan JavaScript och jQuery använder ett plustecken.

Sammankoppling i SQL fungerar exakt likadant. Du använder en speciell operatör för att sammanfoga två saker till en. Här är ett exempel i Pseudokod :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

På programmeringsspråk gör sammanlänkningen koden lättare att läsa. Om din kod alltid behöver komma åt två strängar, är det lättare att komma ihåg om du kombinerar dem till en och minskar kodens längd.

Även om variabler i SQL är mindre vanliga (men fortfarande används), behövs fortfarande sammankoppling för att returnera kombinerade resultat eller för att manipulera data.





Hur man sammanfogar

Sammankoppling är mycket lätt i SQL. Även om SQL är ett vanligt språk, implementerar enskilda databasmotorer funktioner på olika sätt. Även om alla dessa exempel finns på PostgreSQL -dialekten, är det enkelt att översätta till andra varianter genom att helt enkelt söka på webben efter 'Concatenate'. Olika motorer kan ha en annan syntax för sammanfogning, men principen förblir densamma.

Gå tillbaka till vårt namn exempel, här är en grundläggande Välj fråga:





SELECT first_name, last_name, email FROM users_table

Inget komplext här, så låt oss lägga till i sammanfogningen:

SELECT first_name || last_name AS full_name, email FROM users_table

Som du kan se har denna sammanfogning fungerat perfekt, men det finns ett litet problem. Det resulterande fullständiga namnet har sytts ihop exakt som produkten av båda kolumnerna - det borde vara ett mellanrum mellan namnen!

Lyckligtvis är det enkelt att fixa: helt enkelt placera ett mellanrum mellan de två:

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

Det här är grundläggande exempel, men du bör se hur sammankoppling fungerar - det är verkligen så enkelt! Röroperatören ( | ) används två gånger mellan klausuler. Din SQL -motor vet att varje del före och efter denna symbol ska sammanfogas och behandlas som en. Var dock försiktig, om du använder concat -operatören men inte sammanfogar något får du ett felmeddelande.

Som nämnts ovan använder dessa exempel PostgreSQL -varianten av SQL. Andra varianter kan använda en annan operatör, eller till och med en speciell funktion du måste ringa. Det spelar egentligen ingen roll hur du sammanfogar strängar, förutsatt att du gör det på det sätt som din databasmotor förväntar sig.

Går djupare

Nu när du känner till grunderna, låt oss titta på några djupgående exempel, tillsammans med några vanliga fallgropar.

De flesta databasmotorer kommer framgångsrikt att sammanfoga en blandning av strängar och heltal, kanske till och med datum också. Du kommer vanligtvis att stöta på problem när du försöker sammanfoga komplexa typer som matriser:

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

Denna kod fungerar inte. Det är inte möjligt att kombinera strängar med komplexa objekt som arrays. Om du tänker på vad du behöver göra kan du ofta skriva enkel kod som fungerar, snarare än komplex, galen kod som inte fungerar.

Om du har tänkt noga på vad du behöver göra och fortfarande inte kan få SQL att fungera, har du funderat på att använda ett programmeringsspråk? Som mjukvaruutvecklare som arbetar med äldre kod, vet jag smärtan av att försöka felsöka SQL som någon har proppat så mycket logik i, det är ett under att det körs alls - om du försöker skriva logik i SQL, byt sedan till en programmeringsspråk (det finns gott om enkla språk att lära sig).

Sammankoppling fungerar mycket bra för var uttalanden också:

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

Det händer några saker här. I det här exemplet, DAG , MÅNAD , och ÅR är parametrar som har skickats in från ett skript. Kanske har dessa genererats med kod eller angetts av en användare. Dessa sammanfogas tillsammans och kastas sedan till en datumtyp (med PostgreSQL -gjutning till datum -syntax ::datum ).

Genom att använda sammanfogning på detta sätt kan du kedja ihop de enskilda delarna av ett datum, som sedan kan bearbetas som ett 'riktigt' datum, i motsats till en sträng. Glöm inte att detta grundläggande exempel inte skyddar mot SQL -injektion, så använd det inte i någon produktionskod utan att ändra.

En annan fallgrop att se upp för är null värden (en nullsträng är en tom eller icke -existerande sträng). Med tanke på denna fråga:

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

Denna fråga misslyckas tyst. Detta beror på hur sammankoppling internt kodas på din databasmotor. Du kanske inte alltid stöter på det här problemet, men det är ganska vanligt.

Om du tror att data som din fråga returnerar kan vara noll måste du använda en växa samman . Coalesce kan grovt tänkas som 'om detta är noll, ersätt det med den här andra strängen eller kolumnen':

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

Nu vet du hur du använder sammankoppling i SQL, vad ska du göra med det? Kommer du göra en webbplats och liva upp det med SQL? Eller kanske du behöver en statisk webbplatsgenerator för ett enklare sätt att bygga webbplatser.

Vad du än gör, låt oss veta i kommentarerna nedan!

hur man låser upp en förlorad iphone 6
Dela med sig Dela med sig Tweet E-post 6 hörbara alternativ: De bästa gratis eller billiga ljudboksapparna

Om du inte vill betala för ljudböcker, här är några bra appar som låter dig lyssna på dem gratis och lagligt.

Läs Nästa
Relaterade ämnen
  • Programmering
  • Programmering
  • SQL
Om författaren Joe Coburn(136 artiklar publicerade)

Joe är utbildad i datavetenskap från University of Lincoln, Storbritannien. Han är en professionell mjukvaruutvecklare, och när han inte flyger drönare eller skriver musik, kan han ofta hittas ta foton eller producera videor.

Mer från Joe Coburn

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera