Lavorare con database relazionali significa spesso gestire dati disordinati. Una delle sfide più comuni è pulire ed elaborare i dati testuali. Per fortuna, SQL offre potenti funzioni sulle stringhe che rendono questo processo molto più efficiente, facendoti risparmiare tempo e fatica.
In questo articolo esploreremo le funzioni stringa SQL più importanti che possono aiutarti a pulire e manipolare i dati testuali con facilità. Iniziamo!
Cosa sono le funzioni stringa in SQL?
Le funzioni stringa in SQL sono funzioni integrate che ci permettono di manipolare ed elaborare i dati testuali memorizzati in un database. Esempi comuni di campi testuali includono nomi, descrizioni e indirizzi.
Queste funzioni possono essere usate per svolgere un’ampia gamma di attività, tra cui:
Concatenare stringhe
Formattare il testo
Estrarre parti di una stringa
Cercare e sostituire testo specifico all’interno di una stringa
Concatenare stringhe in SQL
Possiamo concatenare due o più stringhe usando la funzione concat():
SELECT CONCAT('Street Roma',', ','72',', ','Padova')AS full_addressOfferto da
Questo è l’output:
full_address |-----------------------+
Street Roma,72, Padova|Offerto da
Questa funzione è ampiamente usata per combinare informazioni fornite da colonne diverse, come nomi e indirizzi.
In alternativa, puoi anche usare la funzioneCONCAT_WS():
SELECT CONCAT_WS(',','Street Roma','72','Padova')as full_addressOfferto da
Dalla sintassi, puoi notare che è più semplice ed efficiente nelle situazioni in cui vuoi combinare più di due colonne con lo stesso separatore.
Formattare il testo
Esistono diverse funzioni stringa SQL per sistemare il testo modificando il maiuscolo/minuscolo, rimuovendo spazi aggiuntivi e altre operazioni. Ogni funzione è elencata con la sua sintassi e la relativa descrizione.
Sintassi della funzione
Descrizione
LOWER(string)
Restituisce il testo con tutti i caratteri in minuscolo
UPPER(string)
Restituisce il testo con tutti i caratteri in maiuscolo
TRIM(string, [character])
Rimuove per impostazione predefinita gli spazi bianchi sia a sinistra sia a destra della stringa; rimuove un carattere speciale se specificato
LTRIM(string, [character])
Rimuove per impostazione predefinita gli spazi bianchi a sinistra della stringa; rimuove un carattere speciale se specificato
RTRIM(string, [character])
Rimuove per impostazione predefinita gli spazi bianchi a destra della stringa; rimuove un carattere speciale se specificato
Ora vediamo alcuni esempi per capire come applicare queste funzioni. Immagina di avere indirizzi email con lettere maiuscole e la sigla dello stato in minuscolo, e di voler correggere il formato di queste colonne.
email |country|-------------------+-------+
anonymous@gmail.com|IT |Offerto da
Oltre a modificare il maiuscolo/minuscolo, può essere utile eliminare gli spazi bianchi all’inizio o alla fine delle stringhe. La funzione principale per questo tipo di operazione èTRIM()per rimuovere da entrambi i lati. Altre alternative sonoLTRIM() e RTRIM()per eliminare rispettivamente gli spazi a sinistra e a destra:
SELECT TRIM(' Street Roma, 72 ')AS trimmed_address,
LTRIM(' Street Roma, 72 ')AS ltrimmed_address,
RTRIM(' Street Roma, 72 ')AS rtrimmed_addressOfferto da
La query restituisce il seguente risultato:
trimmed_address|ltrimmed_address|rtrimmed_address|---------------+----------------+----------------+
Street Roma,72|Street Roma,72| Street Roma,72|Offerto da
Dall’output puoi cogliere le differenze tra ciascuna funzione. Inoltre, TRIM() può essere usata per rimuovere altri caratteri speciali, oltre agli spazi. Ad esempio, vogliamo pulire il campo del telefono eliminando il segno +:
Come puoi vedere, il numero di telefono è completamente pulito.
Estrarre testo
Dopo aver concatenato e modificato il formato delle stringhe, è il momento di scoprire come estrarre testo usando la funzione SQL speciale SUBSTRING(). Vediamo diversi esempi per padroneggiare questa funzione:
SELECT
SUBSTRING('Antony',1,1)AS first_character,
SUBSTRING('Antony',1,3)AS first_3characters,
SUBSTRING('Antony',1,5)AS first_5charactersOfferto da
Questo è l’output:
first_character|first_3characters|first_5characters|---------------+-----------------+-----------------+
A |Ant |Anton |Offerto da
Possiamo anche combinare questa funzione con le precedenti per mettere in maiuscolo la prima lettera, convertire il resto in minuscolo e poi concatenare tutte le lettere:
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 nameOfferto da
Questa query restituisce il seguente risultato:
lenght_name|first_character|LAST_characters|name |-----------+---------------+---------------+------+6|A |ntony |Antony|Offerto da
Oltre alle funzioni viste finora, puoi notare la funzione LENGTH() che aiuta a estrarre la lunghezza della stringa. In questo contesto, è utile per specificare l’indice dell’ultimo carattere.
Cercare e sostituire stringhe in SQL
Vediamo le funzioni principali per cercare e sostituire stringhe:
Sintassi della funzione
Descrizione
REPLACE(string,x,y)
Sostituisce il valore x nella stringa con il valore y
CHARINDEX(x,string)
Trova la posizione del valore x all’interno della stringa
Una funzione molto utile è REPLACE() per sostituire una sottostringa con un’altra all’interno della stringa:
SELECT'Street Roma - 32'AS address,replace('Street Roma - 32','-',',')AS cleaned_addressOfferto da
Questo è l’output:
address |cleaned_address |----------------+----------------+
Street Roma -32|Street Roma ,32|Offerto da
In questo caso, abbiamo semplicemente sostituito un trattino con una virgola all’interno dell’indirizzo. Possiamo anche provare a trovare la posizione del trattino all’interno dell’indirizzo:
SELECT'Street Roma - 32'AS address,
LENGTH('Street Roma - 32')AS length_address,
CHARINDEX('-','Street Roma - 32')AS location_dashOfferto da
La query restituisce il seguente risultato:
address |length_address|location_dash|----------------+--------------+-------------+
Street Roma -32|16|13|Offerto da
Possiamo notare che il simbolo - si trova in posizione 13 dell’indirizzo, quasi alla fine della stringa.
Conclusione
Padroneggiare queste funzioni stringa SQL può fare la differenza nel pulire i dati in modo efficiente. Ovviamente, l’articolo non copre tutte le funzioni, ma solo un breve elenco delle più importanti. Non tutte le funzioni SQL sono sempre valide e possono variare a seconda del tipo di database che stai usando. Per esempio, CHARINDEX può essere sostituita da LOCATE() in un database MySQL.
Per fare pratica con queste funzioni, dai un’occhiata al nostro Reporting in SQL Course. Può aiutarti a diventare un esperto nella pulizia dei dati e nella creazione di report complessi. Ti consigliamo anche il percorso di competenze SQL Fundamentals per coprire tutti gli aspetti essenziali di SQL.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Impara i fondamenti dell'SQL necessari per il business, impara a scrivere query SQL e inizia ad analizzare i tuoi dati utilizzando questo potente linguaggio.
Lavorare con database relazionali significa spesso gestire dati disordinati. Una delle sfide più comuni è pulire ed elaborare i dati testuali. Per fortuna, SQL offre potenti funzioni sulle stringhe che rendono questo processo molto più efficiente, facendoti risparmiare tempo e fatica.
In questo articolo esploreremo le funzioni stringa SQL più importanti che possono aiutarti a pulire e manipolare i dati testuali con facilità. Iniziamo!
Cosa sono le funzioni stringa in SQL?
Le funzioni stringa in SQL sono funzioni integrate che ci permettono di manipolare ed elaborare i dati testuali memorizzati in un database. Esempi comuni di campi testuali includono nomi, descrizioni e indirizzi.
Queste funzioni possono essere usate per svolgere un’ampia gamma di attività, tra cui:
Concatenare stringhe in SQL
Possiamo concatenare due o più stringhe usando la funzione
concat():Questo è l’output:
Questa funzione è ampiamente usata per combinare informazioni fornite da colonne diverse, come nomi e indirizzi.
In alternativa, puoi anche usare la funzione
CONCAT_WS():Dalla sintassi, puoi notare che è più semplice ed efficiente nelle situazioni in cui vuoi combinare più di due colonne con lo stesso separatore.
Formattare il testo
Esistono diverse funzioni stringa SQL per sistemare il testo modificando il maiuscolo/minuscolo, rimuovendo spazi aggiuntivi e altre operazioni. Ogni funzione è elencata con la sua sintassi e la relativa descrizione.
Sintassi della funzione
Descrizione
Restituisce il testo con tutti i caratteri in minuscolo
Restituisce il testo con tutti i caratteri in maiuscolo
Rimuove per impostazione predefinita gli spazi bianchi sia a sinistra sia a destra della stringa; rimuove un carattere speciale se specificato
Rimuove per impostazione predefinita gli spazi bianchi a sinistra della stringa; rimuove un carattere speciale se specificato
Rimuove per impostazione predefinita gli spazi bianchi a destra della stringa; rimuove un carattere speciale se specificato
Ora vediamo alcuni esempi per capire come applicare queste funzioni. Immagina di avere indirizzi email con lettere maiuscole e la sigla dello stato in minuscolo, e di voler correggere il formato di queste colonne.
Questo è il seguente output:
Oltre a modificare il maiuscolo/minuscolo, può essere utile eliminare gli spazi bianchi all’inizio o alla fine delle stringhe. La funzione principale per questo tipo di operazione è
TRIM()per rimuovere da entrambi i lati. Altre alternative sonoLTRIM()eRTRIM()per eliminare rispettivamente gli spazi a sinistra e a destra:La query restituisce il seguente risultato:
Dall’output puoi cogliere le differenze tra ciascuna funzione. Inoltre,
TRIM()può essere usata per rimuovere altri caratteri speciali, oltre agli spazi. Ad esempio, vogliamo pulire il campo del telefono eliminando il segno +:L’output restituito è il seguente:
Come puoi vedere, il numero di telefono è completamente pulito.
Estrarre testo
Dopo aver concatenato e modificato il formato delle stringhe, è il momento di scoprire come estrarre testo usando la funzione SQL speciale SUBSTRING(). Vediamo diversi esempi per padroneggiare questa funzione:
Questo è l’output:
Possiamo anche combinare questa funzione con le precedenti per mettere in maiuscolo la prima lettera, convertire il resto in minuscolo e poi concatenare tutte le lettere:
Questa query restituisce il seguente risultato:
Oltre alle funzioni viste finora, puoi notare la funzione
LENGTH()che aiuta a estrarre la lunghezza della stringa. In questo contesto, è utile per specificare l’indice dell’ultimo carattere.Cercare e sostituire stringhe in SQL
Vediamo le funzioni principali per cercare e sostituire stringhe:
Sintassi della funzione
Descrizione
Sostituisce il valore x nella stringa con il valore y
Trova la posizione del valore x all’interno della stringa
Una funzione molto utile è
REPLACE()per sostituire una sottostringa con un’altra all’interno della stringa:Questo è l’output:
In questo caso, abbiamo semplicemente sostituito un trattino con una virgola all’interno dell’indirizzo. Possiamo anche provare a trovare la posizione del trattino all’interno dell’indirizzo:
La query restituisce il seguente risultato:
Possiamo notare che il simbolo
-si trova in posizione 13 dell’indirizzo, quasi alla fine della stringa.Conclusione
Padroneggiare queste funzioni stringa SQL può fare la differenza nel pulire i dati in modo efficiente. Ovviamente, l’articolo non copre tutte le funzioni, ma solo un breve elenco delle più importanti. Non tutte le funzioni SQL sono sempre valide e possono variare a seconda del tipo di database che stai usando. Per esempio,
CHARINDEXpuò essere sostituita daLOCATE()in un database MySQL.Per fare pratica con queste funzioni, dai un’occhiata al nostro Reporting in SQL Course. Può aiutarti a diventare un esperto nella pulizia dei dati e nella creazione di report complessi. Ti consigliamo anche il percorso di competenze SQL Fundamentals per coprire tutti gli aspetti essenziali di SQL.