Questão de Arquitetura de Software — Banco de Dados — FUNDATEC 2023
Arquitetura de Software›Banco de Dados
Código
qq899588
Banca
FUNDATEC
Órgão
Prefeitura de Dom Pedrito - RS
Ano
2023
Nível
Médio
Cargo
Técnico em Informática
Considere uma tabela de nome PROCESSO em um banco de dados relacional. Qual comando retornaria o número de registros da tabela PROCESSO?
ASELECT AVG(*) FROM PROCESSO
BSELECT * FROM PROCESSO
CSELECT ALL FROM PROCESSO
DSELECT COUNT(*) FROM PROCESSO
ESELECT % FROM PROCESSO
Revelar gabarito e comentário▾
GabaritoD — SELECT COUNT(*) FROM PROCESSO
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
SQL – Funções de agregação
Gabarito: letra D. A função COUNT(*) é a função de agregação do SQL que retorna o número de registros (linhas) de uma tabela, contando todas as linhas, inclusive aquelas com valores nulos. É exatamente o que o enunciado pede: retornar o número de registros da tabela PROCESSO.
As funções de agregação do SQL operam sobre um conjunto de linhas e retornam um único valor resumido. As principais são:
COUNT(*) – conta o número de linhas da tabela (ou do grupo).
COUNT(coluna) – conta apenas as linhas em que a coluna não é nula.
SUM(coluna) – soma os valores de uma coluna numérica.
AVG(coluna) – calcula a média aritmética dos valores de uma coluna numérica.
MIN(coluna) / MAX(coluna) – retornam o menor/maior valor de uma coluna.
A pegadinha da banca está em misturar a sintaxe dessas funções: AVG(*) não existe, pois AVG exige uma coluna numérica como argumento, não o asterisco. Já SELECT * retorna todas as colunas e linhas, não a contagem. SELECT ALL é uma palavra-chave opcional que apenas explicita o comportamento padrão (retornar todas as linhas, sem eliminar duplicatas) e não conta nada. E SELECT % é sintaxe inválida – o % é um curinga usado em LIKE, não na lista de seleção.
Funções de agregação SQL: COUNT(*) (Conta todas as linhas, Aceita asterisco); COUNT(coluna) (Conta valores não nulos); SUM(coluna) (Soma valores numéricos); AVG(coluna) (Média aritmética, Não aceita asterisco); MIN/MAX(coluna) (Menor/maior valor); Sintaxes inválidas (SELECT ALL (sem coluna), SELECT % (curinga do LIKE))
Alternativa A — ❌ Incorreta
AVG(*) é inválido. A função AVG (average) calcula a média aritmética de uma coluna numérica, e por isso exige como argumento o nome de uma coluna (ex.: AVG(valor)), nunca o asterisco. O asterisco só é aceito pelo COUNT, que é a função de contagem. A banca troca COUNT por AVG para confundir quem decora a sintaxe sem entender o papel de cada função.
Alternativa B — ❌ Incorreta
SELECT * FROM PROCESSO retorna todas as colunas e todas as linhas da tabela, ou seja, os dados em si, não a quantidade de registros. Para contar, seria necessário usar COUNT(*) na lista de seleção. A pegadinha aqui é achar que o * já representa "tudo", mas ele representa todas as colunas, não a contagem.
Alternativa C — ❌ Incorreta
SELECT ALL FROM PROCESSO é uma sintaxe inválida. A palavra-chave ALL é usada em conjunto com SELECT para explicitar que duplicatas devem ser mantidas (comportamento padrão), mas ela não substitui a lista de colunas nem conta registros. O correto seria SELECT ALL coluna FROM PROCESSO ou simplesmente SELECT coluna FROM PROCESSO. Não há função de agregação aqui.
Alternativa D — ✅ Correta ⟵ GABARITO
SELECT COUNT(*) FROM PROCESSO é o comando correto. A função COUNT(*) conta todas as linhas da tabela, incluindo aquelas em que todas as colunas são nulas (o que é raro, mas possível). É a forma padrão de obter o número de registros de uma tabela em SQL. O * aqui significa "todas as linhas", não "todas as colunas".
Alternativa E — ❌ Incorreta
SELECT % FROM PROCESSO é sintaxe inválida. O símbolo % é um curinga usado em operadores de comparação de strings, como no LIKE (ex.: WHERE nome LIKE 'A%'), e não pode ser usado na lista de seleção. Não existe função de agregação com %.
PEGA ESSA DICA!
Para contar registros, use sempre COUNT(*). Se a questão pedir a contagem de valores não nulos de uma coluna específica, use COUNT(coluna). Decore a diferença: COUNT(*) conta linhas, COUNT(coluna) conta valores não nulos. E lembre-se: AVG, SUM, MIN, MAX exigem colunas numéricas, nunca *.