Questão nº 54

Questão de Tecnologia da Informação · FGV TJ-SE Servidor 2023 (nº 54)

FGV2023Analista Judiciário - Análise de SistemasTecnologia da Informação
Gabarito: Bver comentário ↓

Considere uma tabela relacional TAB, com colunas A e B. A coluna A constitui a chave primária de TAB. A instância de TAB contém 100 linhas, e em todas as linhas o valor da coluna B é 10.
Nesse contexto, analise o comando SQL a seguir.

select from TAB t

where not exists

(select
from TAB tt

where t.B = tt.B and t.A > tt.A)

Além da linha de títulos, o número de linhas produzidas pelo comando acima é:

Resposta comentada

Gabarito Alternativa B

O comando NOT EXISTS em SQL verifica se uma subconsulta retorna alguma linha. Se a subconsulta não retornar nenhuma linha, a condição NOT EXISTS é verdadeira. Quando usado com uma subconsulta correlacionada (que referencia a linha da consulta externa), ele é frequentemente utilizado para encontrar valores mínimos ou máximos dentro de grupos ou na tabela toda.

  • (A) Incorreta: O comando sempre selecionará pelo menos uma linha, pois sempre haverá um valor mínimo para a coluna A.
  • (B) Correta: O comando busca linhas t para as quais não existe nenhuma outra linha tt na tabela onde t.B = tt.B (que é sempre verdade, pois todos os B são 10) E t.A > tt.A. Isso significa que estamos procurando por uma linha t para a qual não existe nenhuma outra linha tt com um valor de A menor que t.A. Em outras palavras, a condição seleciona a linha cujo valor de A é o menor de toda a tabela. Como A é chave primária, todos os seus valores são únicos, garantindo que haverá apenas uma linha com o menor valor de A.
  • (C) Incorreta: Não há lógica para selecionar 98 linhas.
  • (D) Incorreta: A armadilha aqui é pensar que o NOT EXISTS com t.A > tt.A poderia excluir apenas o maior valor, ou que a condição t.B = tt.B de alguma forma alteraria o resultado para um número próximo ao total. No entanto, a lógica do NOT EXISTS com o operador > (maior que) na subconsulta, quando a condição t.B = tt.B é sempre satisfeita, aponta diretamente para a seleção do valor mínimo de A, que é único.
  • (E) Incorreta: A condição NOT EXISTS é bastante restritiva e não permite que todas as 100 linhas sejam selecionadas, pois para qualquer linha que não seja a de menor A, sempre existirá uma linha tt com tt.A menor.

Fonte: FGV TJ-SE Servidor 2023 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho