CodeGym /Cursos /SQL SELF /Exemplos de formatação de dados em tarefas reais

Exemplos de formatação de dados em tarefas reais

SQL SELF
Nível 5, Lição 4
Disponível

Um dos cenários mais comuns quando a gente trabalha com banco de dados é preparar dados pra relatórios. Imagina a situação: você trabalha numa universidade e seu chefe (que, claro, não manja nada de SQL) pede pra você criar uma lista de estudantes juntando nome e sobrenome, e ainda mostrar a data de nascimento no formato DD-MM-YYYY. A missão tá clara: deixar os dados bonitões. E SQL é nosso parceiro fiel nessa hora.

Exemplo 1: Juntando nome e sobrenome

Bora começar juntando o nome (first_name) e o sobrenome (last_name) dos estudantes da nossa tabela students.

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

O que tá rolando aqui?

  • CONCAT() junta strings. A gente coloca um espaço entre o nome e o sobrenome pra ficar mais legível.
  • O resultado vai pra uma nova coluna chamada full_name.

O resultado pode ficar assim:

full_name
Otto Art
Anna Song
Pol Mac

Exemplo 2: Formatando data

Agora vamos adicionar a formatação da data de nascimento na nossa query.

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date
FROM 
    students;

O que tem de novo aqui:

  • A gente usa a função TO_CHAR() no campo birth_date.
  • O formato 'DD-MM-YYYY' deixa a data num jeito mais amigável (tipo: 25-12-2001).

Resultado:

full_name formatted_birth_date
Otto Art 12-04-1995
Anna Song 03-08-1996
Pol Mac 21-11-1997

Voilà! Você acabou de criar um relatório bonitão.

Formatação pra exportar dados

Imagina que um colega seu quer exportar os dados dos pedidos pra um arquivo CSV pra mexer no Excel depois. Mas os dados no banco tão num formato ruim pra ele, e o pessoal de vendas quer ver de um jeito específico. Por exemplo, em vez do campo total_price com o valor do pedido, eles querem ver assim: $100.00.

Exemplo 3: Convertendo números pra formato de moeda

Vamos ajeitar os dados dos pedidos da tabela orders pra exportação:

SELECT
    order_id,
    TO_CHAR(total_price, 'FM$999,999.00') AS formatted_price
FROM 
    orders;

O que o TO_CHAR() faz aqui?

  • FM (Fill Mode) tira os espaços extras.
  • $ coloca o símbolo de moeda.
  • 999,999.00 define o formato com separador de milhar e duas casas decimais.

Resultado:

order_id formatted_price
1 $1,000.00
2 $2,500.50
3 $10.00

Agora seu colega pode importar os dados no Excel de boa e ainda te elogiar na reunião.

Desafio final

Agora começa a parte mais legal. Bora juntar tudo que você já aprendeu.

Desafio

Crie uma query pra tabela students que:

  1. Junta nome e sobrenome numa coluna só chamada full_name.
  2. Converte a data de nascimento pro formato DD-MM-YYYY.
  3. Mostra a idade do estudante na data de hoje.

A query vai ficar mais ou menos assim:

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date,
    DATE_PART('year', AGE(birth_date)) AS age
FROM 
    students;

Novidades aqui:

  • AGE(birth_date) retorna o intervalo entre hoje e a data de nascimento, mas no formato de anos, meses e dias.
  • DATE_PART('year', AGE(birth_date)) pega só a quantidade de anos desse intervalo.

Resultado:

full_name formatted_birth_date age
Otto Art 12-04-1995 28
Anna Song 03-08-1996 27
Pol Mac 21-11-1997 25

Esse relatório vai agradar até os colegas mais chatos.

Formatação pra condições específicas

Às vezes a gente precisa formatar dados pra criar condições ou filtrar. Por exemplo, pegar estudantes que fazem aniversário no mês atual.

Exemplo 4: Filtrando por mês

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date
FROM 
    students
WHERE 
    DATE_PART('month', birth_date) = DATE_PART('month', CURRENT_DATE);

Como isso funciona?

  • DATE_PART('month', birth_date) pega o mês da data de nascimento.
  • CURRENT_DATE traz a data de hoje. A gente pega o mês dela com DATE_PART().

Juntando formatação e ordenação

Agora vamos juntar tudo que aprendemos e adicionar ordenação. Por exemplo, criar uma lista de estudantes ordenados pela data de nascimento.

Exemplo 5: Ordenando por data de nascimento

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date
FROM 
    students
ORDER BY 
    birth_date ASC;

Ordenando em ordem crescente ASC mostra primeiro os estudantes mais velhos, e em ordem decrescente DESC — os mais novos.

Juntando com valores únicos

Pra fechar — um desafio com estrelinha. Imagina que nossa universidade tem filiais em várias cidades, e você precisa criar uma lista das cidades únicas onde os estudantes estudam, mas em ordem alfabética.

Exemplo 6: Valores únicos e ordenação

SELECT DISTINCT
    city 
FROM 
    students
ORDER BY 
    city ASC;

O que o DISTINCT faz?

Ele tira os valores repetidos, então cada cidade aparece só uma vez no resultado.

Pra que serve tudo isso?

Praticidade e beleza. Quando os dados estão bem apresentados, fica muito mais fácil trabalhar com eles e o chefe para de encher o saco.

Preparação pra vida real. Você vai conseguir gerar relatórios automáticos, trabalhar com exportações e montar apresentações maneiras.

Valoriza seu passe. SQL não é só sobre dados. É sobre deixar tudo claro e útil pra galera.

Usa essas dicas pra não só escrever queries, mas criar verdadeiras obras de arte! Nas próximas aulas a gente vai mergulhar ainda mais na magia do PostgreSQL.

2
Tarefa
SQL SELF, nível 5, lição 4
Bloqueado
Concatenação de colunas e formatação de strings
Concatenação de colunas e formatação de strings
2
Tarefa
SQL SELF, nível 5, lição 4
Bloqueado
Formatando números no formato de moeda
Formatando números no formato de moeda
1
Pesquisa/teste
Formatação de strings, nível 5, lição 4
Indisponível
Formatação de strings
Formatação de strings
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION