Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2025

Banco de DadosSQL
Código
qg598685
Banca
Quadrix
Órgão
CRM-MS
Ano
2025
Nível
Superior
Cargo
Analista de Informática
O Hospital Campo Grande está implementando um novo sistema de banco de dados para gerenciar informações sobre médicos, pacientes e atendimentos. O banco de dados apresenta as tabelas a seguir.

Imagem da questão
Com relação à situação hipotética apresentada e aos comandos SQL, julgue o item seguinte.Para aumentar em 10% o salário de todos os médicos que realizaram mais de 20 atendimentos, o comando a ser utilizado é:Imagem associada para resolução da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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”.

Comando SQL para atualização condicional de salários

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.

  1. 1Agrupar atendimentos por médico
  2. 2Filtrar HAVING COUNT > 20
  3. 3Subconsulta no WHERE
  4. 4Aplicar salário × 1.1
LEVEL · soulevel.com.br

Alternativa C — ❌ Incorreta

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.

Alternativa E — ✅ Correta ⟵ GABARITO

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.

NÃO CAIA NESSA!

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