MYSQL: ALIASES
This MySQL tutorial explains
how to use MySQL ALIASES (temporary names for columns or
tables) with syntax and examples.
DESCRIPTION
MySQL ALIASES can be used to
create a temporary name for columns or tables.
- COLUMN ALIASES are used to make column headings in
your result set easier to read.
- TABLE ALIASES are used to shorten your SQL to make
it easier to read or when you are performing a self join (ie: listing the
same table more than once in the FROM clause).
Advantages of MySQL Aliases
Following are the advantage of an alias in MySQL:
- It is preferred in the case when more than one table is going to use in a query.
- It provides a very useful and flexible feature that allows us to achieve complex tasks quickly.
- It makes the column or table name more readable.
- It is useful when you use the function in the query.
- It can also allow us to combines two or more columns.
- It is also useful when the column names are big or not readable.
SYNTAX
The syntax to ALIAS A COLUMN
in MySQL is:
column_name [ AS ] alias_name
OR
The syntax to ALIAS A TABLE
in MySQL is:
table_name [ AS ] alias_name
Parameters or
Arguments
column_name
The
original name of the column that you wish to alias.
table_name
The
original name of the table that you wish to alias.
AS
Optional.
Most programmers will specify the AS keyword when aliasing a column name,
but not when aliasing a table name. Whether you specify the AS keyword or not has no impact on the
alias in MySQL. It is a personal choice in MySQL, unlike other databases. (Our
examples will use AS when aliasing a column name but omit AS when aliasing a table name.)
alias_name
The
temporary name to assign to the column or table.
Note:
- If the alias_name contains spaces, you must enclose
the alias_name in quotes.
- It is acceptable to use spaces when
you are aliasing a column name. However, it is not generally good practice
to use spaces when you are aliasing a table name.
- The alias_name is only valid within the scope of
the SQL statement.
EXAMPLE - ALIAS A COLUMN
Generally, aliases are used
to make the column headings in your result set easier to read. For example,
when using the MAX function, you might alias the result of the MAX function in
MySQL.
For example:
SELECT department, MAX(salary) AS highest
FROM employees
GROUP BY department;
In this example, we've
aliased the MAX(salary) field as highest. As a result, highest will display as the heading for the
second column when the result set is returned. Because our alias_name did not include any spaces, we are not
required to enclose the alias_name in quotes.
However, it would have been
perfectly acceptable to write this example using quotes as follows:
SELECT department, MAX(salary) AS "highest"
FROM employees
GROUP BY department;
Next, let's look at an example
where we are required to enclose the alias_name in quotes.
For example:
SELECT department, MAX(salary) AS "highest salary"
FROM employees
GROUP BY department;
In this example, we've
aliased the MAX(salary) field as "highest salary". Since there are spaces
in this alias_name,
"highest salary" must be enclosed in quotes.
EXAMPLE - ALIAS A TABLE
When you create an alias on a
table, it is either because you plan to list the same table name more than once
in the FROM clause (ie: self join), or you want to shorten the table name to
make the SQL statement shorter and easier to read.
Let's look at an example of
how to alias a table name in MySQL.
For example:
SELECT p.product_id, p.product_name, suppliers.supplier_name
FROM products p
INNER JOIN suppliers
ON p.supplier_id = suppliers.supplier_id
ORDER BY p.product_name ASC, suppliers.supplier_name DESC;
In this example, we've
created an alias for the products table called p.
Now within this SQL statement, we can refer to the products table as p.
When creating table aliases,
it is not necessary to create aliases for all of the tables listed in the FROM
clause. You can choose to create aliases on any or all of the tables.
For example, we could modify
our example above and create an alias for the suppliers table as well.
SELECT p.product_id, p.product_name, s.supplier_name
FROM products p
INNER JOIN suppliers s
ON p.supplier_id = s.supplier_id
ORDER BY p.product_name ASC, s.supplier_name DESC;
Now we have an alias for suppliers table called s as well as the alias for the products table called p.
Post a Comment
If you have any doubts, Please let me know
Thanks!