CodeGym /Kurse /SQL SELF /String-Formatierung: CONCAT(), UPPER(), LOWER()

String-Formatierung: CONCAT(), UPPER(), LOWER()

SQL SELF
Level 5 , Lektion 1
Verfügbar

Mit Textdaten zu arbeiten ist Alltag, wenn du mit Datenbanken zu tun hast. Stell dir vor, du bist Entwickler in einem Online-Shop und hast eine User-Datenbank. Du willst vollständige Namen der Nutzer für ein Willkommensbanner auf der Website anzeigen, zum Beispiel: "Willkommen, Otto Art!". Oder du willst alle E-Mail-Adressen standardisieren (z.B. alles in Kleinbuchstaben umwandeln). Ohne String-Operationen geht da gar nichts.

PostgreSQL gibt dir richtig starke Tools für Textbearbeitung. Heute schauen wir uns drei Hauptfunktionen an:

  • CONCAT() — Strings zusammenfügen.
  • UPPER() — String in Großbuchstaben umwandeln.
  • LOWER() — String in Kleinbuchstaben umwandeln.

Arbeiten mit der Funktion CONCAT()

Mit CONCAT() kannst du mehrere Strings zu einem zusammenfügen. Das ist super praktisch, wenn die Daten in verschiedenen Spalten liegen, du sie aber zusammen anzeigen willst.

Syntax

CONCAT(string1, string2, ..., stringN)
  • string1, string2, stringN — Strings oder Spalten, die du zusammenfügen willst.
  • Gibt einen String zurück, der aus allen Argumenten besteht.

Beispiel: Namen bearbeiten

Angenommen, wir haben eine Tabelle students:

first_name last_name
Otto Art
Maria Chi
Anna Pal

Unsere Aufgabe: Die vollständigen Namen der Studenten im Format "Vorname Nachname" anzeigen.

Query:

SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM students;

Ergebnis:

full_name
Otto Art
Maria Chi
Anna Pal

Achte auf das ' ' zwischen Vor- und Nachname. Das ist das Leerzeichen, das wir zum Trennen der Strings eingefügt haben.

Besonderheiten

CONCAT() ignoriert NULL. Wenn eins der Argumente NULL ist, wird es einfach übersprungen. Falls du noch nicht weißt, was NULL ist – keine Sorge, das kommt noch später dran.

Alternative zu CONCAT() ist der Operator ||, zum Beispiel:

SELECT first_name || ' ' || last_name AS full_name FROM students;

Groß-/Kleinschreibung ändern: UPPER() und LOWER()

Stell dir vor, du hast E-Mail-Adressen, die die User in allen möglichen Schreibweisen eingegeben haben: ivan@example.com, IVAN@EXAMPLE.COM. Um das zu standardisieren, macht man oft folgendes:

  • Text vor dem Vergleich in eine einheitliche Form bringen (z.B. lowercase).
  • Wichtige Wörter hervorheben (z.B. UPPERCASE für Überschriften).

UPPER(): Text in Großbuchstaben

Die Funktion UPPER() macht aus deinem Text alles Großbuchstaben.

Syntax:

UPPER(string)
  • string — ein String oder der Name einer Textspalte.

Beispiel:

In der Tabelle students gibt es jetzt eine Spalte email:

first_name last_name email
Otto Art otto@example.com
Maria Chi MARIA@EXAMPLE.com
Anna Pal anna.pal@mail.ru

Wir wollen die E-Mail-Adressen in Großbuchstaben anzeigen:

SELECT email, UPPER(email) AS email_upper
FROM students;

Ergebnis:

email email_upper
otto@example.com OTTO@EXAMPLE.COM
MARIA@EXAMPLE.com MARIA@EXAMPLE.COM
anna.pal@gmail.com ANNA.PAL@GMAIL.COM

LOWER(): Text in Kleinbuchstaben

Genauso macht LOWER() alles zu Kleinbuchstaben.

Syntax:

LOWER(string)

Beispiel:

Wir bringen die E-Mail-Adressen in Kleinbuchstaben:

SELECT email, LOWER(email) AS email_lower
FROM students;

Ergebnis:

email email_lower
otto@example.com otto@example.com
MARIA@EXAMPLE.com maria@example.com
anna.pal@gmail.com anna.pal@gmail.com

Praktische Beispiele und Use Cases

Lass uns alles Gelernte kombinieren.

Vollständiger Name in Großbuchstaben

Query:

SELECT CONCAT(UPPER(first_name), ' ', UPPER(last_name)) AS full_name_upper
FROM students;

Ergebnis:

full_name_upper
OTTO ART
MARIA CHI
ANNA PAL

Hier haben wir CONCAT() benutzt, um Vor- und Nachname zusammenzufügen, und UPPER(), um alles in Großbuchstaben zu bringen.

Beispiel: E-Mail-Adressen standardisieren

Wir wollen alle E-Mail-Adressen in Kleinbuchstaben bringen:

UPDATE students
SET email = LOWER(email);

Jetzt sehen alle E-Mail-Adressen in der Tabelle gleich aus, egal wie sie ursprünglich geschrieben wurden.

Wie der UPDATE-Operator funktioniert, lernst du in den nächsten Vorlesungen.

Willkommensgruß für Nutzer vorbereiten

Wir fügen zu den vollständigen Namen ein "Willkommen" hinzu:

SELECT CONCAT('Willkommen, ', first_name, ' ', last_name, '!') AS greeting
FROM students;

Ergebnis:

greeting
Willkommen, Otto Art!
Willkommen, Maria Chi!
Willkommen, Anna Pal!

Typische Fehler bei Textfunktionen

Wenn du das Leerzeichen in CONCAT() vergisst, sieht das Ergebnis komisch aus. Zum Beispiel:

SELECT CONCAT(first_name, last_name) AS full_name
FROM students;

Das Ergebnis wäre: "OttoArt", "MariaChi". Also immer das Leerzeichen an die richtige Stelle setzen.

Verwendung von NULL. Wenn eins der Argumente von CONCAT() NULL ist, kann der String unvollständig sein. Zum Beispiel:

SELECT CONCAT(first_name, ' ', middle_name, ' ', last_name) AS full_name
FROM students;

Wenn middle_name = NULL ist, bekommst du "Otto NULL Art" als Ergebnis. Um das zu vermeiden, kannst du die Funktion COALESCE() nutzen:

SELECT CONCAT(first_name, ' ', COALESCE(middle_name, ''), ' ', last_name) AS full_name
FROM students;

Mehr zu NULL und COALESCE() gibt's in den nächsten Vorlesungen :P

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION