Creating alias in query and using it
Mastering SQL Aliases: Simplify Queries and Enhance Readability

Learn how to use SQL aliases for tables and columns to make your queries more concise, readable, and manageable, especially in complex joins and aggregate functions.
SQL aliases are a powerful feature that allows you to temporarily rename tables or columns in a query. This renaming is purely for the duration of the query execution and does not affect the actual database schema. Aliases are incredibly useful for improving the readability of complex queries, shortening long table or column names, and disambiguating column names when joining multiple tables that share common column names.
Why Use Aliases?
The primary motivations for using aliases revolve around clarity and conciseness. When dealing with large databases, table and column names can sometimes be lengthy or cryptic. Aliases provide a way to assign more meaningful or shorter names, making your SQL code easier to understand and maintain. They are particularly indispensable in scenarios involving self-joins, aggregate functions, or when you need to differentiate between columns from different tables that happen to have the same name.
flowchart TD A[Start Query] --> B{Long Table/Column Names?} B -->|Yes| C[Apply Alias] C --> D[Improve Readability] B -->|No| E{Multiple Tables with Same Column Name?} E -->|Yes| C E -->|No| F[Query Without Alias] D --> G[End Query] F --> G
Decision flow for when to use SQL aliases
Column Aliases
Column aliases are used to give a temporary name to a column in the result set. This is often done to make the output more user-friendly, especially when the column is derived from an expression or an aggregate function. The AS
keyword is optional in most SQL dialects but is generally recommended for clarity.
SELECT
first_name AS "First Name",
last_name AS "Last Name",
salary * 1.10 AS "Annual Salary (10% Increase)"
FROM
employees;
Using column aliases to rename output columns and an expression.
"First Name"
) or square brackets (e.g., [First Name]
) depending on your SQL dialect (e.g., SQL Server uses brackets, PostgreSQL/MySQL use double quotes).Table Aliases
Table aliases (also known as correlation names) are used to assign a temporary, shorter name to a table. This is incredibly useful when you're joining multiple tables, especially if the table names are long. It also helps to qualify column names, making it clear which table a column belongs to, which is crucial when multiple tables have columns with identical names.
SELECT
e.employee_id,
e.first_name,
d.department_name
FROM
employees AS e
JOIN
departments AS d ON e.department_id = d.department_id
WHERE
e.salary > 50000;
Using table aliases 'e' for employees and 'd' for departments.
Aliases with Self-Joins
Self-joins are a special case where a table is joined with itself. In such scenarios, aliases are not just helpful but absolutely essential. Without aliases, the database system wouldn't know which instance of the table you're referring to, leading to ambiguity and errors. Aliases allow you to treat the single table as two separate logical entities within the query.
SELECT
e1.first_name AS "Employee Name",
e2.first_name AS "Manager Name"
FROM
employees AS e1
JOIN
employees AS e2 ON e1.manager_id = e2.employee_id;
Self-join using aliases 'e1' and 'e2' to find employees and their managers.
Best Practices for Using Aliases
While aliases offer great flexibility, following some best practices can ensure your queries remain clear and maintainable:
- Keep them short but meaningful: Single-letter aliases are common for tables (e.g.,
e
foremployees
,d
fordepartments
), but for complex queries, slightly longer, descriptive aliases can be better. - Use
AS
for clarity: Although often optional, explicitly using theAS
keyword improves readability, especially for column aliases. - Be consistent: Adopt a consistent naming convention for your aliases across your codebase.
- Avoid over-aliasing: Don't use aliases if they don't add value. Simple queries with short, clear names might not need them.