SQL

SQL 知识量:22 - 44 - 129

13.1 表别名><

使用表别名- 13.1.1 -

在SQL中,除了可以使用列的别名外,也可以使用表的别名。使用表别名的理由是:

  • 可以缩短SQL语句。

  • 可以在一条select语句中多次使用相同的表。

定义表别名与定义列别名类型,一般使用as关键字。

例如:查询学生信息及选课信息,按照学生姓名排序。

select s.*,l.name 
from student as s,lesson as l,course as c 
where s.id=c.id_student and l.id=c.id_lesson 
order by s.name;

结果:

+----+-------+-----+--------+---------+
| id | name  | age | sex    | name    |
+----+-------+-----+--------+---------+
|  3 | Bob   |  11 | male   | English |
|  2 | Jame  |  12 | male   | Natural |
|  2 | Jame  |  12 | male   | Maths   |
|  5 | Jen   |  11 | female | Natural |
|  5 | Jen   |  11 | female | English |
|  4 | Robot |  10 | male   | Natural |
|  4 | Robot |  10 | male   | Maths   |
|  4 | Robot |  10 | male   | English |
|  1 | Susan |  11 | female | Maths   |
|  1 | Susan |  11 | female | English |
|  6 | Toney |  10 | male   | Natural |
|  6 | Toney |  10 | male   | Maths   |
+----+-------+-----+--------+---------+

在以上示例中,利用as关键字,student的别名定义为s,lesson的别名定义为l,course的别名定义为c。在SQL中,select部分、where部分和order by子句都可以使用表别名,这样大大简化了SQL语句,不过在阅读SQL语句时可能需要费点力气。

需要注意的是:

  • Oracle中没有as关键字,在Oracle中使用表别名仅需简单的指定列名和别名即可,例如:student s。

  • 表别名只在查询执行中使用,与列别名不同,表别名不会出现在查询结果中。