Os principais Sistemas Gerenciadores de Bancos de Dados ofe...

Próximas questões
Com base no mesmo assunto
Q2096302 Banco de Dados
Os principais Sistemas Gerenciadores de Bancos de Dados oferecem total suporte à linguagem SQL. Um aspecto importante da implementação do SQL é o tratamento para valores nulos quando esses são considerados como unknown values.
Nesse contexto, considere uma tabela T com colunas A e B, que podem conter valores nulos. T possui 100 registros e, em 50% das linhas, há pelo menos uma coluna preenchida com o valor NULL. Considere a consulta a seguir:
               SELECT * FROM T t1                WHERE t1.A = NULL or t1.B = NULL
O número máximo de linhas de resultados que seriam retornadas pela consulta é igual a
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A questão exige conhecimentos a respeito das consultas da linguagem SQL.

Pessoal, a consulta correta seria da seguinte forma:

SELECT * FROM T t1

WHERE t1.A IS NULL or t1.B IS NULL

Lembre-se que a comparação com NULL não deve ser feita com os operadores lógicos = ou <>, e sim com IS NULL e IS NOT NULL. As comparações com NULL utilizando o operador = serão falsas.

Uma comparação pode ser avaliada como uma das três condições:

·        True

·        Falso

·        Unknown (desconhecido)

Se um valor nulo afetar o resultado de uma expressão lógica, o resultado não será verdadeiro e não falso, mas desconhecido (unknown).

Podemos concluir que o número máximo de linhas excluídas, independente do número de linhas existentes na tabela será 0, já que os operadores de comparação irão retornar Unknown, nesse caso, nenhum registro será excluído da tabela. Desse modo, a alternativa correta é a letra A.

Gabarito do monitor: LETRA A

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

A sintaxe correta é :

"t1.A is NULL  or t1.B is NULL"

= NULL ??? (retorna por#@ nenhuma)

is null

Lembrando que nem Null é igual a Null XD

A consulta apresentada não retornaria nenhum resultado, independentemente do número de linhas na tabela T. Isso ocorre porque a comparação de valores nulos em SQL é feita usando a cláusula "IS NULL" em vez de "=".

A comparação com NULL não deve ser feita com os operadores lógicos = ou <>, mas sim com IS NULL e IS NOT NULL. Ao comparar qualquer coisa com NULL usando os operadores lógicos comuns, será retornado um resultado desconhecido na comparação (UNKNOWN) e, por isso, não serão retornadas linhas

PROFESSOR RAMON SOUZA- TI TOTAL

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo