Pular para o conteúdo principal

Questão de Arquitetura de Software — Banco de Dados — FUNDATEC 2023

Arquitetura de SoftwareBanco 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?
  1. ASELECT AVG(*) FROM PROCESSO
  2. BSELECT * FROM PROCESSO
  3. CSELECT ALL FROM PROCESSO
  4. DSELECT COUNT(*) FROM PROCESSO
  5. 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.

1COUNT(*)
Conta todas as linhas
Aceita asterisco
2COUNT(coluna)
Conta valores não nulos
3SUM(coluna)
Soma valores numéricos
4AVG(coluna)
Média aritmética
Não aceita asterisco
5MIN/MAX(coluna)
Menor/maior valor
6Sintaxes inválidas
SELECT ALL (sem coluna)
SELECT % (curinga do LIKE)
Funções de agregação SQL
LEVELsoulevel.com.br
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 *.

Gabarito: letra D

Link permanente: /questoes/qq899588