Questão de Banco de Dados — SQL — Quadrix 2025
- Código
- qg598685
- Banca
- Quadrix
- Órgão
- CRM-MS
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Informática


- CCerto
- EErrado


GabaritoE — Errado
Gabarito: ERRADO (letra E). O comando apresentado na imagem não está correto, pois, para aumentar em 10% o salário dos médicos que realizaram mais de 20 atendimentos, seria necessário um comando UPDATE com subconsulta correlacionada ou com JOIN, e não um simples UPDATE sem a devida correlação entre as tabelas medico e atendimento. A forma correta envolveria, por exemplo: UPDATE medico SET salario = salario * 1.1 WHERE codigo_medico IN (SELECT codigo_medico FROM atendimento GROUP BY codigo_medico HAVING COUNT(*) > 20);. O comando UPDATE é um comando da sublinguagem DML (Data Manipulation Language) do SQL, utilizado para modificar dados existentes em uma tabela. Sua sintaxe básica é UPDATE nome_tabela SET coluna = valor WHERE condição. No caso apresentado, a atualização deve ser condicionada a uma agregação (contagem de atendimentos por médico), o que exige o uso de uma subconsulta ou de uma junção. Para entender melhor, vamos analisar o que seria necessário: precisamos identificar os médicos que realizaram mais de 20 atendimentos. Isso é feito com uma consulta que agrupa os atendimentos por médico e conta quantos cada um realizou, filtrando com HAVING COUNT(*) > 20. Em seguida, o UPDATE deve aplicar o aumento de 10% apenas nesses médicos, usando uma subconsulta no WHERE para selecionar os códigos correspondentes. O comando correto seria:
UPDATE medico
SET salario = salario * 1.1
WHERE codigo_medico IN (
SELECT codigo_medico
FROM atendimento
GROUP BY codigo_medico
HAVING COUNT(*) > 20
);A pegadinha da banca está em apresentar um comando que parece correto à primeira vista, mas que não realiza a correlação adequada entre as tabelas. Muitas vezes, o comando apresentado tenta usar WHERE com uma subconsulta que retorna múltiplas linhas sem o operador IN, ou tenta fazer a atualização diretamente na tabela atendimento em vez de medico. É essencial verificar se a subconsulta está corretamente estruturada e se a tabela alvo do UPDATE é a que contém o salário.
A alternativa C afirma que o comando está correto, mas isso não procede. O comando apresentado na imagem não realiza a atualização condicional de forma adequada. Para que o comando funcione, seria necessário usar uma subconsulta que retorne os médicos com mais de 20 atendimentos, o que não é feito no comando da imagem. A alternativa C está incorreta porque o comando não atende ao requisito do enunciado.
A alternativa E afirma que o comando está errado, o que é verdade. O comando apresentado na imagem não está correto, pois não realiza a atualização condicional de forma adequada. Para aumentar o salário dos médicos com mais de 20 atendimentos, seria necessário um comando UPDATE com subconsulta correlacionada ou com JOIN, como exemplificado acima. A alternativa E está correta porque identifica corretamente que o comando apresentado não é o adequado.
A banca apresenta um comando que parece correto, mas que não realiza a correlação adequada entre as tabelas. O candidato pode ser induzido a acreditar que o comando está certo, mas é necessário verificar se a subconsulta está corretamente estruturada e se a tabela alvo do UPDATE é a que contém o salário. Com treino, você enxerga essas trocas de longe 💪.
Gabarito: letra E
Link permanente: /questoes/qg598685