给表起别名
一、 起别名的方法
在每个字段前指明此字段来自哪个表,SQL语句会一下子变得特别长。这时我们可以在 FROM
后给表起一个简写的别名,从而提高代码的可读性。如下代码所示:
SELECT emp.employee_id, dept.department_name, emp.department_id
FROM employees emp, departments dept
WHERE emp.department_id = dept.department_id;
查询结果:
二、 注意事项
- 一旦在
FROM
后给表起别名,那么其他地方就只能使用表的别名,而不能使用表原来的名称。否则就会报错,如下代码所示:
# 错误的代码
SELECT employees.employee_id, dept.department_name, emp.department_id
FROM employees emp, departments dept
WHERE emp.department_id = departments.department_id;
在第 2 行和第 4 行中分别使用了 emp
的原名 employees
和部门表 dept
的原名 departments
。查询结果报错。
查询结果:
三、 原因
原因就是SQL语句的执行顺序造成的。在SQL中,SELECT...FROM...WHERE...
不是按顺序依次执行的。首先执行的是 FROM..
,FROM..
中表的原名被别名所覆盖,SQL就只能识别别名而认为原名不存在了。