Direkt zum Hauptinhalt springen
eLearner.app
Modul 6 · Lektion 1 von 421/57 im Kurs~12 min
Lektionen des Moduls (1/4)

String-Funktionen

PostgreSQL verfügt über Dutzende Funktionen zum Bearbeiten von Zeichenfolgen. In dieser Lektion Wir betrachten die in der Praxis am häufigsten vorkommenden: Normalisieren (LOWER/UPPER), Messen (LENGTH), Komponieren (|| / CONCAT), Extrahieren (SUBSTRING), Bereinigen (TRIM), Ersetzen (REPLACE) und Mustersuche (LIKE / ILIKE).

Die Funktionen, die wir verwenden werden

SQL
LOWER('Alice')                -- 'alice'
UPPER('alice')                -- 'ALICE'
LENGTH('alice')               -- 5
'a' || 'b'                    -- 'ab'  (concatenazione)
CONCAT('a', 'b', 'c')         -- 'abc' (versione "funzione")
SUBSTRING('hello' FROM 2 FOR 3) -- 'ell'
TRIM(' alice ')               -- 'alice'
REPLACE('foo bar', 'bar','x') -- 'foo x'

|| ist der Standard-SQL-Operator zum Verketten von Zeichenfolgen. CONCAT ist freizügiger (es ignoriert NULLs, während || sie weitergibt: 'a' || NULLNULL).

LIKE und ILIKE: Suche nach Muster

LIKE sucht nach einem Muster: % = eine beliebige Sequenz, _ = eine einzelne Charakter. Es wird Groß-/Kleinschreibung beachtet. ILIKE ist das PostgreSQL Variante ohne Berücksichtigung der Groß- und Kleinschreibung:

SQL
WHERE name LIKE  '%Cuffie%'   -- match esatto "Cuffie"
WHERE name ILIKE '%cuffie%'   -- match anche "CUFFIE", "Cuffie", "cuffie"
WHERE email LIKE  '%@example.com'
WHERE first_name LIKE 'A_____'  -- inizia per A, lungo 6 (A + 5 caratteri)

Um innerhalb des Musters nach einem Literal % oder _ zu suchen, verwenden Sie ESCAPE:

SQL
WHERE titolo LIKE '%50\%%' ESCAPE '\';   -- contiene "50%"

Funktionen kombinieren

Funktionen setzen sich wie in jeder Sprache zusammen:

SQL
-- Email "normalizzata" e iniziali in maiuscolo:
SELECT LOWER(email) AS email_norm,
       UPPER(SUBSTRING(first_name FROM 1 FOR 1)) || '.'
       || UPPER(SUBSTRING(last_name  FROM 1 FOR 1)) || '.' AS iniziali
FROM   customers
ORDER BY id;

Probieren Sie es aus

Übung#sql.m6.l1.e1
Versuche: 0Wird geladen…

Geben Sie für jeden Kunden die E-Mail-Adresse in Kleinbuchstaben (Spalte „E-Mail“) und den vollständigen Namen als „Vorname Nachname“ (Spalte „Vollständiger Name“) an. Nach ID bestellen.

Editor wird geladen…
Hinweis anzeigen

LOWER für die erste Spalte, || mit einem Leerzeichen dazwischen verketten.

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#sql.m6.l1.e2
Versuche: 0Wird geladen…

Finden Sie alle Produkte, die das Wort „Laptop“ (auf jeden Fall) im Namen enthalten. Nur die Namensspalte anzeigen. Nach Namen bestellen.

Editor wird geladen…
Hinweis anzeigen

Bei ILIKE wird die Groß-/Kleinschreibung nicht beachtet. Verwenden Sie „%laptop%“, um „laptop“ an einer beliebigen Position zu finden.

Lösung nach 3 Versuchen verfügbar