SQL Server中表别名有的作用

  

<强> SQL提示

是一款拥有SQL智能提示功能的SQL Server和VS插件. SQL提示能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码易读性——这在开发者使用的是不大熟悉的脚本时尤其有用. SQL提示是立即可用的且能极大的提高生产率。

表别名的主要目的(除了需要使用别名的情况之外)是使SQL查询更易于阅读和理解。不,这不是我输入的错误。别名并没有使键入SQL查询变得更加容易和快捷。如果您使用的是SQL提示,则尤其如此,因为它会为您完成所有键入操作。

如果启用其“选项,则在您输入SQL语句时,SQL提示会自动建议一个或两个字符的别名,只是因为它必须提供某些内容但不能提供含义。这样做不是因为简短的无意义的名称更好。这仅意味着数据库开发人员应改进默认别名以提供含义。

在标准SQL中,仅在选择语句中使用别名。可以说,您只能在具有从子句的语句中使用它们,因为SQL Server的语法允许它在更新和删除语句中使用从子句。使用表别名时,您只是为表引用的实例提供了特定的名称,而不是实际的表。只有该引用才是别名。

在SQL中,如果列名本身是模棱两可的,则只需要使用对表源的引用来限定列名,因为列名本身可能来自于子句中的一个或多个表源。在SQL Server中,使用合格的列名无论如何都会使解析器更轻松,并使查询更易于阅读。

但是,如果没有加入子句,则在列名中添加任何种类的表限定符(无论是否带别名)都是完全多余的,不应使用。

要使一列符合其表的资格,通常不必使用表别名(在ANSI SQL中也称为关联名)。您可以只使用提供该列的表源的名称。

仅当引用不具有名称的表源(例如派生表或行集函数)或使用命名表源(例如表,视图或表)时,才必须使用别名值函数,在同一查询中不止一次。一般而言,如果表源已经有了合适的名称,那么为什么要提供另一个名称呢?通常,您这样做只是为了使查询的意图更加清晰。如果没有,那么它就会成为障碍。

需要使用别名的原因之一是基表的名称中包含非法字符。您可能看起来很生的气,说您永远不会屈服于此,但是另一方面,在表名限定符的开头使用“@”是不合法的,因此表变量是一个问题,例如,如果不为表变量提供别名,则必须提供方括号定界符以通过其全名引用它。当然,如果表中确实包含非法字符,则表别名可以使您免于讨厌的方括号。

您还必须使用表别名来限定一列,而不是依赖于表名(如果该表位于在加入中被两次使用的表中),例如:

SELECT  Object_Schema_Name (TablesEtc.object_id), +, & # 39;强生# 39;,+,TablesEtc.name  AS 表名,   ,,,Constraints.name  +, & # 39;,(& # 39;, +,空白(Constraints.type)   ,,,,,+,& # 39;)& # 39;,COLLATE  DATABASE_DEFAULT  AS (约束)   得到才能sys.objects  AS  TablesEtc   ,,,INNER  JOIN  sys.objects  AS 约束   ,,,,,,Constraints.parent_object_id =TablesEtc.object_id   ,,,,WHERE  TablesEtc.is_ms_shipped=0   ,,,,ORDER  BY 表名

 SQL Server中表别名有的作用“> </p> <p> sys.objects与系统。对象结合在一起,因此如果不使用别名就无法正常工作。通过为他们选择有意义的名称,我们还可以避免错误。</p> <p>如果要加入表源(例如查询),则需要提供一个名称。不存在默认名称。在这里,我们将从多行值创建两个表源,然后将它们联接。</p> <pre类= SELECT  numbers.number,,合并(Names.NameForFrequency & # 39;经常# 39;),AS  HowManyTimes ,   得到;   ,,,(值(0)、(1)、(2),(3),(4),(5)),AS 数字(数字)   LEFT  OUTER 加入   ,,,(值(0,& # 39;从不# 39;),(1)& # 39;一旦# 39;),(2)& # 39;两次# 39;),(3 & # 39;三次# 39;)),AS 名称(编号,NameForFrequency)   提醒numbers.number=名字。数

 SQL Server中表别名有的作用“> </p> <p>在第一个示例中,我们使用了,关键字来表明我们正在引入别名。它是可选的,因此您可以省略它,但这是一个不好的做法,因为它会使您的意图变得不太清楚。</p> <p> </p> <p>启用了“选项(“SQL提示”在“选”项在“插入的代码”在“别名”)后,SQL提示将自动为表源分配别名。但是,它无法猜测SQL背后的故事,因此它不能为您提供有意义的别名,只能提供缩写。除非您提供当前的命名约定作为自定义别名,否则它将尽可能使用表或视图名称的首字母生成别名。如果该初始字符已被使用,它将使用两个字符。<h2 class=SQL Server中表别名有的作用