SóProvas


ID
992104
Banca
FCC
Órgão
TRT - 12ª Região (SC)
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Em PL/SQL operações lógicas podem ser efetuadas com os operadores OR, AND e NOT. Considere operações lógicas, abaixo.

I. FALSE AND NULL

II. TRUE AND NULL

Essas operações resultarão, respectivamente, em

Alternativas
Comentários
  • Analisando-se a tabela de operadores lógicos, temos como resposta a alternativa E. Vale lembrar que o operador AND retorna TRUE somente se ambos os valores forem True, enquanto que OR retorna TRUE se um dos valores dor True. 

    AND TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FALSE FALSE NULL NULL FALSE NULL OR TRUE FALSE NULL TRUE TRUE TRUE TRUE FALSE TRUE FALSE NULL NULL TRUE NULL NULL
  • Só pra complementar, isso se chama Lógica ternária (ou lógica trivalente), que no caso, alem dos valores true e false tem um terceiro valor, o NULL.
  • Note the spelling is ElsIF not ElseIF which you might expect from other languages. 

    'condition' may include logical comparisons...

    true AND true = true...
    true OR true = true...
    
    false AND false = false...
    false OR false = false...
    
    null AND null = null...
    null OR null = null...
    
    true AND false = false...
    true OR false = true...
    
    true AND null = null...
    true OR null = true...
    
    false AND null = false...
    false OR null = null...
    
    NOT TRUE = FALSE...
    NOT FALSE = TRUE...
    NOT NULL = NULL...

  • Para saber o resultado da operação lógica  com o "NULL", deve-se verificar se é preciso saber o valor de "NULL" para determinar o resultado da expressão.

    false AND null = false... >> o operador AND só retorna True se ambos os valores forem TRUE.  Independente do valor de NULL, é possível determinar o resultado da expressão, já que um dos valores é FALSE.
    true AND null = null... >> o operador AND só retorna True se ambos os valores forem TRUE.  Como não sei o valor de NULL,  não tenho como saber o resultado da expressão.

    If A is NULL, then:           Is:             Because:
    not A                               NULL        If A is unknown, its inverse is also unknown.
    A or false                        NULL        “A or false” always has the same value as A – which is unknown.
    A or true                         true           “A or true” is always true – A's value doesn't matter.
    A or A                             NULL         “A or A” always equals A – which is NULL.
    A and false                     false          “A and false” is always false – A's value doesn't matter.
    A and true                      NULL          “A and true” always has the same value as A – which is unknown.
    A and A                          NULL          “A and A” always equals A – which is NULL.