It is so called alias. In your case, it is not required.
It is used to make querying easier when current names are inconvenient, ambigious or unknown (for group functions).
- Example with ambigiousness in JOIN query. Let we have two tables:
Users
Id int (PK)
Name nvarchar(50)
Books
Id int (PK)
UserId int (FK)
Name nvarchar(30)
Now, if you query both tables it will be ambigious because names are similar.
Here you can use aliases:
SELECT u.Id as UserId, u.Name as UserName, b.Name AS BookName
FROM Users AS u
INNER JOIN Books AS b
ON u.Id = b.UserId
You will get results:
| UserId | UserName | BookName |
--------------------------------
| 1 | John | Book123 |
| 2 | Mark | BookXYZ |
etc...
In case you make a join on columns with the same name you will have to use aliases. Otherwise, it will be a wrong syntax.
INNER JOIN Books ON Id = Id ???
Group functions naming.
For example, in queries with functions like.
SELECT COUNT(*) as RowsCount FROM Users
SELECT CONCAT(FirstName, " ", LastName, " ", MiddleName) as FullName FROM Users
you can use column alias to set a name and access it in the SQL reader or somewhere else.
It can be used for aliasing columns for convenience in some situations like this one:
SELECT Id, HasUserEverBeenOnAHelpPage as Value FROM SomeTable
and get
| UserId | Value |
------------------
| 1 | true |
| 2 | false |
instead of
| UserId | HasUserEverBeenOnAHelpPage |
---------------------------------------
| 1 | true |
| 2 | false |
It doesn't mean that it cannot be used in other situations. Sometimes, it is even used for code readabiliy and programmer's convenience:
SELECT u.Id,
u.FirstName,
u.LastName,
ua.City,
ua.AddressLine,
ua.PostalCode,
us.Language,
us.IsCookieEnabled,
lh.LastEnterDate
FROM Users as u
INNER JOIN UserAddresses as ua
ON ua.UserId = u.Id
INNER JOIN UserSettings as us,
ON us.UserId = u.Id
INNER JOIN LoginHistory as lh
ON lh.UserId = u.Id
In this case, the names are not ambigious and this query can be easily done without aliases. However, it is more convenient to work with them:
SELECT Users.Id,
Users.FirstName,
Users.LastName,
UserAddresses.City,
UserAddresses.AddressLine,
UserAddresses.PostalCode,
UserSettings.Language,
UserSettings.IsCookieEnabled,
LoginHistory.LastEnterDate
FROM Users
INNER JOIN UserAddresses
ON UserAddresses.UserId = Users.Id
INNER JOIN UserSettings
ON UserSettings .UserId = Users.Id
INNER JOIN LoginHistory
ON LoginHistory .UserId = Users.Id
Read more here:
http://www.w3schools.com/sql/sql_alias.asp
When to use SQL Table Alias
http://www.techonthenet.com/sql/alias.php