The objective of this SQL Server tutorial is to teach you how to use the ALIAS feature available in almost all RDBMS including SQL Server.
What is ALIAS in SQL Server?
Alias literally means another name for the same thing. Aliases are used in SQL Server for column names and table names. They serve the purpose of convenience and security. Aliases allow us to shorten and simplify long and complicated column and table names making queries and code easier to read and understand. It also helps to secure the database by concealing the actual names of the columns and table. It is particularly significant for web applications which can be accessed over a public network and where code compromise can lead to the compromise of the database and all information in it. A Table Alias is also referred to as Correlation Name or Range Variable.
Operation
It is important to note that there is no ALIAS keyword in SQL. It is also important to note that an alias is a temporary construct. To specify an alias for a column or table one simply has to mention the alias (i.e. the other name) after the actual column or table name. Once defined it can be used in the rest of the query.
SQL Server ALIAS Syntax
The basic SQL Server syntax for column and table ALIAS is as follows.
For column: An alias for a column can be defined either with or without the AS keyword. Hence both the below are valid.
column_name | expression AS alias
OR
column_name | expression alias
For table: An alias for a table can also be defined either with or without the AS keyword. Hence both the below are valid.
table_name AS alias
OR
table_name alias
We can understand the above more precisely by going through the examples that follow.
SQL Server ALIAS Examples
Columns are also referred to as fields or attributes and the terms are used interchangeably.
A row of information in a table is called a tuple.
Let us see how the ALIAS feature is used in queries. Suppose a university has a database with below 2 tables –one listing the different courses and another containing student data. We will query the same to demonstrate the different ALIAS usage scenarios.
discipline_identifier
discipline_name
discipline_max_seat
9911
International Business
33
9913
Botany
50
9919
Political Science
25
9922
Psychology
15
9948
Applied Physics
18
9991
Molecular Biology
11
Table Name: disciplines_currently_available
enrollment_identifier
first_name
last_name
discipline_identifier
2011
Gordon
Brown
9922
2025
Priya
Patel
9913
2031
Syed
Ahmed
9913
2033
Niki
Chang
9911
2046
Roshni
Shaikh
9913
2049
Sandra
Kugelman
9922
2051
William
Hasslehof
9948
2055
Jeremy
Knight
9922
2057
Jamie
Cosby
9991
2062
Melinda
Keys
9991
2071
Ian
Smith
9919
2088
Herbert
Sanders
9911
Table Name: current_year_enrollments
1) SQL Server ALIAS – column alias examples
We can see above that the table names and column names are long and complex. We can run the below query using the ALIAS feature to represent the columns in the resultset with simple easy names. Please note that if the alias name contains space it must be within quotes. That is why Subject is without quote and ‘Available Seats’ is within quotes. The good practice is to always put the alias name within quotes.
SELECT
discipline_name AS Subject
,max_seat AS 'Available Seats'
FROM disciplines_currently_available;
It is also possible to rewrite the above query without AS since it is optional as mentioned before.
SELECT
discipline_name Subject
,max_seat 'Available Seats'
FROM disciplines_currently_available;
Both the above queries will generate the same below output listing the subjects available for enrollment in the university.
Subjects
Available Seats
International Business
33
Botany
50
Political Science
25
Psychology
15
Applied Physics
18
Molecular Biology
11
It is also possible to combine values from multiple columns and present it as a single column or attribute identified by an alias name. The below example query combines the first_name and last_name columns as Student Name.
SELECT
first_name+ ' ' + last_name AS 'Student Name'
FROM current_year_enrollment;
The query will generate the below output listing the name of all enrolled students.
Student Name
Gordon Brown
Priya Patel
Syed Ahmed
Niki Chang
Roshni Shaikh
Sandra Kugelman
William Hasselhoff
Jeremy Knight
Jamie Cosby
Melinda Keys
Ian Smith
Herbert Sanders
2) SQL Server ALIAS – table alias example
A table alias is usually used in long complex queries to make it simple and easy to read and comprehend. Let us consider the below query. It joins the current_year_enrollment and disciplines_currently_available tables to list all students with their subjects.
SELECT
current_year_enrollment.first_name + ' ' + current_year_enrollment.last_name 'Name'
,disciplines_currently_available.discipline_name ‘Subject’
FROM current_year_enrollment
INNER JOIN disciplines_currently_available
ON disciplines_currently_available.discipline_identifier=current_year_enrollment.discipline_identifier
ORDER BY disciplines_currently_available.discipline_name;
The query will generate the following output listing all students and their corresponding subjects.
Name
Subject
William Hasslehof
Applied Physics
Priya Patel
Botany
Syed Ahmed
Botany
Roshni Shaikh
Botany
Niki Chang
International Business
Herbert Sanders
International Business
Jamie Cosby
Molecular Biology
Melinda Keys
Molecular Biology
Ian Smith
Political Science
Gordon Brown
Psychology
Sandra Kugelman
Psychology
Jeremy Knight
Psychology
The same output can be obtained by issuing a more graceful query with the help of table alias as below. The query uses stu as alias for current_year_enrollment table and sub as alias for disciplines_currently_available table and produces the same resultset as above. Please note that the entire query has been written without using the AS keyword for both column and table alias.
SELECT
first_name + ' ' + last_name 'name'
,discipline_name ‘subject’
FROM current_year_enrollment stu
INNER JOIN disciplines_currently_available sub
ON sub.discipline_identifier=stu.discipline_identifier
ORDER by sub.discipline_name;