Bora começar com uma verdade meio óbvia, mas super importante: dados, por si só, geralmente são meio "crus". Um monte de número, data ou string jogado na sua cara é difícil de entender. Imagina um relatório onde as datas aparecem em formatos diferentes: uma tá tipo 01/02/2023 e outra 2023-02-01. Isso confunde até quem manja muito de análise. É aí que entra a mágica da formatação de dados.
Formatação de dados serve pra:
- Transformar os dados num formato fácil de entender, o que deixa tudo mais simples de trabalhar.
- Virar um hacker de dados, pegando rapidão só o que interessa.
- Preparar os dados pra exportação ou integração com outros sistemas.
- Deixar relatórios e visualizações legíveis e certeiros.
Imagina que tu trabalha numa universidade e precisa montar um relatório listando todos os estudantes com nome completo, data de nascimento e faculdade. Em vez de juntar tudo na mão, tu faz uma query formatando, que junta nome e sobrenome numa coluna só e mostra a data de nascimento de um jeito que todo mundo entende, tipo 12 de março de 2001.
Tarefas principais de formatação de dados
Formatação é tipo montar uma salada de frutas. Não é só jogar tudo na tigela, tem que cortar bonito e arrumar legal no prato. No SQL, isso se divide em alguns tipos de tarefa:
Formatação de strings
Pode ser juntar strings, mudar maiúsculas/minúsculas, tirar ou colocar espaços e caracteres.
Formatação de números
Às vezes é útil transformar número em string ou arredondar pra um certo número de casas decimais.
Trabalhando com datas e horários
Aqui dá pra automatizar coisas tipo pegar a data de hoje, formatar datas/horas ou extrair só uma parte da data (tipo só o ano ou só o mês).
Pegar valores únicos
Se teu relatório precisa mostrar só registros únicos (tipo cidades ou faculdades diferentes), isso também é formatação de dados.
Ferramentas de formatação no PostgreSQL
Pra mexer com dados, o PostgreSQL tem um monte de função pronta. Olha só um resumo do que a gente vai ver nas próximas aulas:
Formatação de strings
CONCAT(): junta strings.UPPER(),LOWER(): muda o texto pra maiúsculo ou minúsculo.
Formatação de datas e horários
NOW(): data e hora atual.CURRENT_DATE: só a data de hoje (sem hora).DATE_PART(): pega partes da data, tipo ano ou mês.
Conversão de tipos
CAST(): muda o tipo do dado.- Sintaxe:
<valor>::<tipo>.
Ordenação de dados
ORDER BY: ordena os dados por uma ou mais colunas.DISTINCT: pega só valores únicos.
Exemplo de formatação de dados: como fica na prática?
Pra te animar, bora ver uns exemplos. Começando pelo básico.
Exemplo 1: Formatação de string
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM students;
Essa query junta first_name e last_name numa coluna só chamada full_name. Tipo, se o nome do estudante é "Otto" e o sobrenome é "Art", o resultado vai ser: "Otto Art".
Exemplo 2: Formatação de data
SELECT DATE_PART('year', date_of_birth) AS birth_year
FROM students;
Aqui a gente pega só o ano de nascimento da coluna date_of_birth. Se a data de nascimento no banco for 2001-03-15, o resultado vai ser 2001.
Exemplo 3: Conversão de tipos
SELECT birth_year::text || ' ano' AS formatted_year
FROM (
SELECT DATE_PART('year', date_of_birth) AS birth_year
FROM students
) subquery;
Nessa query, primeiro a gente pega o ano de nascimento, depois transforma em string e ainda cola o texto " ano". Por exemplo, o resultado vai ser: 2001 ano.
Onde isso é usado?
Relatórios pra gerentes
Nem todo mundo quer ver dado "cru". Tipo, num relatório de faturamento da empresa, é melhor mostrar os valores com separador de milhar (1,000,000 em vez de 1000000), e datas no formato 21 FEV 2025.
Relatórios pra clientes
Tipo, um e-mail pro cliente dizendo: "Prezado [Nome Sobrenome], seu pedido N123 foi entregue com sucesso em 12 de outubro de 2023".
Integração com outros sistemas
Alguns formulários exigem um formato específico: datas no padrão ISO, strings com o case certo, números arredondados.
Análise e visualização
Imagina que tu vai montar gráficos ou diagramas. Sem formatação, eles podem ficar bem estranhos.
GO TO FULL VERSION