Slimme manieren om een ​​SQL-aaneenschakelingstekenreeks te gebruiken

Slimme manieren om een ​​SQL-aaneenschakelingstekenreeks te gebruiken

Structured Query Language (SQL) is een opmerkelijk krachtige tool en een die boordevol functies zit. Als je het eenmaal het meest onder de knie hebt belangrijke SQL-opdrachten , kunt u wat creatiever worden met uw SQL. Vandaag laat ik je alles zien wat je moet weten over SQL-aaneenschakelingsstrings.





Er zijn veel verschillende SQL-dialecten. Voor al deze voorbeelden gebruik ik de PostgreSQL variant.





hoe download ik foto's van mijn Samsung-telefoon naar mijn computer?

Wat is aaneenschakeling?

Concatenatie betekent twee dingen samenvoegen. Je hebt het misschien in een programmeertaal gebruikt om twee strings samen te voegen. Misschien heb je een voor- en achternaamvariabelen die je hebt samengevoegd tot een volledige naamvariabele.





Concatenatie is een zeer handige manier om twee strings in één te combineren. PHP gebruikt een punt om strings samen te voegen, terwijl JavaScript en jQuery gebruiken een plusteken.

Aaneenschakeling in SQL werkt precies hetzelfde. U gebruikt een speciale operator om twee dingen samen te voegen tot één. Hier is een voorbeeld in Pseudocode :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

In programmeertalen maakt concatenatie code gemakkelijker leesbaar. Als uw code altijd toegang nodig heeft tot twee strings, maakt het combineren ervan tot één string het gemakkelijker om te onthouden en de lengte van de code te verkorten.

Hoewel variabelen in SQL minder vaak voorkomen (maar nog steeds worden gebruikt), is aaneenschakeling nog steeds nodig om gecombineerde resultaten te retourneren of om gegevens te manipuleren.





Hoe samen te voegen

aaneenschakeling is heel makkelijk in SQL. Hoewel SQL een gemeenschappelijke taal is, implementeren afzonderlijke database-engines functies op verschillende manieren. Hoewel al deze voorbeelden in het PostgreSQL-dialect zijn, is het gemakkelijk om naar andere varianten te vertalen door simpelweg op internet te zoeken naar 'Concatenate .' Verschillende engines kunnen een andere syntaxis hebben voor aaneenschakeling, maar het principe blijft hetzelfde.

Terugkomend op ons naamvoorbeeld, hier is een basis selecteer vraag:





SELECT first_name, last_name, email FROM users_table

Niets ingewikkelds hier, dus laten we de concatenate toevoegen:

SELECT first_name || last_name AS full_name, email FROM users_table

Zoals je kunt zien, heeft deze aaneenschakeling perfect gewerkt, maar er is een klein probleem. De resulterende volledige naam is precies aan elkaar genaaid als het product van beide kolommen - er moet een spatie tussen de namen zijn!

Gelukkig is het eenvoudig op te lossen: voeg eenvoudig een spatie tussen de twee samen:

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

Dit zijn basisvoorbeelden, maar u zou moeten zien hoe aaneenschakeling werkt -- het is echt zo eenvoudig! De pijpoperator ( | ) wordt twee keer gebruikt tussen clausules. Uw SQL-engine weet dat elk deel voor en na dit symbool moet worden samengevoegd en als één moet worden behandeld. Wees echter voorzichtig, als u de concat-operator gebruikt maar niets samenvoegt, krijgt u een foutmelding.

Zoals hierboven vermeld, gebruiken deze voorbeelden de PostgreSQL-variant van SQL. Andere varianten kunnen een andere operator gebruiken, of zelfs een speciale functie die u moet aanroepen. Het maakt niet echt uit hoe je voegt strings aan elkaar, op voorwaarde dat je het doet op de manier die je database-engine verwacht.

Dieper gaan

Nu u de basis kent, laten we eens kijken naar enkele diepgaande voorbeelden, samen met enkele veelvoorkomende valkuilen.

De meeste database-engines zullen met succes een combinatie van strings en integers samenvoegen, misschien zelfs datums. U zult meestal problemen tegenkomen bij het samenvoegen van complexe typen zoals arrays:

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

Deze code zal niet werken. Het is niet mogelijk om strings te combineren met complexe objecten zoals arrays. Als je nadenkt over wat je moet doen, kun je vaak eenvoudige code schrijven die werkt, in plaats van complexe, gekke code die niet werkt.

Als je goed hebt nagedacht over wat je moet doen en de SQL nog steeds niet aan het werk krijgt, heb je dan overwogen om een ​​programmeertaal te gebruiken? Als softwareontwikkelaar die aan verouderde code werkt, ken ik de pijn van het proberen om SQL te debuggen dat iemand zoveel logica erin heeft gepropt dat het een wonder is dat het überhaupt werkt -- als je logica in SQL probeert te schrijven, schakel dan over naar een programmeertaal (er zijn genoeg makkelijke talen om te leren).

Concatenatie werkt heel goed voor: waar ook uitspraken:

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

Er gebeuren hier een paar dingen. In dit voorbeeld, DAG , MAAND , en JAAR zijn parameters die zijn doorgegeven vanuit een script. Misschien zijn deze gegenereerd door code, of ingevoerd door een gebruiker. Deze worden aan elkaar gekoppeld en vervolgens naar een datumtype gecast (met behulp van de PostgreSQL cast-to-date-syntaxis ::datum ).

Door op deze manier aaneenschakeling te gebruiken, kunt u de afzonderlijke delen van een datum aan elkaar koppelen, die vervolgens als een 'echte' datum kunnen worden verwerkt, in plaats van als een string. Vergeet niet dat dit basisvoorbeeld geen bescherming biedt tegen SQL-injectie, dus gebruik het niet in een productiecode zonder wijzigingen aan te brengen.

Een andere valkuil om op te letten is: nul waarden (een null-tekenreeks is een lege of niet-bestaande tekenreeks). Gezien deze vraag:

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

Deze query mislukt stil. Dit komt door de manier waarop aaneenschakeling intern is gecodeerd in uw database-engine. U zult dit probleem misschien niet altijd tegenkomen, maar het komt vrij vaak voor.

Als u denkt dat de gegevens die uw zoekopdracht retourneert mogelijk nul zijn, moet u a . gebruiken samenvloeien . Coalesce kan grofweg worden gezien als 'als dit null is, vervang het dan door deze andere tekenreeks of kolom':

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

Nu u weet hoe u aaneenschakeling in SQL moet gebruiken, wat gaat u ermee doen? Zul je een website maken en het opfleuren met SQL? Of misschien heeft u een statische sitegenerator nodig voor een eenvoudigere benadering van het bouwen van websites.

Wat je ook doet, laat het ons weten in de reacties hieronder!

hoe krijg je filters voor snapchat
Deel Deel Tweeten E-mail 6 hoorbare alternatieven: de beste gratis of goedkope audioboek-apps

Als je geen zin hebt om voor audioboeken te betalen, zijn hier enkele geweldige apps waarmee je gratis en legaal naar ze kunt luisteren.

Lees volgende
Gerelateerde onderwerpen
  • Programmeren
  • Programmeren
  • SQL
Over de auteur Joe Coburn(136 artikelen gepubliceerd)

Joe is afgestudeerd in computerwetenschappen aan de Universiteit van Lincoln, VK. Hij is een professionele softwareontwikkelaar en als hij niet met drones vliegt of muziek schrijft, is hij vaak te vinden om foto's te maken of video's te maken.

Meer van Joe Coburn

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren