CodeGym /Corsi /SQL SELF /Formattazione delle stringhe: CONCAT(), UPPER(), LOWER()

Formattazione delle stringhe: CONCAT(), UPPER(), LOWER()

SQL SELF
Livello 5 , Lezione 1
Disponibile

Lavorare con i dati testuali è una parte quotidiana delle attività con i database. Immagina di essere uno sviluppatore di un e-commerce e di avere un database di utenti. Devi mostrare i nomi completi degli utenti per un banner di benvenuto sul sito, tipo: "Benvenuto, Otto Art!". Oppure ti serve standardizzare tutti gli indirizzi email (ad esempio, convertirli in minuscolo). In questi casi, le operazioni sulle stringhe sono indispensabili.

PostgreSQL ti dà strumenti potenti per lavorare con il testo. Oggi vediamo tre strumenti base:

  • CONCAT() — unisce le stringhe.
  • UPPER() — trasforma una stringa in maiuscolo.
  • LOWER() — trasforma una stringa in minuscolo.

Lavorare con la funzione CONCAT()

La funzione CONCAT() ti permette di unire più stringhe in una sola. È super utile se i dati sono in colonne diverse ma vuoi unirli per mostrarli.

Sintassi

CONCAT(string1, string2, ..., stringN)
  • string1, string2, stringN — le stringhe o colonne che vuoi unire.
  • Restituisce una stringa composta da tutti gli argomenti.

Esempio: lavoriamo con i nomi

Supponiamo di avere una tabella students:

first_name last_name
Otto Art
Maria Chi
Anna Pal

Il nostro obiettivo: mostrare i nomi completi degli studenti nel formato "Nome Cognome".

Query:

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

Risultato:

full_name
Otto Art
Maria Chi
Anna Pal

Nota il ' ' tra nome e cognome. È uno spazio che abbiamo aggiunto per separare le stringhe.

Cose da sapere

CONCAT() ignora NULL. Se uno degli argomenti è NULL, viene semplicemente saltato. Se ancora non sai cos'è NULL, tranquillo — ne parleremo più avanti.

Alternativa a CONCAT() — l'operatore ||, tipo:

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

Cambiare il case delle stringhe: UPPER() e LOWER()

Immagina di lavorare con indirizzi email che gli utenti hanno inserito in tutti i modi possibili: ivan@example.com, IVAN@EXAMPLE.COM. Per standardizzare spesso serve:

  • portare il testo a un unico formato prima di confrontarlo (tipo lowercase).
  • evidenziare parole importanti (tipo UPPERCASE per i titoli).

UPPER(): testo in maiuscolo

La funzione UPPER() trasforma il testo in lettere maiuscole.

Sintassi:

UPPER(string)
  • string — la stringa o il nome della colonna di testo.

Esempio:

Nella tabella students abbiamo aggiunto la colonna email:

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

Vogliamo mostrare gli indirizzi email in maiuscolo:

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

Risultato:

email email_upper
otto@example.com OTTO@EXAMPLE.COM
MARIA@EXAMPLE.com MARIA@EXAMPLE.COM
anna.pal@mail.ru ANNA.PAL@MAIL.RU

LOWER(): testo in minuscolo

Allo stesso modo, la funzione LOWER() trasforma il testo in minuscolo.

Sintassi:

LOWER(string)

Esempio:

Portiamo gli indirizzi email in minuscolo:

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

Risultato:

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

Esempi pratici e casi reali

Dai, mettiamo insieme tutto quello che abbiamo visto.

Creare il nome completo in maiuscolo

Query:

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

Risultato:

full_name_upper
OTTO ART
MARIA CHI
ANNA PAL

Qui abbiamo usato la funzione CONCAT() per unire nome e cognome, e UPPER() per portarli in maiuscolo.

Esempio: standardizzare gli indirizzi email

Vogliamo portare tutti gli indirizzi email allo stesso formato — minuscolo:

UPDATE students
SET email = LOWER(email);

Ora tutti gli indirizzi email nella tabella sono uguali, indipendentemente dal case originale.

Come funziona l'operatore UPDATE lo vedrai nelle prossime lezioni.

Preparare un messaggio di benvenuto per gli utenti

Aggiungiamo ai nomi completi il messaggio "Benvenuto":

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

Risultato:

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

Errori tipici quando lavori con le funzioni sulle stringhe

Se ti dimentichi lo spazio in CONCAT(), il risultato può essere strano. Ad esempio:

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

Il risultato sarà: "OttoArt", "MariaChi". Ricordati sempre di aggiungere lo spazio dove serve.

Uso di NULL. Se uno degli argomenti di CONCAT() è NULL, la stringa può risultare incompleta. Ad esempio:

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

Se middle_name = NULL, il risultato sarà "Otto NULL Art". Per evitarlo, puoi usare la funzione COALESCE():

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

Scoprirai di più su NULL e sulla funzione COALESCE() nelle prossime lezioni :P

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