CodeGym /Cursos /SQL SELF /Trabalhando com strings: LENGTH(), SUBSTRING(), TRIM(), P...

Trabalhando com strings: LENGTH(), SUBSTRING(), TRIM(), POSITION(), REPLACE(), INITCAP()

SQL SELF
Nível 6 , Lição 0
Disponível

Quando você trabalha com nomes, endereços, emails ou qualquer outro texto — quase sempre precisa fazer uma dessas coisas:

  • Extrair parte da string
  • Saber o tamanho
  • Remover espaços desnecessários
  • Encontrar/trocar um pedaço
  • Formatar a saída

Por exemplo, você pode precisar:

  • Mostrar só o sobrenome do nome completo.
  • Achar estudantes cujo sobrenome começa com "P".
  • Trocar todos os espaços por underline.
  • Mostrar o sobrenome com a primeira letra maiúscula.

Tudo isso dá pra resolver fácil usando funções de string do PostgreSQL.

LENGTH() — tamanho da string

A função LENGTH() retorna a quantidade de caracteres na string.

Sintaxe:

LENGTH(string)

Exemplo:

SELECT name, LENGTH(name) AS name_length
FROM students;
name name_length
Art 3
Song 4
Pal 3

Útil pra checar tamanho de nome completo, senhas e outros textos.

SUBSTRING() — extrair parte da string

Permite pegar uma substring — tipo, os 3 primeiros caracteres do sobrenome ou o domínio do email.

Sintaxe:

SUBSTRING(string FROM start FOR length)
  • start — posição do primeiro caractere (começa do 1)
  • length — quantos caracteres pegar

Exemplo 1: os 3 primeiros caracteres do sobrenome

SELECT last_name, SUBSTRING(last_name FROM 1 FOR 3) AS prefix
FROM students;
last_name prefix
Song Son
Pal Pal

Exemplo 2: domínio do email

SELECT email, SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM students;
email domain
otto@example.com example.com
maria@gmail.com gmail.com

TRIM() — remover espaços extras

Remove espaços (e outros caracteres) no começo e/ou no fim da string.

Sintaxe:

TRIM([LEADING | TRAILING | BOTH] chars FROM string)

Mas na real, quase sempre você usa assim:

TRIM(string)

Exemplo:

SELECT '[' || TRIM('   Art   ') || ']' AS cleaned;
cleaned
[Art]

É importante principalmente quando o usuário digita dados manualmente (tipo, com espaço no começo).

POSITION() — buscar substring

Retorna a posição onde começa a substring.

Sintaxe:

POSITION(substring IN string)

Exemplo:

SELECT email, POSITION('@' IN email) AS at_position
FROM students;
email at_position
otto@example.com 5
anna.pal@gmail.com 9

Dá pra usar junto com SUBSTRING() pra extrair partes da string.

REPLACE() — trocar substring

Troca todas as ocorrências de uma substring por outra.

Sintaxe:

REPLACE(string, from_substring, to_substring)

Exemplo: trocar espaços por underline

SELECT name, REPLACE(name, ' ', '_') AS fixed_name
FROM students;
name fixed_name
Otto Art Otto_Art
Maria Chi Maria_Chi

INITCAP() — primeira letra maiúscula

Transforma a string pra que a primeira letra de cada palavra fique maiúscula e o resto minúsculo.

Sintaxe:

INITCAP(string)

Exemplo:

SELECT INITCAP('anna pal') AS full_name;
full_name
Anna Pal

Bem útil pra padronizar nomes completos.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION