Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2022

Banco de DadosSQL
Código
fg055328
Banca
FGV
Órgão
TCU
Ano
2022
Nível
Superior
Cargo
Auditor Federal de Controle Externo
Analise os cinco comandos SQL exibidos abaixo, utilizando a tabela DUAL apresentada anteriormente.(1) select * from dual where x = null(2) select * from dual where x <> null(3) select * from dual where x > 10(4) select * from dual where not x > 10(5) select * from dual where x > 10unionselect * from dual where x <= 10Se os resultados desses comandos fossem separados em grupos homogêneos, de modo que em cada grupo todos sejam idênticos e distintos dos elementos dos demais grupos, haveria:
  1. Aapenas um grupo;
  2. Bapenas dois grupos;
  3. Capenas três grupos;
  4. Dapenas quatro grupos;
  5. Ecinco grupos.
Revelar gabarito e comentário

GabaritoA — apenas um grupo;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comportamento de consultas SQL com valores NULL na tabela DUAL

Gabarito: letra A (apenas um grupo). Todos os cinco comandos retornam conjuntos vazios (zero linhas), pois a tabela DUAL possui uma única linha com valor NULL na coluna x, e qualquer comparação com NULL usando operadores relacionais comuns (=, <>, >, <=) resulta em UNKNOWN, não selecionando nenhuma linha. Dessa forma, os resultados são idênticos – todos vazios –, formando um único grupo homogêneo.

A banca testa o conhecimento sobre o tratamento de NULL em SQL. No padrão SQL, NULL não é um valor, e sim a ausência de valor. Comparações com NULL com operadores como = ou <> não retornam verdadeiro ou falso, mas sim UNKNOWN; por isso, na cláusula WHERE, a linha não é incluída no resultado. O mesmo vale para comparações de grandeza: x > 10 com NULL é UNKNOWN, e x <= 10 também. Consequentemente, as consultas (1) a (4) retornam vazio. A consulta (5) é a união de dois conjuntos vazios, que também resulta em vazio.

Alternativa A — ✅ Correta ⟵ GABARITO

Como todos os comandos produzem o mesmo resultado (conjunto vazio), há apenas um grupo homogêneo.

Alternativa B — ❌ Incorreta

Considerar que haveria dois grupos seria um erro, pois não há diferença entre os resultados – todos são vazios.

Alternativa C — ❌ Incorreta

Três grupos não se formam; não há três resultados distintos.

Alternativa D — ❌ Incorreta

Quatro grupos não existem.

Alternativa E — ❌ Incorreta

Cinco grupos, um para cada comando, seria o caso se cada consulta retornasse algo diferente, mas todas retornam vazio.

NÃO CAIA NESSA!

Muitos candidatos pensam que WHERE x = NULL gera erro de sintaxe ou que NOT EXISTS de algo vazio seria diferente. Na verdade, a SQL padrão não gera erro; apenas não retorna linhas. O erro comum é achar que = NULL funciona como atribuição ou que <> NULL seleciona linhas não nulas. O resultado é vazio em todos os casos.

Gabarito: letra A

Link permanente: /questoes/fg055328