I have always been a firm believer in identifying each field you need and requesting that field to be returned. If there is only one row the difference may not be substantial but 100 bytes extra times say 1000 rows because 100k more of data transferred.
Also if you take the data and then start sorting it, the database server will attempt to sort in memory and if there is insufficient memory will write to disk. Taking all data will mean that all the data gets stored in memory which means fewer records are stored and sorted in memory potentially causing performance issues with your queries.
I have also seen many times when people write INSERT statements with SELECT * FROM... Doing this could results in data corruption issues especially if the underlying table in the select has added new fields or has changed the order of the fields.