Questão nº 35

Questão de Tecnologia da Informação · CESGRANRIO BASA 01/2021 (nº 35)

CESGRANRIO2021Técnico Científico - Área de Formação: Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Dver comentário ↓

Um programador experiente estava revisando o código de um estagiário e detectou a instrução SQL abaixo, complicada demais para seu objetivo.

```sql
SELECT * FROM Compras where codProduto not in (select codProduto from Produtos where codProduto<3 or valor<4000)
```

Para simplificar o código, sem alterar a resposta, a instrução apresentada acima pode ser substituída por

Resposta comentada

Gabarito Alternativa D

O comando NOT IN com uma subconsulta retorna as linhas de Compras cujo codProduto não está na lista dos produtos que atendem à condição interna (codProduto<3 OR valor<4000). Ou seja, ele exclui exatamente os produtos que têm codProduto<3 ou valor<4000. Para manter o mesmo resultado, precisamos da negação lógica dessa condição: NOT (codProduto<3 OR valor<4000), que pela Lei de De Morgan equivale a codProduto>=3 AND valor>=4000.

  • (A) Incorreta: codProduto<3 OR valor<4000 é o oposto do que queremos — isso retornaria justamente os produtos que a consulta original exclui.
  • (B) Incorreta: codProduto<3 AND valor<4000 é um subconjunto menor da condição excluída, mas não representa a negação completa (produtos com codProduto>=3 e valor<4000 ficariam de fora indevidamente).
  • (C) Incorreta: codProduto<=3 AND valor<=4000 usa limites inclusivos, o que incluiria produtos com codProduto=3 ou valor=4000 que a original exclui (pois a original exclui apenas <3 e <4000).
  • (D) Correta: A negação de codProduto<3 OR valor<4000 é codProduto>=3 AND valor>=4000 (Lei de De Morgan), que mantém exatamente os produtos que não estão na subconsulta, preservando o resultado original.
  • (E) Incorreta: codProduto>=3 OR valor>=4000 é a negação de codProduto<3 AND valor<4000, não da condição original — isso incluiria produtos que a consulta original exclui (ex.: codProduto=1 e valor=5000).

Fonte: CESGRANRIO BASA 01/2021 Técnico Científico - Área de Formação: Tecnologia da Informação. 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