SóProvas


ID
1823143
Banca
CESPE / CEBRASPE
Órgão
TRE-PI
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

Considerando um SGBD Oracle, MySQL ou PostgreSqQL que contém uma tabela pessoa com mais de 3 registros, assinale a opção que apresenta a declaração de um comando SQL (que está entre aspas duplas) que permite selecionar o campo nome dos três primeiros registros dessa tabela segundo a ordem ascendente do campo idade.

Alternativas
Comentários
  • MySQL Syntax

    SELECT column_name(s)
    FROM table_name
    LIMIT number;

  • TOP é do SQL Server e ROWNUM é do Oracle.

  • Acredito que esta questão está um tanto equivocada.

    Observem a definição de ORDER BY dada pelo http://www.w3schools.com/Sql/sql_orderby.asp :

    The ORDER BY keyword is used to sort the result-set by one or more columns.

    Observem a palavra "result-set", ou seja, ordena o RESULTADO.

    As letras B e C estão erradas porque ROWNUM começa a contar à partir da coluna 1, e não da 0 como supõe o <3.

    LIMIT e SELECT TOP realmente são usados...entretanto, ao meu ver, a consulta correta usando o ORDER BY, seria:

    SELECT TOP 3 nome FROM ( select * from pessoa ORDER BY idade), já que o order by ordena de forma ascendente por default.

    Ou então:

    SELECT nome FROM ( select * from pessoa ORDER BY idade) LIMIT 3;

  • O PostgreSQL suporta o comando LIMIT:

    Fonte: https://www.postgresql.org/docs/9.6/static/queries-limit.html

  • Letra A : Correto

    SELECT select_list FROM table_expression [LIMIT { number | ALL }] [OFFSET number]
    Exemplo:  SELECT * FROM COMPANY LIMIT 4;
     

    Letra B: Errado
    Mysql NÃO suporta ROWNUM.  Suporta "LIMIT".

    Letra C: Errado
    Postgre NÃO suporta ROWNUM.  Suporta "LIMIT".

    Letra D: Errado
    Postgre NÃO suporta TOPSuporta "LIMIT". 

    Letra E: Errado
    Mysql NÃO suporta TOPSuporta "LIMIT". 

     

     

    Extra:

    (1) no SQL Server é :SELECT TOP [NUMERO DE REGISTROS] [COLUNA(S)] FROM [TABELA]

    SELECT TOP number|percent column_name(s)
    FROM table_name
    WHERE condition;

    (2)  MySQL :

    SELECT column_name(s)
    FROM table_name
    WHERE condition
    LIMIT number;

    (3) Oracle 
    SELECT column_name(s)
    FROM table_name
    WHERE ROWNUM <= number;

  • Oracle -> ROWNUM

    SQL Server -> TOP

    Postgres -> LIMIT

    MySQL -> LIMIT