7 Reasons Why Using SELECT * FROM TABLE in SQL Query Is a Bad Idea

I have read many articles on the internet where people suggest that using SELECT * in SQL query is a bad practice and you should always avoid that. Instead, you should always use an explicit list of columns. That's a good suggestion and one of the SQL best practices I teach to junior developers, but many of them don't explain the reason behind it. 

Unless you explain some reasons why one should not use SELECT * in queries, it's difficult to convince many SQL developers, many of whom have started learning SQL by doing SELECT * from EMP in the Oracle database.