No que se refere ao modelo entidade-relacionamento (MER) e à...
No que se refere ao modelo entidade-relacionamento (MER) e à linguagem SQL, julgue o item.
O comando select * from fisioterapeuta
where rownum > 10; não funciona no Oracle, uma
vez que o campo reservado (rownum) somente pode ser
usado nas operações de atualização (update).
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - errado.
Para entendermos o motivo pelo qual a alternativa é errada, precisamos discutir o conceito do pseudo-coluna ROWNUM no contexto do banco de dados Oracle. A pseudo-coluna ROWNUM gera um número sequencial para cada linha que é retornada por uma consulta SQL. Ela é útil para limitar o número de linhas retornadas em uma consulta ou para referenciar linhas em uma ordem específica.
No comando SQL apresentado na questão, select * from fisioterapeuta where rownum > 10;
, a intenção é selecionar registros após os 10 primeiros retornados pela consulta. Entretanto, o enunciado afirma erroneamente que o uso do ROWNUM é exclusivo para operações de atualização, ou seja, o comando UPDATE. Isso não é verdade, já que o ROWNUM é frequentemente utilizado em operações de seleção de dados com o comando SELECT para controlar o número de linhas retornadas.
Além disso, é importante destacar que a utilização do ROWNUM superior a um valor, como no exemplo dado, pode não funcionar como o esperado. Isso ocorre porque o ROWNUM é atribuído antes que a condição do WHERE
seja avaliada, portanto, a consulta não retornará nenhuma linha, já que não existem linhas com número de linha maior que 10 antes de qualquer linha ser sequer considerada.
Na prática, para obter linhas 11 em diante, você pode usar uma subconsulta que atribua os números de linhas e, em seguida, aplicar um filtro sobre a subconsulta para buscar as linhas desejadas. Por exemplo:
SELECT * FROM (
SELECT a.*, ROWNUM rnum
FROM (SELECT * FROM fisioterapeuta ORDER BY alguma_coluna) a
WHERE ROWNUM <= 20
)
WHERE rnum > 10;
Em resumo, a afirmação de que ROWNUM só pode ser usado em UPDATE é incorreta, e o uso da pseudo-coluna ROWNUM em consultas SELECT é perfeitamente válido no Oracle para outras finalidades, como limitar os resultados de uma consulta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
No Oracle, o campo reservado pode ser usado para limitar o número de linhas retornadas em uma consulta SELECT. O comando está correto e funcionará no Oracle para selecionar todas as linhas da tabela "fisioterapeuta" após a décima linha.
O uso do é comumente empregado para limitar o número de resultados em uma consulta e é especialmente útil quando você deseja paginar resultados ou recuperar um número específico de registros.
Portanto, o comando está correto e válido para realizar a operação descrita no Oracle.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo