SQL Aliases
By using SQL, you can specify aliases for table names or column names.
Essentially, creating aliases is to make column names more readable.
SQL Alias Syntax for Columns
SELECT column_name AS alias_name
FROM table_name;
SQL Alias Syntax for Tables
SELECT column_name(s)
FROM table_name AS alias_name;
Demonstration Database
In this tutorial, we will use the tutorialpro sample database.
Below is the data from the "Websites" table:
mysql> SELECT * FROM Websites;
+----+---------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+---------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | tutorialpro.org | http://www.tutorialpro.org/ | 5000 | USA |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND |
+----+---------------+---------------------------+-------+---------+
Below is the data from the "access_log" website access log table:
mysql> SELECT * FROM access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date |
+-----+---------+-------+------------+
| 1 | 1 | 45 | 2016-05-10 |
| 2 | 3 | 100 | 2016-05-13 |
| 3 | 1 | 230 | 2016-05-14 |
| 4 | 2 | 10 | 2016-05-14 |
| 5 | 5 | 205 | 2016-05-14 |
| 6 | 4 | 13 | 2016-05-15 |
| 7 | 3 | 220 | 2016-05-15 |
| 8 | 5 | 545 | 2016-05-16 |
| 9 | 3 | 201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set (0.00 sec)
Column Alias Example
The following SQL statement specifies two aliases, one for the name column and one for the country column. Note: If the column name contains spaces, it requires the use of double quotes or square brackets:
Example
SELECT name AS n, country AS c
FROM Websites;
Execution output:
In the following SQL statement, we combine three columns (url, alexa, and country) and create an alias named "site_info":
Example
SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS site_info
FROM Websites;
Execution output:
Table Alias Example
Example
SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS site_info
FROM Websites;
Execution output:
SELECT w.name, w.url, a.count, a.date FROM Websites AS w, access_log AS a WHERE a.site_id=w.id and w.name="tutorialpro.org";
Execution output:
The same SQL statement without aliases:
SELECT Websites.name, Websites.url, access_log.count, access_log.date FROM Websites, access_log WHERE Websites.id=access_log.site_id and Websites.name="tutorialpro.org";
Execution output:
Aliases are useful in the following cases:
- When the query involves more than one table
- When functions are used in the query
- When column names are long or poor in readability
- When combining two or more columns ```