Assinale a alternativa que apresenta o comando SQL que deverá ser utilizado para se mostrar a quantidade de médicos cardiologistas existentes na cidade de Araguari-MG.
GabaritoB — SELECT count(*)
FROM medico
WHERE especialidade = ‘Cardiologia’
AND cidade = ‘Araguari’
AND uf = ‘MG’;
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 e a consulta correta
Gabarito: letra B. Para mostrar a quantidade de médicos cardiologistas em Araguari-MG, o comando correto é SELECT count(*) FROM medico WHERE especialidade = 'Cardiologia' AND cidade = 'Araguari' AND uf = 'MG'; — a função COUNT(*) conta o número de linhas que atendem à condição do WHERE, e o operador de comparação correto é = (igualdade). As demais alternativas erram ao usar funções inadequadas (SUM, AVG), operadores inexistentes (==, exists, in sem lista) ou sintaxe inválida.
A pergunta pede uma contagem — quantos médicos cardiologistas existem na cidade. Em SQL, a função de agregação que conta linhas é COUNT. Ela pode ser usada de duas formas principais: COUNT(*), que conta todas as linhas do resultado (incluindo aquelas com valores nulos em alguma coluna), e COUNT(coluna), que conta apenas as linhas em que a coluna especificada não é nula. Como queremos contar registros completos de médicos, COUNT(*) é a escolha natural.
A estrutura da consulta é: SELECT função_agregação(coluna) FROM tabela WHERE condição;. A cláusula WHERE filtra as linhas antes da agregação — ou seja, primeiro selecionamos apenas os médicos com especialidade 'Cardiologia', cidade 'Araguari' e UF 'MG', e depois contamos quantas linhas sobraram. É exatamente isso que a alternativa B faz.
As funções de agregação são usadas para resumir informações de várias tuplas em uma síntese de tupla única. Existem diversas funções de agregação embutidas no SQL: COUNT, SUM, MAX, MIN e AVG. A sintaxe básica para essas funções é: SELECT FUNCAO(coluna1) FROM nome_da_tabela WHERE condição; em que FUNCAO é qualquer uma das funções de agregação. A função COUNT retorna o número de linhas que atendem a um critério. Logo, a instrução SELECT Count (*) FROM Objetos realiza a contagem das linhas da tabela Objetos.
A pegadinha desta questão está em distinguir as funções de agregação: COUNT conta linhas, SUM soma valores numéricos de uma coluna, AVG calcula a média aritmética de uma coluna numérica. Para contar médicos, COUNT é a única função adequada. Além disso, o operador de comparação em SQL é = (igualdade), não == (usado em outras linguagens como Python ou C) nem exists (que é um operador de subconsulta). O operador IN é usado para comparar com uma lista de valores, não com um único valor — e mesmo assim exige parênteses: IN ('Cardiologia').
Guarde a fronteira entre as funções de agregação e os operadores de comparação: é exatamente nela que as alternativas se dividem. A alternativa correta usa COUNT(*) com = para cada condição; as incorretas trocam a função ou o operador.
Funções de agregação
1COUNT
Conta linhas
COUNT(*) conta todas
COUNT(coluna) ignora nulos
2SUM
Soma valores numéricos
3AVG
Média aritmética
4MAX / MIN
Maior / menor valor
5Operadores de comparação
= (igualdade)
== (não existe em SQL)
EXISTS (subconsulta)
IN (lista entre parênteses)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Usa SUM(*), que é inválido. SUM soma valores numéricos de uma coluna específica, não conta linhas. Além disso, SUM(*) não é sintaxe válida — o asterisco só pode ser usado com COUNT(*). Para contar médicos, o correto seria COUNT(*).
Alternativa B — ✅ Correta ⟵ GABARITO
Usa COUNT(*), que conta todas as linhas que atendem à condição do WHERE. A condição filtra corretamente os médicos com especialidade 'Cardiologia', cidade 'Araguari' e UF 'MG'. O operador = é o correto para comparação de igualdade em SQL. Esta é a consulta que responde exatamente à pergunta.
Alternativa C — ❌ Incorreta
Usa IN sem parênteses e com um único valor. O operador IN exige uma lista de valores entre parênteses, como IN ('Cardiologia'). Sem os parênteses, a sintaxe é inválida. Além disso, para comparar com um único valor, o operador = é mais adequado e mais simples.
Alternativa D — ❌ Incorreta
Usa AVG(*), que é inválido. AVG calcula a média de uma coluna numérica, não conta linhas. Além disso, usa == como operador de comparação, que não existe em SQL — o correto é =. A combinação de função inadequada e operador inválido torna esta alternativa completamente errada.
Alternativa E — ❌ Incorreta
Usa EXISTS como se fosse um operador de comparação. EXISTS é um operador de subconsulta que verifica se uma subconsulta retorna alguma linha — não é usado para comparar valores de colunas. A sintaxe correta para comparar seria = 'Cardiologia', não exists 'Cardiologia'.
NÃO CAIA NESSA!
A banca troca as funções de agregação e os operadores de comparação para confundir. SUM soma, AVG calcula média, COUNT conta — e o operador de igualdade em SQL é =, não == nem exists. Com treino, você enxerga essas trocas de longe 💪
PEGA ESSA DICA!
Para questões de contagem, procure sempre COUNT(*) ou COUNT(coluna) com WHERE. Desconfie de SUM, AVG, ==, exists e in sem parênteses — são os distratores clássicos.