SELECT * FROM tableName; --> returns all columns data available in the table named as "tableName"
--> You can not alias the column names
--> You can not do calculation with *

SELECT FieldName FROM TableName;--> returns specific column (named as "FieldName" ) data
--> You can alias the column names
SELECT FieldName AS AliasFieldName FROM tableName;--> You can do calculation
For example, you can find out annual salary from the salary column
SELECT 12*Salary AS AnnualSal FROM TableName;

Select * should be avoided from performance point of view, as even if you just have to use one column; you are unnecessary returning all columns from the database that consumes processing power and resources of the system.

So better to always use Column names with the Select statement, unless you know that you are going to use all columns of the database table.

There is no specific difference between those two queries...
For best practices better to specify the all column names in the SELECT query ...
In the following case you might need to modify the code ( if you use select * ):
Whenever new columns added to the table you must get application errors