Select count SQL: entenda como usar essa função no SQL (select count(*), count(1) e count(nome)

Se você quer aprender como usar o comando count no SQL para contar registros, linhas ou valores não nulos em uma tabela, este artigo traz exemplos práticos com select count(*), count(1) e count(nome).
Descubra como a função count SQL é aplicada na prática, diferença entre os comandos e como garantir contagem correta de registros no banco de dados.
SQL SELECT e função count()
Quando vamos usar count no banco de dados nos deparamos com várias opções do SQL. Conheça as diferenças entre as várias possibilidades de contar linhas em uma tabela usando count.

Como contar linhas no SQL com select count(): exemplos práticos
Muitas pessoas buscam uma maneira simples de utilizar o comando SQL select count para obter o total de registros de uma tabela. Veja como aplicar select count(*) from tabela na prática.
Por exemplo, imagine que quero verificar quantos produtos estão cadastrados em uma empresa:
select count(nome) from Produtos;
> 198No entanto, observe a diferença ao contar outro campo:
select count(id) from Produtos;
> 200Esse resultado pode causar estranhamento: por que a contagem é diferente? SQL pirou?
select id, nome from Produtos where nome is null;
> 190, null
> 196, nullO que é select count SQL? Como usar a função count para contar registros e valores no banco de dados
O select count verifica o número de linhas (conta as linhas) não nulas dentro do count que você quer fazer! Se tinha nome nulo, não contou! Resultado? Zoou.
Como usar count no SQL para contar apenas valores não nulos
Muito cuidado com seus counts. Então o que devo contar? Se você quer contar valores não nulos, use o count(campo), como fizemos no exemplo abaixo:
select count(nome) from Produtos;
> 198Como usar select count(*) no SQL para contar todos os registros da tabela
Mas se quer contar todas as linhas, inclusive aquelas com valores nulos, utilize count(*) para não correr risco. Esse comando vai contar o número de registros retornados, independentemente de valores nulos:
select count(*) from Produtos;
> 200O que é count(1) no SQL? Diferença entre count(*), count(1) e count(campo)
E quanto ao count(1)? Para que serve essa opção?
select count(1) from Produtos;
> 200O count(1) funciona de forma idêntica ao count() - ambos contam todas as linhas da tabela.
Em bancos modernos (MySQL, PostgreSQL, SQL Server), o otimizador de queries converte COUNT(1) em COUNT() internamente, resultando no mesmo plano de execução e performance equivalente.
A preferência por COUNT(*) se dá pela clareza: ele indica explicitamente que está contando todas as linhas, tornando o código mais legível para outros desenvolvedores.
Desafio: count(), count (*) e count (1)
Como disse, eu prefiro usar o count(*)... e você, conta estrelas, conta um ou conta id?
Fica agora o desafio: qual o resultado da SQL a seguir?
select count(1) from Produtos;
> 200Resposta esperada: 0 (zero). Mesmo que existam linhas onde nome é NULL, COUNT(nome) sempre ignora valores NULL. Portanto, ao filtrar apenas por linhas NULL e contar um campo NULL, o resultado será sempre zero.
Se você quer contar quantas linhas TÊM valor NULL em nome, use: SELECT COUNT(*) FROM Produtos WHERE nome IS NULL.
Desenvolva-se no assunto:
Desenvolva suas habilidades em SQL e aprenda a trabalhar com dados de forma mais precisa e estratégica.
Domine funções essenciais como COUNT(), entenda como os dados realmente se comportam no banco e evite erros comuns que podem impactar suas análises.
Com uma base sólida em consultas e manipulação de dados, você evolui com mais confiança para atuar em áreas como análise e engenharia de dados.
Comece agora sua jornada em SQL na Alura e avance com uma trilha prática, estruturada e alinhada ao mercado.








