In MySQL's default storage engine, InnoDB, the table is always stored ordered by its primary key, which is the clustered index.
You don't declare a primary key in the example you show, so InnoDB will be ordered by an invisible primary key, so the storage order will be the order in which you inserted rows.
You can use ALTER TABLE to declare a primary key. This will reorder the storage by primary key. If you use Transaction_Date, a varchar, it will be ordered alphabetically, not by date. You should use a DATE data type if you want it ordered by date.
If you want a given query result set to be ordered by another column besides the primary key, then just use an ORDER BY
clause. You can get a result set ordered differently from the table's storage order.
If you don't use an ORDER BY
clause in your query, the result set has no guaranteed order in general (and per the SQL standard), and it's up to the implementation. In the case of InnoDB, there's still no guarantee it will always work this way, but practically, in current versions, a query with no ORDER BY
returns rows in the order it reads them from the index (which may be the clustered index / primary key).