Comando SQL sobre a tabela S
Gabarito: letra D. A consulta retorna as linhas que satisfazem ambas as condições: (G != 10 OR I = 12) e (H <= 100 OR H >= 1000). Aplicando à instância da tabela S, obtém-se exatamente as quatro linhas da alternativa D.
Dados da tabela S:
G | H | I |
|---|
10 | 12040 | 12 |
10 | 12041 | 12 |
50 | 1497 | 12 |
50 | 1498 | 10 |
70 | 214 | 20 |
50 | 215 | 12 |
Avaliação da condição WHERE:
Linha 1 (10,12040,12): (NOT G=10 OR I=12) = (FALSE OR TRUE) = TRUE; NOT (H>100 AND H<1000): H=12040 -> (TRUE AND FALSE)=FALSE -> NOT FALSE = TRUE. Incluída.
Linha 2 (10,12041,12): idem, incluída.
Linha 3 (50,1497,12): (TRUE OR TRUE)=TRUE; H=1497 -> (TRUE AND FALSE)=FALSE -> NOT FALSE=TRUE. Incluída.
Linha 4 (50,1498,10): (TRUE OR FALSE)=TRUE; H=1498 -> (TRUE AND FALSE)=FALSE -> NOT FALSE=TRUE. Incluída.
Linha 5 (70,214,20): (TRUE OR FALSE)=TRUE; H=214 -> (TRUE AND TRUE)=TRUE -> NOT TRUE=FALSE. Excluída.
Linha 6 (50,215,12): (TRUE OR TRUE)=TRUE; H=215 -> (TRUE AND TRUE)=TRUE -> NOT TRUE=FALSE. Excluída.
Portanto, as linhas resultantes são: (10,12040,12), (10,12041,12), (50,1497,12), (50,1498,10). A alternativa D é a única que apresenta esse conjunto.
Alternativa A — ❌ Incorreta
Faltam as linhas com G=50.
Alternativa B — ❌ Incorreta
Falta a linha (50,1498,10).
Alternativa C — ❌ Incorreta
Contém linhas que foram excluídas pela condição (50,215,12 e 70,214,20).
Alternativa D — ✅ Correta ⟵ GABARITO
Contém exatamente as quatro linhas resultantes.
Alternativa E — ❌ Incorreta
Faltam as linhas com G=10.
Gabarito: letra D