Smarta sätt att använda en SQL-sammanbindningssträng

Smarta sätt att använda en SQL-sammanbindningssträng / Programmering

Structured Query Language (SQL) är ett anmärkningsvärt kraftfullt verktyg, och en som är full av funktioner. När du har behärskat de viktigaste SQL-kommandona 13 Viktiga SQL-kommandon Varje programmerare borde veta 13 Viktigaste SQL-kommandon Varje programmerare borde veta Varje stor eller dynamisk webbplats använder en databas på något sätt och i kombination med Structured Query Language (SQL) , möjligheterna att manipulera data är verkligen oändliga. Läs mer, du kan börja bli lite mer kreativ med din SQL. Idag ska jag visa dig allt du behöver veta om SQL-kopplingssträngar.

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

Vad är sammanslagning?

Samkörning innebär att gå med i två saker tillsammans. Du kan ha använt det i ett programmeringsspråk för att ansluta två strängar tillsammans. Kanske har du ett förnamn och efternamn variabler som du gick med ihop som en fullständig namnvariabel.

Sammankoppling är ett mycket användbart sätt att kombinera två strängar till en. PHP använder ett helt stopp för att sammanfoga strängar, medan JavaScript och jQuery En grundläggande guide till JQuery för Javascript-programmerare En grundläggande guide till JQuery för Javascript-programmerare Om du är en Javascript-programmerare, kommer den här guiden till JQuery hjälpa dig att börja kodning som en ninja. Läs mer använda ett plustecken.

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

first_name = Joe last_name = Coburn whole_name = first_name + last_name

I programmeringsspråk gör kodning enklare att läsa. Om din kod alltid behöver komma åt två strängar, kan du kombinera dem med en, vilket gör det enklare att komma ihåg och reducerar kodens längd.

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

Hur man sammanfogar

Sammankoppling är mycket lätt i SQL. Medan SQL är ett gemensamt språk, implementerar enskilda databasmotorer funktioner på olika sätt. Medan alla dessa exempel finns i PostgreSQL-dialekten, är det enkelt att översätta till andra varianter genom att helt enkelt söka på webben för “HOPLÄNKA .” Olika motorer kan ha en annan syntax för sammanlänkning, men principen förblir densamma.

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

VÄLJ förnamn, efternamn, e-post FRÅN users_table

Ingenting komplicerat här, så låt oss lägga till i konkatenatet:

VÄLJ förnamn || Last_name AS full_name, email FROM users_table

Som du kan se har denna sammanlänkning fungerat perfekt, men det finns ett litet problem. Det resulterande fullständiga namnet har sys ihop exakt som produkten av båda kolumnerna - det ska finnas ett mellanslag mellan namnen!

Lyckligtvis är det lätt att fixa: enkelt concat ett mellanslag mellan de två:

VÄLJ förnamn || "|| sista_namn AS full_name, email FROM users_table

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

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 som du måste ringa. Det spelar ingen roll så mycket på vilket sätt du sammanfogar strängar, förutsatt att du gör det på det sätt som din databasmotor väntar.

Går djupare

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

De flesta databasmotorer kommer med framgång att concatera en blandning av strängar och heltal, kanske till och med datum också. Du kommer vanligtvis att gå in i problem när du försöker sammanfoga komplexa typer som arrays:

VÄLJ förnamn || "|| sista_namn || ARRAY [123, 456] AS full_name, email FROM users_table

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

Om du har noggrant tänkt 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 en mjukvaruutvecklare som arbetar med arvskod känner jag smärtan av att försöka felsöka SQL så att någon har proppat så mycket logik in i det är ett konstigt att det körs alls - om du försöker skriva logik i SQL, växla du sedan till en programmering språk (det finns många enkla språk att lära sig 6 enklaste programmeringsspråk att lära sig för nybörjare 6 enklaste programmeringsspråk att lära sig för nybörjare Att lära sig att programmera handlar om att hitta rätt språk lika mycket som det handlar om uppbyggnadsprocessen. Här är de sex bästa enklaste programmeringsspråk för nybörjare. Läs mer).

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

VÄLJ förnamn, efternamn, e-post FRÅN users_table WHERE date_of_birth = ('DAY' || '/' || 'MÅNAD' || '/' || 'ÅR') :: datum

Det händer några saker här. I detta exempel, DAG, MÅNAD, och ÅR är parametrar som har skickats in från ett manus. Kanske har dessa genererats med kod, eller skrivits in av en användare. Dessa sammanfogas tillsammans, och sedan kastas till en datumtyp (med PostgreSQL gjord till datumsyntaxen ::datum).

Med hjälp av sammanlänkning kan du kedja ihop de enskilda delarna av ett datum, som sedan kan bearbetas som en “verklig” datum, i motsats till en sträng. Glöm inte att detta grundläggande exempel inte skyddar mot SQL-injektion. Vad är en SQL-injektion? [MakeUseOf Förklarar] Vad är en SQL-injektion? [MakeUseOf Explains] Världen av Internet-säkerhet plågas med öppna portar, bakdörrar, säkerhetshål, trojaner, maskar, brandväggssårbarheter och en rad andra problem som håller oss alla på tårna varje dag. För privata användare, ... Läs mer, så använd inte det i någon produktionskod utan att ändra.

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

VÄLJ förnamn || "|| NULL AS full_name, email FROM users_table

Denna fråga misslyckas tyst. Detta beror på hur kopplingen är internkodad på din databasmotor. Du kan inte alltid stöta på det här problemet, men det är ganska vanligt förekommande.

Om du tror att uppgifterna som du returnerar kan vara noll, måste du använda en växa samman. Coalesce kan ungefär betraktas som “Om detta är null ersätt det med den här andra strängen eller kolumnen”:

SELECT first_name || "|| COALESCE (NULL," ERROR NULL DATA ") som full_name, email FROM users_table

Nu vet du hur du använder konkatenering i SQL, vad ska du göra med det? Ska du göra en hemsida Hur man gör en hemsida: För nybörjare Hur man gör en hemsida: För nybörjare Idag ska jag styra dig genom processen att göra en komplett webbplats från början. Oroa dig inte om det här låter svårt. Jag leder dig igenom det hela steget. Läs mer och utveckla det med SQL? Eller kanske du behöver en statisk webbplatsgenerator 7 Anledningar att ditch ditt CMS och överväga en statisk webbplatsgenerator 7 skäl att ditch ditt CMS och överväga en statisk webbplatsgenerator Under många år var det svårt för många användare att publicera en webbplats. CMS som WordPress ändrade det, men de kan fortfarande vara förvirrande. Ett annat alternativ är en statisk webbplatsgenerator. Läs mer för ett enklare sätt att bygga webbplatser.

Oavsett vad du gör, låt oss veta i kommentarerna nedan!

Utforska mer om: Programmering, SQL.