Werbung
Strukturierte Abfragesprache (SQL) ist ein bemerkenswert leistungsfähiges Tool voller Funktionen. Sobald Sie am meisten gemeistert haben wichtige SQL-Befehle 13 Die wichtigsten SQL-Befehle, die jeder Programmierer kennen sollteJede große oder dynamische Website verwendet in irgendeiner Weise eine Datenbank, und in Kombination mit SQL (Structured Query Language) sind die Möglichkeiten zur Datenmanipulation wirklich unbegrenzt. Weiterlesen können Sie anfangen, mit Ihrem SQL etwas kreativer zu 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.
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. Möglicherweise haben Sie Vor- und Nachnamenvariablen, die Sie als vollständige Namensvariable zusammengefügt haben.
Die Verkettung ist eine sehr nützliche Methode, um zwei Zeichenfolgen zu einer zu kombinieren. PHP verwendet einen Punkt, um Zeichenfolgen miteinander zu verbinden, während JavaScript und jQuery Ein grundlegendes Handbuch zu JQuery für Javascript-ProgrammiererWenn Sie ein Javascript-Programmierer sind, hilft Ihnen diese Anleitung zu JQuery dabei, wie ein Ninja zu programmieren. Weiterlesen Verwenden Sie ein Pluszeichen.
Die Verkettung in SQL funktioniert genauso. Sie verwenden einen speziellen Operator, um zwei Dinge zu einem zu verbinden. Hier ist ein Beispiel in Pseudocode:
Vorname = Joe. Nachname = Coburn. ganzer_name = vorname + nachname
In Programmiersprachen erleichtert die Verkettung das Lesen von Code. Wenn Ihr Code immer auf zwei Zeichenfolgen zugreifen muss, erleichtert das Kombinieren dieser Zeichenfolgen das Speichern und verringert die Länge des Codes.
Während Variablen in SQL weniger häufig sind (aber immer noch verwendet werden), ist weiterhin eine Verkettung erforderlich, um kombinierte Ergebnisse zurückzugeben oder Daten zu bearbeiten.
Verketten
Verkettung ist sehr einfach in SQL. Während SQL eine gemeinsame Sprache ist, implementieren einzelne Datenbankmodule Funktionen auf unterschiedliche Weise. Während all diese Beispiele im PostgreSQL-Dialekt enthalten sind, ist es einfach, sie in andere Varianten zu übersetzen, indem Sie einfach im Web nach "Verketten" suchen
Zurück zu unserem Namensbeispiel, hier ist eine grundlegende wählen Abfrage:
SELECT Vorname, Nachname, E-Mail FROM Benutzer_Tabelle
Hier gibt es nichts Komplexes. Fügen wir also die Verkettung hinzu:
SELECT Vorname || 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: Konzentrieren Sie einfach ein Leerzeichen zwischen den beiden:
SELECT Vorname || '' || last_name AS full_name, email FROM users_table
Dies sind grundlegende Beispiele, aber Sie sollten sehen, wie Verkettung funktioniert - es ist wirklich so einfach! Der Rohrbetreiber (|) wird zwischen den Klauseln zweimal verwendet. Ihre SQL-Engine weiß, dass jeder Teil vor und nach diesem Symbol zusammengefügt und als einer behandelt werden sollte. Seien Sie jedoch vorsichtig, wenn Sie den Concat-Operator verwenden, aber nichts verketten, wird eine Fehlermeldung angezeigt.
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 Zeichenfolgen, sofern Sie dies so tun, wie es Ihr Datenbankmodul erwartet.
Tiefer gehen
Nachdem Sie die Grundlagen kennen, sehen wir uns einige ausführliche Beispiele sowie einige häufig auftretende Fallstricke an.
Die meisten Datenbank-Engines können eine Mischung aus Zeichenfolgen und Ganzzahlen, möglicherweise sogar Datumsangaben, erfolgreich zusammenfassen. Beim Versuch, komplexe Typen wie Arrays zu verketten, treten normalerweise Probleme auf:
SELECT Vorname || '' || Nachname || ARRAY [123, 456] AS full_name, email FROM users_table
Dieser Code funktioniert nicht. Es ist nicht möglich, Zeichenfolgen mit komplexen Objekten wie Arrays zu kombinieren. Wenn Sie überlegen, was Sie tun müssen, können Sie häufig einfachen Code schreiben, der funktioniert, anstatt komplexen, verrückten Code, der nicht ausgeführt werden kann.
Wenn Sie sorgfältig überlegt haben, was Sie tun müssen, und SQL immer noch nicht zum Laufen bringen können, 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 überfüllt hat Es ist ein Wunder, dass es überhaupt läuft. Wenn Sie versuchen, Logik in SQL zu schreiben, wechseln Sie zu einer Programmiersprache (es gibt viele von leicht zu erlernende Sprachen 6 Einfachste Programmiersprachen für AnfängerBeim Programmieren geht es ebenso darum, die richtige Sprache zu finden wie um den Erbauungsprozess. Hier sind die sechs einfachsten Programmiersprachen für Anfänger. Weiterlesen ).
Verkettung funktioniert sehr gut für wo Aussagen auch:
SELECT Vorname, Nachname, E-Mail FROM Benutzer_Tabelle WHERE Geburtsdatum = ('TAG' || '/' || 'MONAT' || '/' || 'JAHR'):: Datum
Hier passieren einige Dinge. In diesem Beispiel ist TAG, MONAT, und JAHR sind Parameter, die von einem Skript übergeben wurden. Möglicherweise wurden diese durch Code generiert oder von einem Benutzer eingegeben. Diese werden miteinander verkettet und dann in einen Datumstyp umgewandelt (unter Verwendung der PostgreSQL-Syntax zur Umwandlung in Datum ::Datum).
Wenn Sie die Verkettung auf diese Weise verwenden, können Sie die einzelnen Teile eines Datums miteinander verketten, die dann im Gegensatz zu einer Zeichenfolge als „echtes“ Datum verarbeitet werden können. Vergessen Sie nicht, dass dieses grundlegende Beispiel nicht schützt SQL-Injektion Was ist eine SQL-Injection? [MakeUseOf erklärt]Die Welt der Internetsicherheit ist von offenen Ports, Hintertüren, Sicherheitslücken, Trojanern, Würmern, Firewall-Schwachstellen und einer Reihe anderer Probleme geplagt, die uns jeden Tag auf Trab halten. Für private Benutzer ... Weiterlesen Verwenden Sie es also nicht in einem Produktionscode, ohne es zu ändern.
Eine weitere Gefahr, auf die Sie achten sollten, ist Null Werte (eine Nullzeichenfolge ist eine leere oder nicht vorhandene Zeichenfolge). Angesichts dieser Abfrage:
SELECT Vorname || '' || NULL AS full_name, email FROM users_table
Diese Abfrage schlägt stillschweigend fehl. Dies liegt an der Art und Weise, wie die Verkettung in Ihrem Datenbankmodul intern codiert wird. Möglicherweise tritt dieses Problem 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 grob als "Wenn dies null ist, ersetzen Sie es durch diese andere Zeichenfolge oder Spalte" betrachtet werden:
SELECT Vorname || '' || COALESCE (NULL, 'ERROR NULL DATA') AS vollständiger Name, E-Mail FROM users_table
Jetzt wissen Sie, wie man Verkettung in SQL verwendet. Was werden Sie damit machen? Wirst du eine Website erstellen So erstellen Sie eine Website: Für AnfängerHeute werde ich Sie durch den Prozess der Erstellung einer vollständigen Website von Grund auf führen. Mach dir keine Sorgen, wenn das schwierig klingt. Ich werde Sie bei jedem Schritt durch den Weg führen. Weiterlesen und mit SQL beleben? Oder vielleicht brauchen Sie eine statischer Site-Generator 7 Gründe, Ihr CMS aufzugeben und einen statischen Site-Generator in Betracht zu ziehenFür viele Benutzer war es viele Jahre lang schwierig, eine Website zu veröffentlichen. CMSs wie WordPress haben das geändert, aber sie können immer noch verwirrend sein. Eine andere Alternative ist ein statischer Site-Generator. Weiterlesen für einen einfacheren Ansatz beim Erstellen von Websites.
Was auch immer Sie tun, lassen Sie es uns in den Kommentaren unten wissen!
Joe hat einen Abschluss in Informatik von der University of Lincoln, UK. Er ist ein professioneller Softwareentwickler, und wenn er keine Drohnen fliegt oder Musik schreibt, macht er oft Fotos oder produziert Videos.