Suponha um banco de dados relacional compatível com o padrão...
COMANDO 1: select * from tb_valores where 1=2 COMANDO 2: select * from tb_valores where 1=1
Analise as assertivas abaixo e assinale a alternativa correta.
I. COMANDO 1 retorna NULL. II. COMANDO 2 retorna NULL. III. As saídas de ambos os comandos são idênticas. IV. Somente o COMANDO 2 retorna tuplas.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - Apenas III está correta.
A questão aborda o entendimento dos resultados de consultas SQL executadas em uma tabela vazia, considerando condições que são avaliadas como verdadeiras ou falsas. Vamos detalhar cada um dos comandos e as assertivas para compreender a resposta correta.
O COMANDO 1 possui a condição where 1=2
, uma condição que é sempre falsa, pois 1 nunca será igual a 2. Quando executado, esse comando não retorna nenhuma tupla, pois não há registros na tabela tb_valores
que satisfaçam essa condição. Aqui é importante destacar que o comando não retorna "NULL", mas sim um conjunto vazio de resultados. Portanto, a assertiva I está incorreta.
O COMANDO 2 possui a condição where 1=1
, uma condição que é sempre verdadeira. Isso significa que se a tabela tivesse registros, todos seriam retornados. No entanto, a tabela está vazia, então, mesmo que a condição seja verdadeira, o comando ainda retornará um conjunto vazio de resultados. A assertiva II, que afirma que o comando retorna NULL, também está incorreta. Da mesma maneira, não se retorna "NULL", mas sim um conjunto vazio de resultados.
A assertiva III afirma que as saídas de ambos os comandos são idênticas, o que é verdade. Ambos os comandos retornarão um conjunto vazio de resultados: o primeiro, porque a condição é falsa; o segundo, porque a condição é verdadeira mas não há registros para satisfazê-la. Portanto, independentemente da condição, o resultado é o mesmo (um conjunto vazio), pois a tabela está vazia.
Por último, a assertiva IV está incorreta, pois afirma que somente o COMANDO 2 retorna tuplas, o que não acontece, já que a tabela não contém registros.
Portanto, analisando as assertivas, chegamos à conclusão de que apenas a assertiva III está correta, o que torna a alternativa C a resposta correta para a questão.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo