![]() |
1
120
以上两种说法没有区别。作为一种更明确的提及别名的方式 |
![]() |
2
37
在我之前回答的人都是对的。当有长查询或具有联接的查询时,可以将其用作表的别名快捷方式名称。这里有几个例子。 例1
例2
例3 使用a s关键字是一个很好的实践,也是非常推荐的,但是可以在没有AS关键字的情况下执行相同的查询(我经常这样做)。
如您所知,我在上一个示例中省略了As关键字。它可以用作别名。 例4
例4的输出
|
![]() |
3
21
当你不确定该选择哪种语法时,尤其是当没有太多可供选择的语法时,可以参考一本关于启发式的书。据我所知,SQL的唯一启发性书籍是“Joe Celko的SQL编程风格”:
这样,如果你的团队不喜欢大会,你可以责怪塞尔科——我知道我喜欢;)
更新1:IIRC很长一段时间以来,Oracle不支持
更新2:术语“correlation name”虽然由SQL标准使用,但并不合适。基本概念是 range variable . 更新3:我只是重新读了塞尔科写的东西,他错了:表没有被重命名!我现在想:
|
![]() |
4
12
这个
在这种情况下
对不起,如果我的解释无效。
更新
根据你的评论,你是对的,我之前的陈述是无效的。我能想到的唯一原因是
|
![]() |
5
6
如果不使用“SELECT*”(这是一个你应该改掉的坏习惯),那么这个用法就更明显了:
|
![]() |
6
4
这是一种为实体指定相关名称的形式化方法,以便您可以在查询的另一部分中轻松地对其进行寻址。 |
![]() |
7
3
这个
|
![]() |
8
2
在SQL的早期,它被选为解决如何处理重复列名问题的解决方案(见下面的注释)。 从另一个答案借用查询:
纵队
当然,更好的解决方案是从一开始就不允许重复的列名!很高兴,如果你用新的
但是为什么
在关系模型的早期,标题不分离的关系的叉积(或theta连接或equi连接)似乎产生了具有相同名称的两个属性的关系;Codd在他的关系演算中解决这个问题的方法是使用点限定,后来在SQL中进行了模拟(后来人们意识到,所谓的自然连接是原始的,不会丢失;也就是说,自然连接可以替换所有theta连接,甚至是交叉积) |
![]() |
9
0
例如,如果使用SQL Server 2012中的查询编辑器设计查询,您将得到:
但是,删除AS并不会对以下内容产生任何影响:
在这种情况下,使用AS是多余的,但在许多其他地方它是必需的。 |
![]() |
Community wiki · SQL语法新手 1 年前 |
|
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
![]() |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
![]() |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |