Tabulka nemá přirozené pořadí řádků, některé databázové systémy ve skutečnosti odmítnou váš dotaz, pokud nepřidáte ORDER BY
klauzule na konci vašeho SELECT
Proč se pořadí změnilo?
Protože databázový stroj načítá vaše řádky ve fyzickém pořadí, ve kterém pocházejí z úložiště. Některé motory, jako je SQL Server, mohou mít CLUSTERED INDEX
což si vynucuje fyzické pořadí, ale stále není skutečně zaručeno, že výsledky dostanete v tomto přesném pořadí.
Clusterový index existuje většinou jako optimalizace. PostgreSQL má podobný CLUSTER
funkce změnit fyzické pořadí, ale je to náročný proces, který uzamkne tabulku:http://www.postgresql.org/docs/9.1/static/sql-cluster.html
Jak vynutit abecední pořadí řádků?
Přidejte ORDER BY
klauzule ve vašem dotazu.
SELECT * FROM table ORDER BY column