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...
TimeLigaMUNDIAISREBAIXTotalTitulosInfoCompleta
São Paulo Futebol ClubeBR3012São Paulo Futebol Clube - BR - 3M - 0R
SantosBR0115Santos - BR - 0M - 1R
CorinthiansBR1110Corinthians - BR - 1M - 1R
PalmeirasBR0218Palmeiras - BR - 0M - 2R
VascoBR049Vasco - 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.

Referências

➡️ Mais artigos…