Una tabella non ha un ordine di riga naturale, alcuni sistemi di database rifiuteranno effettivamente la tua query se non aggiungi un ORDER BY
clausola alla fine del tuo SELECT
Perché l'ordine è cambiato?
Poiché il motore di database recupera le righe nell'ordine fisico in cui provengono dall'archivio. Alcuni motori, come SQL Server, possono avere un CLUSTERED INDEX
che forza un ordine fisico, ma non è mai veramente garantito che tu ottenga i risultati in quell'ordine preciso.
L'indice cluster esiste principalmente come ottimizzazione. PostgreSQL ha un CLUSTER
simile funzione per modificare l'ordine fisico, ma è un processo pesante che blocca la tabella:http://www.postgresql.org/docs/9.1/static/sql-cluster.html
Come forzare un ordine alfabetico delle righe?
Aggiungi un ORDER BY
clausola nella tua query.
SELECT * FROM table ORDER BY column