Bei der Arbeit mit relationalen Datenbanken müssen wir oft mit unordentlichen Daten umgehen. Eine der häufigsten Herausforderungen ist die Reinigung und Verarbeitung von Textdaten. Zum Glück gibt es in SQL leistungsstarke String-Funktionen, die diesen Prozess viel effizienter machen und dir Zeit und Mühe sparen.
In diesem Artikel stellen wir dir die wichtigsten SQL-String-Funktionen vor, mit denen du Textdaten ganz einfach bereinigen und manipulieren kannst. Lass uns loslegen!
Was sind SQL String-Funktionen?
SQL-String-Funktionen sind integrierte Funktionen, mit denen wir in einer Datenbank gespeicherte Textdaten manipulieren und verarbeiten können. Übliche Beispiele für Textfelder sind Namen, Beschreibungen und Adressen.
Mit diesen Funktionen kannst du eine Vielzahl von Aufgaben erledigen, z. B:
Zeichenketten verketten
Text formatieren
Extraktion von Teilen einer Zeichenkette
Suchen und Ersetzen von bestimmtem Text innerhalb einer Zeichenfolge
Verkettung von Zeichenketten in SQL
Mit der Funktion concat() können wir zwei oder mehr Strings verketten:
SELECT CONCAT('Street Roma',', ','72',', ','Padova')AS full_addressBereitgestellt von
Das ist die Ausgabe:
full_address |-----------------------+
Street Roma,72, Padova|Bereitgestellt von
Diese Funktion wird häufig verwendet, um Informationen aus verschiedenen Spalten, wie Namen und Adressen, zu kombinieren.
Alternativ kannst du auch die FunktionCONCAT_WS() verwenden:
SELECT CONCAT_WS(',','Street Roma','72','Padova')as full_addressBereitgestellt von
An der Syntax kannst du erkennen, dass es einfacher und effizienter ist, wenn du mehr als zwei Spalten mit demselben Trennzeichen kombinieren willst.
Text formatieren
Dies sind verschiedene SQL-Stringfunktionen, mit denen du Text anpassen kannst, indem du die Groß- und Kleinschreibung änderst, zusätzliche Leerzeichen entfernst und andere Operationen ausführst. Jede Funktion ist mit ihrer Syntax und der entsprechenden Beschreibung aufgeführt.
Funktion Syntax
Beschreibung
LOWER(string)
Gibt den Text mit allen Zeichen in Kleinbuchstaben zurück
UPPER(string)
Gibt den Text mit allen Zeichen in Großbuchstaben zurück
TRIM(string, [Zeichen])
Entfernt standardmäßig Leerzeichen von der linken und rechten Seite der Zeichenkette, Sonderzeichen, wenn angegeben
LTRIM(string, [Zeichen])
Entfernt standardmäßig Leerzeichen von der linken Seite des Strings, Sonderzeichen, wenn angegeben
RTRIM(string, [Zeichen])
Entfernt standardmäßig Leerzeichen von der rechten Seite des Strings, Sonderzeichen, wenn angegeben
Um zu verstehen, wie man diese Funktionen anwendet, zeigen wir dir jetzt einige Beispiele. Stell dir vor, du hast E-Mail-Adressen mit Großbuchstaben und das Bundeslandkürzel in Kleinbuchstaben, und du möchtest das Format dieser Spalten ändern und korrigieren.
email |country|-------------------+-------+
anonymous@gmail.com|IT |Bereitgestellt von
Neben der Änderung der Groß- und Kleinschreibung kann es auch nützlich sein, Leerzeichen am Anfang oder am Ende von Zeichenfolgen zu entfernen. Die Hauptfunktion bei dieser Art von Operation istTRIM()von beiden Seiten zu entfernen. Andere Alternativen sindLTRIM() und RTRIM(), um Leerzeichen auf der linken bzw. rechten Seite zu löschen:
SELECT TRIM(' Street Roma, 72 ')AS trimmed_address,
LTRIM(' Street Roma, 72 ')AS ltrimmed_address,
RTRIM(' Street Roma, 72 ')AS rtrimmed_addressBereitgestellt von
Die Abfrage liefert das folgende Ergebnis:
trimmed_address|ltrimmed_address|rtrimmed_address|---------------+----------------+----------------+
Street Roma,72|Street Roma,72| Street Roma,72|Bereitgestellt von
Anhand der Ausgabe kannst du die Unterschiede zwischen den einzelnen Funktionen erkennen. Außerdem können mit TRIM() neben Leerzeichen auch andere Sonderzeichen entfernt werden. Wir wollen zum Beispiel das Feld des Telefons bereinigen, indem wir das + Zeichen entfernen:
Wie du sehen kannst, ist die Telefonnummer völlig sauber.
Text extrahieren
Nach der Verkettung und Änderung des Formats der Strings ist es an der Zeit, herauszufinden, wie man mit der speziellen SQL-Funktion SUBSTRING() Text extrahieren kann. Lass uns verschiedene Beispiele zeigen, um diese Funktion zu beherrschen:
SELECT
SUBSTRING('Antony',1,1)AS first_character,
SUBSTRING('Antony',1,3)AS first_3characters,
SUBSTRING('Antony',1,5)AS first_5charactersBereitgestellt von
Das ist die Ausgabe:
first_character|first_3characters|first_5characters|---------------+-----------------+-----------------+
A |Ant |Anton |Bereitgestellt von
Wir können diese Funktion auch mit den vorherigen Funktionen kombinieren, um den ersten Buchstaben groß zu schreiben, den Rest der Buchstaben in Kleinbuchstaben umzuwandeln und dann alle Buchstaben zu verketten:
SELECT
LENGTH('antony')AS lenght_name,
SUBSTRING(UPPER('antony'),1,1)AS first_character,
SUBSTRING(LOWER('antony'),2,LENGTH('antony'))AS last_characters,
CONCAT(SUBSTRING(UPPER('antony'),1,1),SUBSTRING(LOWER('antony'),2,LENGTH('antony')))AS nameBereitgestellt von
Diese Abfrage liefert das folgende Ergebnis:
lenght_name|first_character|LAST_characters|name |-----------+---------------+---------------+------+6|A |ntony |Antony|Bereitgestellt von
Zusätzlich zu den bisher gesehenen Funktionen gibt es die Funktion LENGTH(), mit der du die Länge der Zeichenkette ermitteln kannst. In diesem Zusammenhang ist es sinnvoll, den Index des letzten Zeichens anzugeben.
Suchen und Ersetzen von Zeichenketten in SQL
Wir können die wichtigsten Funktionen zum Suchen und Ersetzen von Zeichenketten zeigen:
Funktion Syntax
Beschreibung
REPLACE(string,x,y)
Ersetze den x-Wert in der Zeichenkette durch den y-Wert
CHARINDEX(x,string)
Finde die Position des x-Wertes innerhalb der Zeichenkette
Eine sehr nützliche Funktion ist REPLACE(), um eine Teilzeichenkette durch eine andere Teilzeichenkette innerhalb der Zeichenkette zu ersetzen:
SELECT'Street Roma - 32'AS address,replace('Street Roma - 32','-',',')AS cleaned_addressBereitgestellt von
Das ist die Ausgabe:
address |cleaned_address |----------------+----------------+
Street Roma -32|Street Roma ,32|Bereitgestellt von
In diesem Fall haben wir einfach einen Bindestrich durch ein Komma in der Adresse ersetzt. Wir können auch versuchen, die Position des Bindestrichs in der Adresse zu finden:
SELECT'Street Roma - 32'AS address,
LENGTH('Street Roma - 32')AS length_address,
CHARINDEX('-','Street Roma - 32')AS location_dashBereitgestellt von
Die Abfrage liefert das folgende Ergebnis:
address |length_address|location_dash|----------------+--------------+-------------+
Street Roma -32|16|13|Bereitgestellt von
Wir können feststellen, dass das Symbol - an Position 13 der Adresse steht, meistens am Ende der Zeichenkette.
Fazit
Die Beherrschung dieser SQL-String-Funktionen kann den Unterschied bei der effizienten Datenbereinigung ausmachen. Natürlich geht der Artikel nicht auf alle Funktionen ein, sondern nur auf eine kurze Liste mit den wichtigsten Funktionen. Nicht alle SQL-Funktionen sind immer gültig und können sich je nach Art der Datenbank, die du verwendest, ändern. Zum Beispiel kann CHARINDEX in einer MySQL-Datenbank durch LOCATE() ersetzt werden.
Um mit diesen Funktionen zu üben, kannst du dir unsere Berichte in SQL Kurs besuchen. Es kann dir helfen, ein Experte im Bereinigen von Daten und Erstellen komplexer Berichte zu werden. Wir empfehlen auch die SQL-Grundlagen Lernpfad, der alle wesentlichen Aspekte von SQL abdeckt.
Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Beherrsche die SQL-Grundlagen für den Berufsalltag, lerne SQL-Abfragen zu schreiben und beginne, deine Daten mit dieser leistungsstarken Sprache zu analysieren.
Bei der Arbeit mit relationalen Datenbanken müssen wir oft mit unordentlichen Daten umgehen. Eine der häufigsten Herausforderungen ist die Reinigung und Verarbeitung von Textdaten. Zum Glück gibt es in SQL leistungsstarke String-Funktionen, die diesen Prozess viel effizienter machen und dir Zeit und Mühe sparen.
In diesem Artikel stellen wir dir die wichtigsten SQL-String-Funktionen vor, mit denen du Textdaten ganz einfach bereinigen und manipulieren kannst. Lass uns loslegen!
Was sind SQL String-Funktionen?
SQL-String-Funktionen sind integrierte Funktionen, mit denen wir in einer Datenbank gespeicherte Textdaten manipulieren und verarbeiten können. Übliche Beispiele für Textfelder sind Namen, Beschreibungen und Adressen.
Mit diesen Funktionen kannst du eine Vielzahl von Aufgaben erledigen, z. B:
Verkettung von Zeichenketten in SQL
Mit der Funktion
concat()können wir zwei oder mehr Strings verketten:Das ist die Ausgabe:
Diese Funktion wird häufig verwendet, um Informationen aus verschiedenen Spalten, wie Namen und Adressen, zu kombinieren.
Alternativ kannst du auch die Funktion
CONCAT_WS()verwenden:An der Syntax kannst du erkennen, dass es einfacher und effizienter ist, wenn du mehr als zwei Spalten mit demselben Trennzeichen kombinieren willst.
Text formatieren
Dies sind verschiedene SQL-Stringfunktionen, mit denen du Text anpassen kannst, indem du die Groß- und Kleinschreibung änderst, zusätzliche Leerzeichen entfernst und andere Operationen ausführst. Jede Funktion ist mit ihrer Syntax und der entsprechenden Beschreibung aufgeführt.
Funktion Syntax
Beschreibung
Gibt den Text mit allen Zeichen in Kleinbuchstaben zurück
Gibt den Text mit allen Zeichen in Großbuchstaben zurück
Entfernt standardmäßig Leerzeichen von der linken und rechten Seite der Zeichenkette, Sonderzeichen, wenn angegeben
Entfernt standardmäßig Leerzeichen von der linken Seite des Strings, Sonderzeichen, wenn angegeben
Entfernt standardmäßig Leerzeichen von der rechten Seite des Strings, Sonderzeichen, wenn angegeben
Um zu verstehen, wie man diese Funktionen anwendet, zeigen wir dir jetzt einige Beispiele. Stell dir vor, du hast E-Mail-Adressen mit Großbuchstaben und das Bundeslandkürzel in Kleinbuchstaben, und du möchtest das Format dieser Spalten ändern und korrigieren.
Dies ist die folgende Ausgabe:
Neben der Änderung der Groß- und Kleinschreibung kann es auch nützlich sein, Leerzeichen am Anfang oder am Ende von Zeichenfolgen zu entfernen. Die Hauptfunktion bei dieser Art von Operation ist
TRIM()von beiden Seiten zu entfernen. Andere Alternativen sindLTRIM()undRTRIM(), um Leerzeichen auf der linken bzw. rechten Seite zu löschen:Die Abfrage liefert das folgende Ergebnis:
Anhand der Ausgabe kannst du die Unterschiede zwischen den einzelnen Funktionen erkennen. Außerdem können mit
TRIM()neben Leerzeichen auch andere Sonderzeichen entfernt werden. Wir wollen zum Beispiel das Feld des Telefons bereinigen, indem wir das + Zeichen entfernen:Die Ausgabe sieht wie folgt aus:
Wie du sehen kannst, ist die Telefonnummer völlig sauber.
Text extrahieren
Nach der Verkettung und Änderung des Formats der Strings ist es an der Zeit, herauszufinden, wie man mit der speziellen SQL-Funktion SUBSTRING() Text extrahieren kann. Lass uns verschiedene Beispiele zeigen, um diese Funktion zu beherrschen:
Das ist die Ausgabe:
Wir können diese Funktion auch mit den vorherigen Funktionen kombinieren, um den ersten Buchstaben groß zu schreiben, den Rest der Buchstaben in Kleinbuchstaben umzuwandeln und dann alle Buchstaben zu verketten:
Diese Abfrage liefert das folgende Ergebnis:
Zusätzlich zu den bisher gesehenen Funktionen gibt es die Funktion
LENGTH(), mit der du die Länge der Zeichenkette ermitteln kannst. In diesem Zusammenhang ist es sinnvoll, den Index des letzten Zeichens anzugeben.Suchen und Ersetzen von Zeichenketten in SQL
Wir können die wichtigsten Funktionen zum Suchen und Ersetzen von Zeichenketten zeigen:
Funktion Syntax
Beschreibung
Ersetze den x-Wert in der Zeichenkette durch den y-Wert
Finde die Position des x-Wertes innerhalb der Zeichenkette
Eine sehr nützliche Funktion ist
REPLACE(), um eine Teilzeichenkette durch eine andere Teilzeichenkette innerhalb der Zeichenkette zu ersetzen:Das ist die Ausgabe:
In diesem Fall haben wir einfach einen Bindestrich durch ein Komma in der Adresse ersetzt. Wir können auch versuchen, die Position des Bindestrichs in der Adresse zu finden:
Die Abfrage liefert das folgende Ergebnis:
Wir können feststellen, dass das Symbol
-an Position 13 der Adresse steht, meistens am Ende der Zeichenkette.Fazit
Die Beherrschung dieser SQL-String-Funktionen kann den Unterschied bei der effizienten Datenbereinigung ausmachen. Natürlich geht der Artikel nicht auf alle Funktionen ein, sondern nur auf eine kurze Liste mit den wichtigsten Funktionen. Nicht alle SQL-Funktionen sind immer gültig und können sich je nach Art der Datenbank, die du verwendest, ändern. Zum Beispiel kann
CHARINDEXin einer MySQL-Datenbank durchLOCATE()ersetzt werden.Um mit diesen Funktionen zu üben, kannst du dir unsere Berichte in SQL Kurs besuchen. Es kann dir helfen, ein Experte im Bereinigen von Daten und Erstellen komplexer Berichte zu werden. Wir empfehlen auch die SQL-Grundlagen Lernpfad, der alle wesentlichen Aspekte von SQL abdeckt.