SQL 之 别名

关键字:AS


SQL Server 直接从表中取直接量或者计算量没有列名:

SELECT 5, FirstName + ' ' + LastName FROM Students

结果是两列都没有列名


解决这个问题,使用别名。


列的别名

SELECT [原有列名 / 直接量(如5,‘David’等)/ 计算量(如Price * Quantity)]  AS '列的别名'  FROM Table_Name

注意:列的别名用单引号括起来


表的别名

针对不好理解的表名,可以取一个又代表意义的表名。尤其是连接表的结果表。

SELECT 列 FROM 表名  AS 表的别名

不需要单引号括起来

SELECT  LastName FROM Orders123 AS Orders

也可以使用表的别名作为列的前缀,尤其是从多个表中选取数据时,使用前缀是有必要的。

SELECT  Orders.LastName FROM Orders123 AS Orders

使用表的别名有以下情况:

1. 从多个表中进行选择的情况

2. 在一条SELECT语句中使用子查询的情形




### SQL别名的介绍 SQL别名是为 SQL 语句中的表指定的一个临时名称。使用表别名可以简化 SQL 语句,提高代码的可读性,尤其在涉及多表连接的复杂查询中,能使查询语句更加简洁明了。同时,当表名很长或者在自连接(一个表与自身进行连接)时,表别名能避免混淆,让查询逻辑更清晰。 ### SQL别名的使用方法 在 SQL 中,为表指定别名有两种常见的语法: - 显式使用 `AS` 关键字:`table_name AS alias_name`。 - 隐式省略 `AS` 关键字:`table_name alias_name`。 ### 示例 以下是不同场景下使用 SQL别名的示例: #### 单表查询使用别名 假设有一个名为 `employees` 的表,包含 `employee_id`、`first_name`、`last_name` 和 `salary` 等列。 ```sql -- 显式使用 AS 关键字 SELECT e.employee_id, e.first_name, e.last_name, e.salary FROM employees AS e; -- 隐式省略 AS 关键字 SELECT e.employee_id, e.first_name, e.last_name, e.salary FROM employees e; ``` 在上述示例中,将 `employees` 表别名为 `e`,在 `SELECT` 子句中使用别名来引用表中的列,使代码更简洁。 #### 多表连接使用别名 假设有两个表:`employees` 表和 `departments` 表,`employees` 表中有 `department_id` 列,`departments` 表中有 `department_id` 和 `department_name` 列。 ```sql -- 显式使用 AS 关键字 SELECT e.employee_id, e.first_name, e.last_name, d.department_name FROM employees AS e JOIN departments AS d ON e.department_id = d.department_id; -- 隐式省略 AS 关键字 SELECT e.employee_id, e.first_name, e.last_name, d.department_name FROM employees e JOIN departments d ON e.department_id = d.department_id; ``` 在这个多表连接的示例中,分别为 `employees` 表和 `departments` 表指定了别名 `e` 和 `d`,通过别名来引用表中的列,使查询语句更易读,也避免了列名冲突。 #### 自连接使用别名 假设 `employees` 表中有 `employee_id`、`first_name`、`last_name` 和 `manager_id` 列,要查询每个员工及其经理的信息。 ```sql -- 显式使用 AS 关键字 SELECT e1.employee_id, e1.first_name, e1.last_name, e2.first_name AS manager_first_name, e2.last_name AS manager_last_name FROM employees AS e1 JOIN employees AS e2 ON e1.manager_id = e2.employee_id; -- 隐式省略 AS 关键字 SELECT e1.employee_id, e1.first_name, e1.last_name, e2.first_name AS manager_first_name, e2.last_name AS manager_last_name FROM employees e1 JOIN employees e2 ON e1.manager_id = e2.employee_id; ``` 在自连接中,为同一个表指定不同的别名 `e1` 和 `e2`,将其视为两个不同的表进行连接,从而查询出员工及其经理的信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值