Ver Mensaje Individual
  #6  
Antiguo 09-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Cita:
Empezado por AzidRain Ver Mensaje
O lo que es lo mismo, debes definir un índice para tu tabla que servirá para que tu motor te entregue los registros ordenados de una cierta manera por default. Puedes usar un campo autoincrementado para llevar un secuencia según el orden en que fueron ingresados los registros.
Lo siento, pero no estoy de acuerdo con eso. Por mucho que definas un índice, si haces un simple:

Código SQL [-]
select *
  from tabla

El motor te devolverá los datos en un orden no definido.

Por el contrario, si lanzás un query con la clausula order by, aún cuando el motor no tenga índices en que apoyarse, te entregará los datos perfectamente ordenados.

El hecho de que existan o no índices, es un tema que tiene que ver con el desempeño de la base de datos, pero no con el ordenamiento de los resultados que devuelve un motor.

AzidRain, no es conveniente generalizar en este tema, pues mientras algún motor probablemente se base en un índice (por ejemplo, el de la llave primaria) para entregar datos ordenados, el estándar SQL no le impone la obligación de hacerlo, con lo que el comportamiento podría variar entre versiones, y definitivamente varía entre motores.

Dado que no estamos hablando de ningún motor en particular... es mejor hacer afirmaciones apegadas al estándar, y dejar que cada quien compruebe si su base de datos lo cumple o no.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita