Os principais Sistemas Gerenciadores de Bancos de Dados ofe...
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
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 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