DIVISIN SISTEMA UNIVERSIDAD ABIERTA Y EDUCACIN A DISTANCIA Modalidad: A Distancia Licenciatura en Informtica Alumno: Carlos Alvarado Martnez Nmero de Cuenta: 304045046 Correo: carlos-alvarado@outlook.com Materia: Desarrollo de Aplicaciones en Manejadores de Bases de Datos Relacionales Unidad 4 Actividad 10 Lee el apartado Setting Row Range with LIMIT and OFFSET del captulo 4 del libro Practical PostgreSQL, en http://www.commandprompt.com/ppbook/x5802.htm#JOINS y el apartado 7.6 LIMIT and OFFSET de la documentacin en lnea de PostgreSQL versin 8.4, en http://www.postgresql.org/docs/8.4/static/queries-limit.html y contesta las siguientes preguntas: 1. Para qu sirve la clusula LIMIT? La clusula LIMIT sirve para especificar la cantidad de filas que sern retornadas, aunque por supuesto, la consulta podra retornar un valor menor de filas que el LIMIT especificado; poner LIMIT ALL es lo mismo que no poner lmite, lo cual resulta evidente. 2. Para qu sirve la clusula OFFSET? La clusula OFFSET sirve para especificar desde qu fila se comenzar a imprimir la salida de retorno de la consulta especificada, es decir, si se especifica un OFFSET 5, se comenzar desde la quinta fila a imprimir el resultado del query. Un OFFSET muy grande de todas formas tiene que ser computado por el servidor de la base de datos, por lo que un valor muy alto de OFFSET podra no ser muy eficiente.
Por supuesto, se pueden especificar querys con ambas clusulas, aqu
un ejemplo: booktown=# SELECT isbn, title, publication booktown-# FROM editions NATURAL JOIN books AS b (book_id) booktown-# ORDER BY publication DESC booktown-# LIMIT 5; isbn | title | publication ------------+-----------------------+------------0596000855 | Programming Python | 2001-03-01 0451457994 | 2001: A Space Odyssey | 2000-09-12 0451198492 | 2001: A Space Odyssey | 1999-10-01 044100590X | Dune | 1999-10-01 0929605942 | The Tell-Tale Heart | 1998-12-01 (5 rows) booktown=# SELECT isbn, title, publication booktown-# FROM editions NATURAL JOIN books AS b (book_id) booktown-# ORDER BY publication DESC booktown-# LIMIT 5 booktown-# OFFSET 2; isbn | title | publication ------------+-----------------------+------------0451198492 | 2001: A Space Odyssey | 1999-10-01 044100590X | Dune | 1999-10-01 0929605942 | The Tell-Tale Heart | 1998-12-01 0441172717 | Dune | 1998-09-01 1885418035 | The Tell-Tale Heart | 1995-03-28 3. Por qu es conveniente combinar la clusula ORDER BY con la clusula LIMIT? Debido a que si no se especifica un ORDER BY, el retorno de la consulta ser inconsistente y no se tendr seguridad alguna sobre la posicin de los datos retornados, esto no es un error, es una consecuencia inherente del hecho de que SQL no promete entregar los resultados de un query en cualquier orden particular si no se usa la clusula ORDER BY para especificar el orden.