Pular para o conteúdo principal

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

Banco de DadosSQL
Código
qg599040
Banca
Quadrix
Órgão
CRMV-GO
Ano
2025
Nível
Superior
Cargo
Analista Administrativo
Com base nessa situação hipotética e no uso do comando SELECT no banco de dados CRMV_GO, julgue o item seguinte.O comando a seguir apresenta apenas veterinários ativos cujo CRMV termina com “1234” e que realizaram atendimentos na cidade de Goiânia, utilizando subconsulta correlacionada.SELECT nomeFROM VETERINARIO vWHERE ativo = 1AND crmv LIKE '%1234'AND EXISTS (SELECT 1FROM ATENDIMENTO aINNER JOIN CLINICA c ON a.id_clinica = c.id_clinicaWHERE a.id_vet = v.id_vetAND c.cidade = 'Goiânia');
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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”.
SE LIGUE NESSA!

Esta questão depende de um texto-base/tabela compartilhado com outras questões da mesma prova, que não está disponível aqui. O raciocínio abaixo é o método de resolução — confira os dados no enunciado original.

Subconsulta correlacionada com EXISTS no SQL

Gabarito: CERTO (letra C). O comando apresentado está sintaticamente correto e semanticamente adequado ao que se propõe: filtra veterinários ativos cujo CRMV termina com "1234" e que possuam pelo menos um atendimento em clínica localizada em Goiânia, utilizando uma subconsulta correlacionada com EXISTS. A estrutura WHERE ... AND EXISTS (SELECT ... WHERE a.id_vet = v.id_vet ...) é exatamente o padrão de subconsulta correlacionada, pois a subconsulta referencia a tabela externa v.

A subconsulta correlacionada é um dos conceitos mais cobrados em SQL. Ela se caracteriza pelo fato de a subconsulta interna referenciar colunas da consulta externa — aqui, v.id_vet é usado dentro do WHERE da subconsulta. Isso faz com que a subconsulta seja reavaliada para cada linha da consulta externa, diferentemente de uma subconsulta não correlacionada, que é executada uma única vez e cujo resultado é independente da linha externa.

O operador EXISTS retorna verdadeiro se a subconsulta retornar pelo menos uma linha. No comando, para cada veterinário v que atende aos filtros ativo = 1 e crmv LIKE '%1234', o EXISTS verifica se existe algum registro em ATENDIMENTO a que, ao ser unido com CLINICA c pela chave id_clinica, tenha a.id_vet = v.id_vet e c.cidade = 'Goiânia'. Se existir, o veterinário é incluído no resultado. Isso corresponde exatamente à descrição do enunciado: "apenas veterinários ativos cujo CRMV termina com '1234' e que realizaram atendimentos na cidade de Goiânia".

Um ponto que merece atenção é a diferença entre EXISTS e IN. Enquanto IN compara um valor a uma lista de valores retornada pela subconsulta, EXISTS apenas testa a existência de linhas. Em muitos casos, EXISTS é mais eficiente, especialmente quando a subconsulta é correlacionada, pois o banco pode otimizar a execução. Além disso, EXISTS lida melhor com valores nulos, pois não depende de comparação de igualdade.

Outro detalhe importante é o uso do LIKE '%1234'. O curinga % no início significa que o padrão pode ser precedido por qualquer sequência de caracteres, ou seja, o CRMV deve terminar com "1234". Isso está correto para a condição "termina com '1234'". Se a intenção fosse que o CRMV contivesse "1234" em qualquer posição, o padrão seria '%1234%'. Aqui, a ausência do % no final garante que a string termine exatamente com "1234".

A junção INNER JOIN entre ATENDIMENTO e CLINICA é adequada, pois só interessa atendimentos que tenham uma clínica associada. A condição c.cidade = 'Goiânia' filtra as clínicas da cidade desejada. A correlação a.id_vet = v.id_vet garante que o atendimento pertence ao veterinário da linha externa.

Portanto, o comando está correto e atende plenamente ao que o enunciado descreve. A banca não inverteu nenhum conceito; a estrutura é a clássica de subconsulta correlacionada com EXISTS.

  1. 1Filtra veterinários ativos
  2. 2CRMV termina com 1234
  3. 3EXISTS correlaciona por id_vet
  4. 4Junção com clínica de Goiânia
  5. 5Retorna veterinários
LEVEL · soulevel.com.br

Item — ✅ CERTO ⟵ GABARITO

O comando está correto. A subconsulta é correlacionada porque referencia v.id_vet (coluna da consulta externa) dentro do WHERE da subconsulta. O EXISTS verifica a existência de atendimento em clínica de Goiânia para cada veterinário que já passou pelos filtros ativo = 1 e crmv LIKE '%1234'. A sintaxe é válida e a semântica corresponde exatamente ao que o enunciado pede.

Gabarito: CERTO (letra C).

Link permanente: /questoes/qg599040