Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

explicar codigo

Estas en el tema de explicar codigo en el foro de Oracle en Foros del Web. Hola e encontrado en internet una consulta que me regresa una cantidad determinada de registros, por ejemplo solo los 10 primeros registros de una tabla ...
  #1 (permalink)  
Antiguo 13/07/2007, 08:47
 
Fecha de Ingreso: noviembre-2006
Mensajes: 45
Antigüedad: 18 años
Puntos: 1
explicar codigo

Hola e encontrado en internet una consulta que me regresa una cantidad determinada de registros, por ejemplo solo los 10 primeros registros de una tabla pero la verdad casi no le entiendo quisiera si alguien me la podria explicar para que me quede mas clara.


Select * from (select rownum as NombreColumna, f.* from comentarios f ) where NombreColumna>1 and NombreColumna<=10;

agradeceria su ayuda....... gracias
  #2 (permalink)  
Antiguo 13/07/2007, 10:45
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Re: explicar codigo

Aparte de que esa query solo te trae 9 ¿ que es lo que no entiendes exactamente ?
  #3 (permalink)  
Antiguo 16/07/2007, 09:00
 
Fecha de Ingreso: noviembre-2006
Mensajes: 45
Antigüedad: 18 años
Puntos: 1
Re: explicar codigo

pues a lo que no le entiendo es en el pedaso de codigo donde dice
f.* from comentarios f

que es lo que se hace con el f.* a ese pedaso es el que no le entiendo.

espero y me entiendas lo que te quise decir y me puedas ayudar gracias
  #4 (permalink)  
Antiguo 16/07/2007, 09:36
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
Re: explicar codigo

El * selecciona TODAS las columnas de una tabla, la f es un alias que se le ha dado a la tabla

Código:
Select * from TABLA
es lo mismo que
Código:
Select T.* from TABLA T
Y con ROWNUM < valor puedes limitar el número de filas que devolverá la query, UN EJEMPLO: si quieres los 10 valores más baratos (por poner ejemplo), la query de dentro debería tener ORDER by precio, para que al coger sólo 10 coja los de precio menor
  #5 (permalink)  
Antiguo 17/07/2007, 06:33
Avatar de MACGREGOR  
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: explicar codigo

Hola,

Esa consulta habría funcionado perfectamente si pones solo

select * from tabla t

el hecho de utilizar un alias (t) y luego poner t.*
puede parecer un poco absurdo o innecesario, pero es sumamente útil en muchos casos.

Imagina que haces una consulta que cruza 5 tablas.

select *
from tabla1 t1,
tabla2 t2,
tabla3 t2,
tabla4 t4,
tabla5 t5
where ......

Esta select te devolvería TODOS los campos de las 5 tablas, pero podrías necesitar hacer la misma select solo mostrando los campos de la primera y la última tabla.

" select t1.*, t5.* from ....." te ahorraría el trabajo de escribir todos y cada uno de los campos de estas dos tablas, pero lo más importante a mi juicio es que queda mucho más claro y evitas errores tontos como poner el alias de una tabla que no corresponde.

Un saludo.
  #6 (permalink)  
Antiguo 18/07/2007, 09:53
 
Fecha de Ingreso: noviembre-2006
Mensajes: 45
Antigüedad: 18 años
Puntos: 1
Re: explicar codigo

Hola pues ya con estas explicaciones ya me quedo muy claro lo que hace la consulta y que es lo que se hace con f.* from comentarios f.

muchas gracias por su ayuda de verdad me fue de gran utilidad.


gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:09.