SóProvas


ID
1202980
Banca
FCC
Órgão
TRT - 15ª Região (SP)
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

No banco de dados Oracle, a precedência dos operadores unários (+ e -), tem prioridade

Alternativas
Comentários
  • Tabela com Precedência de Operadores no SQL Oracle:
    http://pgdocptbr.sourceforge.net/pg80/sql-syntax.html#SQL-PRECEDENCE

  • Acho que não entendi essa resposta. Na tabela do link fornecido por Ton BSantos tem o seguinte:

    Tabela 4-1. Precedência dos operadores (decrescente):

    * / % esquerda multiplicação, divisão, módulo

    + - esquerda adição, subtração

    Então, as operações (+ e -) tem uma precedência menor que (* e /), não? Alguém poderia explicar?

  • Também não entendi a questão. Pela fonte oficial http://docs.oracle.com/cd/E17952_01/refman-5.1-en/operator-precedence.html 

    12.3.1 Operator Precedence

    Operator precedences are shown in the following list, from highest precedence to the lowest. Operators that are shown together on a line have the same precedence.

    INTERVAL
    BINARY, COLLATE
    !
    - (unary minus), ~ (unary bit inversion)
    ^
    *, /, DIV, %, MOD
    -, +
    <<,>>
    &
    |
    = (comparison), <=>, >=, >, <=,><,><>, !=, IS, LIKE, REGEXP, IN
    BETWEEN, CASE, WHEN, THEN, ELSE
    NOT
    &&, AND
    XOR
    ||, OR
    = (assignment), :=
    
    Como informa o texto, do maior para o menor.

    De cara fui na letra B.



  • Operadores unários tem precedência sobre as operações de multiplicação e divisão.  

    Os operadores unários 

    Os operadores unários requerem apenas um operando; eles podem realizar várias operações: tal como incremento / decremento , eliminando uma expressão, ou invertendo o valor de um booleano. 

    + Unário além de operador; indica 

             valor positivo ( fica implícito

    - Operador menos unário; indica que o número é negativo 


    ++ Operador de incremento; incrementos  no valor de 1 

    -- Operador de decremento; decréscimos no valor de 1 

    ! Operador de complemento lógico; inverte o valor de um booleano

    fonte http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html

  • O link passado pelo Ton BSantos refere-se a PostgreSQL. O link para o Oracle segue abaixo:

    PRECEDÊNCIA    

    http://docs.oracle.com/cd/E19253-01/820-0446/chp-typeopexpr/index.html

    As regras de D para precedência de operador e associação são descritas na tabela seguinte. Essas regras são algo complexas, mas são necessárias para fornecer compatibilidade precisa com as regras de precedência de operador ANSI-C. As entradas da tabela estão na ordem da precedência mais alta para a precedência mais baixa.

    Tabela 2–11 Precedência e associação de operador de D

    Operadores                                                                        Associação 

    () [] -> .                                                                                esquerda para direita 

    ! ~ ++ -- + - * & (tipo) sizeof stringof offsetof xlate      direita para esquerda   -->> Unário

    * / %                                                                                    esquerda para direita -->> Binários

    + -                                                                                       esquerda para direita   -->> Binários

    << >>                                                                                 esquerda para direita 

    < >=                                                                                    esquerda para direita 

    == !=                                                                                   esquerda para direita 

    E concordando o que Rafael Cabral comentou sobre o unário. 


    OPERADORES ARITMÉTICOS

    http://docs.oracle.com/cd/E19253-01/820-0446/chp-typeopexpr/index.html

    D fornece os operadores aritméticos binários mostrados na tabela seguinte a serem usados em seus programas. Todos esses operadores possuem o mesmo significado para inteiros, como acontece em ANSI-C.

    Tabela 2–6 Operadores aritméticos de D


    +     adição de inteiro 

    -      subtração de inteiro 

    *      multiplicação de inteiro 

    /       divisão de inteiro 

    %     módulo de inteiro 


    Sendo assim, na tabela de precedência do Oracle o operador unário (+ e -) tem prioridade sobre o operador Binário( * e /)