在SQL中,select语句中表名后面的字母是什么?
在 a代表什么在SQL中,select语句中表名后面的字母是什么?,sql,Sql,在 a代表什么 谢谢。a是表的别名ADMIN A是表ADMIN的简写符号(术语:别名)A是所谓的表别名。在查询中的以下部分: SELECT a.NAME, a.NUMBER, a.STRING, a.RDB$DB_KEY FROM ADMIN a 通过在表名后加上“a”,您已经创建了一个别名,现在可以用它代替表名。如果没有别名,则需要使用表的全名,以便完全限定查询中引用的列名 如果没有表别名,查询将如下所示: FROM ADMIN a 尽管您仅从单个表中选择列,但在本例中实际上根本不需要表名
谢谢。a是表的别名ADMIN
A是表ADMIN的简写符号(术语:别名)A是所谓的表别名。在查询中的以下部分:
SELECT a.NAME, a.NUMBER, a.STRING, a.RDB$DB_KEY FROM ADMIN a
通过在表名后加上“a”,您已经创建了一个别名,现在可以用它代替表名。如果没有别名,则需要使用表的全名,以便完全限定查询中引用的列名
如果没有表别名,查询将如下所示:
FROM ADMIN a
尽管您仅从单个表中选择列,但在本例中实际上根本不需要表名(或别名)。a是表的别名 您可以将更改为任何有效标识符,它不依赖于基础架构。 通常,它用于区分不同表中的字段,节省您每次键入完整表名的时间(使用短别名使SQL更易于阅读) 在你提供的样本中,它实际上不是必需的
SELECT ADMIN.NAME, ADMIN.NUMBER, ADMIN.STRING, ADMIN.RDB$DB_KEY FROM ADMIN
应该也能正常工作查询使用的是类似的名称,这样您就不必写ADMIN.NAME、ADMIN.NUMBER等。如果您的表上有15个字段,并且您的表有一个类似VPCPDEEE的名称,那么反复键入相同的表名会非常麻烦。a=ADMIN 等价物:
SELECT NAME, NUMBER, STRING, RDB$DB_KEY FROM AMDIN
表ADMIN的别名。这里不需要,因为查询中只有一个表 如果有多个表,并且某些列相同,则需要区分它们。一种方法是将表名写在列名前面。例如:
SELECT ADMIN.NAME, ADMIN.NUMBER, ADMIN.STRING, ADMIN.RDB$DB_KEY FROM ADMIN
若要使其更短,请为表名添加别名
Select ADMIN.Name, person.name from ADMIN, person where person.id = admin.id
a用作ADMIN表的别名 什么时候使用别名是正确的,别名应该采取什么形式,这些都会引起sql编写者的强烈意见 关于这个问题,这里有几个问题
基本概念是“范围变量”
Chris Date和Hugh Darwen认为口语术语“别名”和SQL标准的术语“相关名称”都是“不恰当的”和“严重[误解]真实的状态”。 :
你可能有 学习了范围变量的不同术语,Codd在 他的早期论文,但直到2003年才被SQL标准采纳。在里面 有些SQL文本称为别名,但这根本不合适, 真的,因为这意味着它是一个表名,因此 表示表而不是行。SQL标准同样使用 不恰当的术语关联名称(它不表示关联, 不管是什么),但仅适用于名称为 明确给出(通过示例中的作为),但不适用于以下情况:
一个简单的表名兼作范围变量名。在SQL:2003中
采用范围变量作为一个方便的单一术语来涵盖
更一般的情况
:
关系模型中的范围变量是“范围”变量
覆盖“某些表中的行集(或某些表中的元组集
关系,更准确地说)。在SQL中,这样的变量由
在来自
的或
加入
,如下例所示:
select a.Name, p.Name from ADMIN a, person p where person.id = admin.id
SX
这是一个范围变量,其范围在表S
上;换句话说
换句话说,其允许值是表S
中的行。你可以想到
选择要计算的表达式,如下所示。第一,
范围变量采用其允许的值之一,例如行
对于供应商SNO='S1'
。该行中的状态值是否更大
超过15岁?如果是,则结果中会显示供应商编号'S1'
。
接下来,范围变量移动到表S
的另一行,例如
供应商的行SNO='S2'
;同样,如果该行中的状态值
大于15,则相关供应商编号显示在
结果。等等
SQL要求始终使用SELECT
表达式
用范围变量表示;如果没有这样的变量
显式指定时,它假定存在具有
与相应的表同名
警告:许多SQL文本
将范围变量名称(或相关名称)作为别名,以及
将它们描述为表的替代名称
它们的范围很广。但这样的描述严重歪曲了事实
事实上,真实的事态显示出严重的不信任
了解真实情况,并强烈反对
那个账户
有趣的是,LINQ正确识别范围变量,例如
那么,为什么不直接从AMDIN?Jack中选择名称、数字、字符串、RDB$DB_键呢?这是一个非常有效的选项query@Jack:如果您正在引用两个表(例如ADMIN_1、ADMIN_2),并且它们有相同的列(例如NAME),那么您的选择必须区分这些表,以便知道从哪个表中提取。因此,使用a.NAME比ADMIN_1.NAME短,阅读起来也很烦人,而且我们阅读代码的频率要比编写代码的频率高很多。别名增强了可读性。
SELECT SX.SNO
FROM S AS SX
WHERE SX.STATUS > 15