Questão nº 43

Questão de Tecnologia da Informação · FGV SEFAZ-ES 2021 - Manhã (nº 43)

FGV2021Auditor Fiscal da Receita EstadualTecnologia da Informação
Gabarito: Dver comentário ↓

Utilize as tabelas T, R e S para resolver as próximas 3 questões
Considere um banco de dados relacional contendo as tabelas T, R e S, cujas instâncias são exibidas a seguir.

Figura da questão de Tecnologia da Informação

\


No contexto da instância da tabela S, considere a execução do comando SQL a seguir.

SELECT *
FROM S
WHERE (NOT G=10 OR I=12)
  AND NOT (H > 100 and H < 1000)

Assinale o conjunto de linhas que corresponde ao resultado produzido pelo referido comando.

Resposta comentada

Gabarito Alternativa D

A cláusula WHERE em SQL é usada para filtrar linhas de uma tabela com base em condições especificadas, utilizando operadores lógicos como AND (E), OR (OU) e NOT (NÃO) para combinar ou inverter essas condições. Para resolver a questão, avaliamos cada parte da condição WHERE para cada linha da tabela S.

A condição WHERE é: (NOT G=10 OR I=12) AND NOT (H > 100 and H < 1000)

Vamos analisar cada parte:

  1. Primeira parte da condição: (NOT G=10 OR I=12)

    • NOT G=10 é verdadeiro se G for diferente de 10.
    • I=12 é verdadeiro se I for igual a 12.
    • Esta parte é verdadeira se G for diferente de 10 OU I for igual a 12.
    • Para todas as linhas da tabela S, esta condição é VERDADEIRA:
      • Linhas 1 e 2 (G=10, I=12): (NOT TRUE OR TRUE) -> (FALSE OR TRUE) -> TRUE
      • Linhas 3, 4, 5 (G=50, I=12 ou I=10): (NOT FALSE OR ...) -> (TRUE OR ...) -> TRUE
      • Linha 6 (G=70, I=20): (NOT FALSE OR FALSE) -> (TRUE OR FALSE) -> TRUE
  2. Segunda parte da condição: NOT (H > 100 and H < 1000)

    • Esta condição é a negação de H estar entre 100 e 1000 (exclusivo).
    • Portanto, é verdadeira se H for menor ou igual a 100 OU H for maior ou igual a 1000. (H <= 100 OR H >= 1000).
    • Vamos avaliar para cada linha:
      • Linha 1 (H=12040): (12040 <= 100 OR 12040 >= 1000) -> (FALSE OR TRUE) -> TRUE
      • Linha 2 (H=12041): (12041 <= 100 OR 12041 >= 1000) -> (FALSE OR TRUE) -> TRUE
      • Linha 3 (H=1497): (1497 <= 100 OR 1497 >= 1000) -> (FALSE OR TRUE) -> TRUE
      • Linha 4 (H=1498): (1498 <= 100 OR 1498 >= 1000) -> (FALSE OR TRUE) -> TRUE
      • Linha 5 (H=215): (215 <= 100 OR 215 >= 1000) -> (FALSE OR FALSE) -> FALSE
      • Linha 6 (H=214): (214 <= 100 OR 214 >= 1000) -> (FALSE OR FALSE) -> FALSE
  3. Combinação final (Primeira parte AND Segunda parte):

    • Linha 1 (10, 12040, 12): TRUE AND TRUE -> TRUE (Selecionada)
    • Linha 2 (10, 12041, 12): TRUE AND TRUE -> TRUE (Selecionada)
    • Linha 3 (50, 1497, 12): TRUE AND TRUE -> TRUE (Selecionada)
    • Linha 4 (50, 1498, 10): TRUE AND TRUE -> TRUE (Selecionada)
    • Linha 5 (50, 215, 12): TRUE AND FALSE -> FALSE (Não selecionada)
    • Linha 6 (70, 214, 20): TRUE AND FALSE -> FALSE (Não selecionada)

As linhas resultantes são:
(G=10, H=12040, I=12)
(G=10, H=12041, I=12)
(G=50, H=1497, I=12)
(G=50, H=1498, I=10)

Convertendo para o formato da alternativa:
10
12040
12
10
12041
12
50
1497
12
50
1498
10

  • (A) Incorreta: Esta alternativa inclui apenas as duas primeiras linhas corretas, omitindo as duas últimas.
  • (B) Incorreta: Esta alternativa inclui as três primeiras linhas corretas, omitindo a última.
  • (C) Incorreta: Esta alternativa apresenta linhas que não satisfazem a condição WHERE (linhas 5 e 6 da tabela S), pois para elas a segunda parte da condição (NOT (H > 100 and H < 1000)) é falsa. A armadilha aqui seria uma interpretação incorreta dos operadores NOT e AND na segunda parte da condição.
  • (D) Correta: Esta alternativa corresponde exatamente ao conjunto de linhas que satisfazem todas as condições do comando SQL, conforme a análise detalhada acima.
  • (E) Incorreta: Esta alternativa inclui apenas as duas últimas linhas corretas, omitindo as duas primeiras.

Fonte: FGV SEFAZ-ES 2021 - Manhã Auditor Fiscal da Receita Estadual (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