Clevere Möglichkeiten, eine SQL-Verkettungszeichenfolge zu verwenden

Clevere Möglichkeiten, eine SQL-Verkettungszeichenfolge zu verwenden

Strukturierte Abfragesprache (SQL) ist ein bemerkenswert leistungsfähiges Werkzeug, das voller Funktionen steckt. Sobald du das meiste gemeistert hast wichtige SQL-Befehle , können Sie mit Ihrer SQL etwas kreativer werden. Heute zeige ich Ihnen alles, was Sie über SQL-Verkettungszeichenfolgen wissen müssen.





Es gibt viele verschiedene SQL-Dialekte. Für all diese Beispiele verwende ich die PostgreSQL Variante.





Wie lade ich Bilder von meinem Samsung-Telefon auf meinen Computer herunter?

Was ist Verkettung?

Verkettung bedeutet, zwei Dinge miteinander zu verbinden. Möglicherweise haben Sie es in einer Programmiersprache verwendet, um zwei Zeichenfolgen miteinander zu verbinden. Vielleicht haben Sie Vorname- und Nachname-Variablen, die Sie zu einer vollständigen Namensvariablen zusammengefügt haben.





Die Verkettung ist eine sehr nützliche Methode, um zwei Zeichenfolgen zu einer zu kombinieren. PHP verwendet einen Punkt, um Saiten zusammenzufügen, während JavaScript und jQuery verwenden ein Pluszeichen.

Die Verkettung in SQL funktioniert genau gleich. Sie verwenden einen speziellen Operator, um zwei Dinge zu einem zu verbinden. Hier ist ein Beispiel in Pseudocode :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

In Programmiersprachen erleichtert die Verkettung das Lesen von Code. Wenn Ihr Code immer auf zwei Zeichenfolgen zugreifen muss, können Sie sich diese zu einer zusammenfassen und die Länge des Codes reduzieren.

Während Variablen in SQL weniger verbreitet sind (aber immer noch verwendet werden), ist eine Verkettung immer noch erforderlich, um kombinierte Ergebnisse zurückzugeben oder Daten zu bearbeiten.





Wie man verkettet

Verkettung ist sehr einfach in SQL. Obwohl SQL eine gemeinsame Sprache ist, implementieren einzelne Datenbank-Engines Funktionen auf unterschiedliche Weise. Obwohl alle diese Beispiele im PostgreSQL-Dialekt sind, können Sie sie leicht in andere Varianten übersetzen, indem Sie einfach im Internet nach 'Concatenate' suchen. Verschiedene Engines können eine unterschiedliche Syntax für die Verkettung haben, aber das Prinzip bleibt gleich.

Zurück zu unserem Namensbeispiel, hier ist eine grundlegende auswählen Anfrage:





SELECT first_name, last_name, email FROM users_table

Nichts Komplexes hier, also fügen wir in der Verkettung hinzu:

SELECT first_name || last_name AS full_name, email FROM users_table

Wie Sie sehen, hat diese Verkettung perfekt funktioniert, aber es gibt ein kleines Problem. Der resultierende vollständige Name wurde genau wie das Produkt beider Spalten zusammengefügt – zwischen den Namen sollte ein Leerzeichen stehen!

Glücklicherweise ist es einfach zu beheben: Verketten Sie einfach ein Leerzeichen zwischen den beiden:

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

Dies sind grundlegende Beispiele, aber Sie sollten sehen, wie die Verkettung funktioniert – es ist wirklich so einfach! Der Rohrbetreiber ( | ) wird zweimal zwischen den Klauseln verwendet. Ihre SQL-Engine weiß, dass jeder Teil vor und nach diesem Symbol zusammengefügt und als ein Teil behandelt werden sollte. Seien Sie jedoch vorsichtig, wenn Sie den Concat-Operator verwenden, aber nichts verketten, erhalten Sie eine Fehlermeldung.

Wie oben erwähnt, verwenden diese Beispiele die PostgreSQL-Variante von SQL. Andere Varianten verwenden möglicherweise einen anderen Operator oder sogar eine spezielle Funktion, die Sie aufrufen müssen. Es ist nicht wirklich wichtig wie Sie verketten Strings, vorausgesetzt, Sie tun es so, wie es Ihre Datenbank-Engine erwartet.

Tiefer gehen

Nachdem Sie nun die Grundlagen kennen, sehen wir uns einige ausführliche Beispiele sowie einige häufige Fallstricke an.

Die meisten Datenbank-Engines werden erfolgreich eine Mischung aus Strings und Integern verketten, vielleicht auch Datumsangaben. Sie werden normalerweise auf Probleme stoßen, wenn Sie versuchen, komplexe Typen wie Arrays zu verketten:

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

Dieser Code wird nicht funktionieren. Es ist nicht möglich, Strings mit komplexen Objekten wie Arrays zu kombinieren. Wenn Sie darüber nachdenken, was Sie tun müssen, können Sie oft einfachen Code schreiben, der funktioniert, anstatt komplexen, verrückten Code, der nicht ausgeführt werden kann.

Wenn Sie sorgfältig darüber nachgedacht haben, was Sie tun müssen, und das SQL immer noch nicht zum Laufen bringen, haben Sie dann überlegt, eine Programmiersprache zu verwenden? Als Softwareentwickler, der an Legacy-Code arbeitet, kenne ich den Schmerz beim Versuch, SQL zu debuggen, dass jemand so viel Logik hineingestopft hat, dass es ein Wunder ist, dass es überhaupt läuft – wenn Sie versuchen, Logik in SQL zu schreiben, wechseln Sie zu a Programmiersprache (es gibt viele leicht zu erlernende Sprachen).

Verkettung funktioniert sehr gut für wo auch aussagen:

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

Hier passiert einiges. In diesem Beispiel, TAG , MONAT , und JAHR sind Parameter, die von einem Skript übergeben wurden. Möglicherweise wurden diese per Code generiert oder von einem Benutzer eingegeben. Diese werden miteinander verkettet und dann in einen Datumstyp umgewandelt (unter Verwendung der PostgreSQL-Cast-to-Date-Syntax ::Datum ).

Durch diese Verkettung können Sie die einzelnen Teile eines Datums verketten, die dann als „echtes“ Datum verarbeitet werden können, im Gegensatz zu einem String. Vergessen Sie nicht, dass dieses grundlegende Beispiel nicht vor SQL-Injection schützt. Verwenden Sie es also nicht in Produktionscode, ohne es zu ändern.

Eine weitere Falle, auf die Sie achten sollten, ist Null Werte (ein Null-String ist ein leerer oder nicht vorhandener String). Angesichts dieser Abfrage:

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

Diese Abfrage schlägt stillschweigend fehl. Dies liegt an der Art und Weise, wie die Verkettung intern in Ihrer Datenbank-Engine codiert ist. Dieses Problem tritt möglicherweise nicht immer auf, aber es kommt häufig vor.

Wenn Sie der Meinung sind, dass die von Ihrer Abfrage zurückgegebenen Daten möglicherweise null sind, müssen Sie a . verwenden verschmelzen . Coalesce kann man sich grob so vorstellen: 'Wenn dies null ist, ersetze es durch diese andere Zeichenfolge oder Spalte':

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

Jetzt wissen Sie, wie man die Verkettung in SQL verwendet, was werden Sie damit tun? Wirst du eine Website erstellen und beleben Sie es mit SQL? Oder vielleicht benötigen Sie einen statischen Site-Generator für einen einfacheren Ansatz zum Erstellen von Websites.

Was auch immer Sie tun, lassen Sie es uns in den Kommentaren unten wissen!

100 der verwendeten Festplatte Windows 10
Teilen Teilen Tweet Email 6 Audible-Alternativen: Die besten kostenlosen oder günstigen Hörbuch-Apps

Wenn Sie nicht für Hörbücher bezahlen möchten, finden Sie hier einige großartige Apps, mit denen Sie sie kostenlos und legal anhören können.

Weiter lesen
Verwandte Themen
  • Programmierung
  • Programmierung
  • SQL
Über den Autor Joe Coburn(136 veröffentlichte Artikel)

Joe hat einen Abschluss in Informatik an der University of Lincoln, Großbritannien. Er ist ein professioneller Softwareentwickler und wenn er nicht gerade Drohnen fliegt oder Musik schreibt, ist er oft beim Fotografieren oder Videoproduzieren anzutreffen.

Mehr von Joe Coburn

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren