Syntax:
SELECT *
FROM table_name
Using the asterisk operator *
serves as a shortcut for selecting all the columns in the table. All rows will also be selected because this SELECT
statement does not have a WHERE
clause, to specify any filtering criteria.
This would also work the same way if you added an alias to the table, for instance e
in this case:
SELECT *
FROM Employees AS e
Or if you wanted to select all from a specific table you can use the alias + " .* ":
SELECT e.*, d.DepartmentName
FROM Employees AS e
INNER JOIN Department AS d
ON e.DepartmentID = d.DepartmentID
Database objects may also be accessed using fully qualified names:
SELECT * FROM [server_name].[database_name].[schema_name].[table_name]
This is not necessarily recommended, as changing the server and/or database names would cause the queries using fully-qualified names to no longer execute due to invalid object names.
Note that the fields before table_name
can be omitted in many cases if the queries are executed on a single server, database and schema, respectively. However, it is common for a database to have multiple schema, and in these cases the schema name should not be omitted when possible.
Warning: Using SELECT *
in production code or stored procedures can lead to problems later on (as new columns are added to the table, or if columns are rearranged in the table), especially if your code makes simple assumptions about the order of columns, or number of columns returned. So it's safer to always explicitly specify column names in SELECT statements for production code.
SELECT col1, col2, col3
FROM table_name