
SQL com estilo
O tempo vai passando, e acabo me “convencendo” a escrever e ler melhor instruções na linguagem de consulta estruturada — sim a representação da sigla SQL para Structured Query Language.
Seja em projetos pessoais e profissionais, gosto muito de aprender e melhorar cada detalhe. Gosto mais ainda de compartilhar conhecimento. Isso é o que realmente nos conecta.
Imagine Blocos
Códigos são blocos com instruções. Trechos, instruções, scripts… no final tudo será convertido num linguição de bits por um computador. — Esse termo veio daqui 🎲. To aqui defendendo a experiencia do desenvolvedor, então a melhor coisa é oferecer um código limpo e de fácil manutenção.
-- Boas vindas a tortura visual
SeLeCt top 5 t.TeamName AS Time,t.League as Liga,t.Mundiais AS MUNDIAIS,t.Relegation as REBAIX,t.Coalesce(CAST(coUNT(tt.Id) AS varchar),'0') AS TotalTitulos,t.TeamName+' - '+t.League+' - '+cast(t.Mundiais As varchar)+'M - '+CAST(t.Relegation AS vaRchar)+'R' AS InfoCompleta FROM footballTeams t LEFT join titles tt ON tt.TeamId=t.Id where t.League='BR' group BY t.TeamName,t.League,t.Mundiais,t.Relegation order BY t.Mundiais DESC,t.Relegation asc
Uma tabela HTML sofrendo por aqui...
Time | Liga | MUNDIAIS | REBAIX | TotalTitulos | InfoCompleta |
---|---|---|---|---|---|
São Paulo Futebol Clube | BR | 3 | 0 | 12 | São Paulo Futebol Clube - BR - 3M - 0R |
Santos | BR | 0 | 1 | 15 | Santos - BR - 0M - 1R |
Corinthians | BR | 1 | 1 | 10 | Corinthians - BR - 1M - 1R |
Palmeiras | BR | 0 | 2 | 18 | Palmeiras - BR - 0M - 2R |
Vasco | BR | 0 | 4 | 9 | Vasco - BR - 0M - 4R |
Eu confesso, já escrevi muito código ruim e sem formatação. Repeti padrões, haviam limitações, pressões e o conhecimento de fácil acesso não era tão rápido como hoje em dia.
Aplicando estilo e padrão
Temos que começar de algum lugar. Quebre o problema em pedaços menores:
Deixa eu ver o código...
-- Analise com um editor como VS CODE ou com IA.
-- Aqui você já ganha com a identificação por cores
SeLeCt top 5 t.TeamName AS Time,t.League as Liga,t.Mundiais AS MUNDIAIS,t.Relegation as REBAIX,t.Coalesce(CAST(coUNT(tt.Id) AS varchar),'0') AS TotalTitulos,t.TeamName+' - '+t.League+' - '+cast(t.Mundiais As varchar)+'M - '+CAST(t.Relegation AS vaRchar)+'R' AS InfoCompleta FROM footballTeams t LEFT join titles tt ON tt.TeamId=t.Id where t.League='BR' group BY t.TeamName,t.League,t.Mundiais,t.Relegation order BY t.Mundiais DESC,t.Relegation asc
Aplicando o Vertical Styling
ou Estilização Vertical
, onde a cada inicio de comando, há uma quebra de linha.
Deixa eu ver o código...
-- Opa, consigo ver ali o nome das colunas
-- e qual é a tabela principal
SeLeCt top 5
t.TeamName AS Time,
t.League as Liga,
t.Mundiais AS MUNDIAIS,
t.Relegation as REBAIX,
t.Coalesce(CAST(coUNT(tt.Id) AS varchar),'0') AS TotalTitulos,
t.TeamName+' - '+t.League+' - '+cast(t.Mundiais As varchar)+'M - '+CAST(t.Relegation AS vaRchar)+'R' AS InfoCompleta
FROM
footballTeams t
LEFT join
titles tt ON tt.TeamId=t.Id
where t.League='BR'
group BY t.TeamName,t.League,t.Mundiais,t.Relegation
order BY t.Mundiais DESC,t.Relegation asc
Refatorando, buscando padronizar palavras chave e comandos em MAIÚSCULO. Colunas com a inicial em Maiúsculo.
Deixa eu ver o código...
-- A tortura já não funciona mais...
-- não tanto. 😄
SELECT TOP 5
Teams.TeamName AS "Time",
Teams.League AS Liga,
Teams.Mundiais AS Mundiais,
Teams.Relegation AS Relegation,
Teams.Coalesce(CAST(COUNT(ChampionshipTitles.Id) AS VARCHAR),'0') AS Titulos,
Teams.TeamName + ' - ' + Teams.League + ' - ' + CAST(Teams.Mundiais AS VARCHAR)+'M - '+CAST(Teams.Relegation AS VARCHAR)+'R' AS InfoCompleta
FROM
FootballTeams AS Teams
LEFT JOIN
Titles AS ChampionshipTitles ON ChampionshipTitles.TeamId = Teams.Id
WHERE
Teams.League = 'BR'
GROUP BY
Teams.TeamName,
Teams.League,
Teams.Mundiais,
Teams.Relegation
ORDER BY
Teams.Mundiais DESC,
Teams.Relegation ASC
Analisando com calma, limpando dados desnecessários da query
, indentando e ajustando o nome das colunas na tabela.
Deixa eu ver o código...
-- ✅ Sensação de vitória
SELECT TOP 5
Teams.TeamName AS [Time],
Teams.League AS Liga,
Teams.WorldChampionships AS Mundiais,
COALESCE(COUNT(ChampionshipTitles.Id), 0) AS Conquistas,
Teams.Relegation AS Quedas
FROM
Teams
LEFT JOIN
ChampionshipTitles ON ChampionshipTitles.TeamId = Teams.Id
WHERE
Teams.League = 'BR'
GROUP BY
Teams.TeamName,
Teams.League,
Teams.WorldChampionships,
Teams.Relegation
ORDER BY
Teams.WorldChampionships DESC,
Teams.Relegation ASC
Pra finalizar, um ajuste mais elegante naquela primeira tabela HTML lá de cima (adicionei até um CSS extra 😃).
Deixa eu ver o a tabela HTML...
Time | Liga | Mundiais | Conquistas | Quedas |
---|---|---|---|---|
São Paulo | BR | 3 | 12 | 0 |
Corinthians | BR | 1 | 10 | 1 |
Santos | BR | 0 | 15 | 1 |
Palmeiras | BR | 0 | 18 | 2 |
Vasco | BR | 0 | 9 | 4 |
É isso, agora posso descansar em paz. Se você gostou desse post, pode conferir mais algumas aplicações no meu projeto pessoal de convenções sql.