Operador booleano SQL padrão IS vs. operador igual a (=)

Na página da Wikipedia para SQL, existem algumas tabelas de verdade sobre lógica booleana no SQL. [1] A página da Wikipedia parece ter como fonte o padrão SQL: 2003.

A tabela verdade para o operador igual (=) é diferente do operador IS do rascunho do SQL: 2003.

Além disso, o artigo da Wikipedia observa que "IS NULL" (<predicado nulo>) é um caso especia

No SQL: 2003, parece que existe um opeartor "IS" que é um operador regular como AND, NOT e OR. No entanto, o <predicado nulo> ainda está lá.

Por que o <predicado nulo> existe quando o IS é um operador booleano regular? É para garantir que você possa usar a construção "IS NULL" com valores não booleanos sem coerção de tipo? É desencorajado usar "= NULL"?

O padrão SQL: 2011 funciona de maneira diferent

[1]:Wikipedia on SQL

[2]:SQL: rascunho de 2011 Página PDF 335

[3]: SQL: rascunho de 2003 Página PDF 397

questionAnswers(4)

yourAnswerToTheQuestion