数据库里的别名问题

时间:2021-09-06 07:30:27
能不能解释下别名
什么情况下需要使用关系的别名?别名的作用范围是什么
最好能讲的明白点..谢谢了

10 个解决方案

#1


SELECT TOP 2 * FROM (SELECT TOP 4 * FROM TB ORDER BY ID DESC)AS T ORDER BY ID ASC

#2


使用表别名
SELECT 语句的可读性可通过为表指定别名来提高,别名也称为相关名称或范围变量。指派表的别名时,可以使用也可以不使用 AS 关键字: 

table_name AS table alias


table_name table_alias 
在下例中,为 publishers 指派了别名 p。

USE pubs
SELECT p.pub_id, p.pub_name
FROM publishers AS p

如果为表指派了别名,那么在该 Transact-SQL 语句中对该表的所有显式引用都必须使用别名,而不能使用表名。例如,下列 SELECT 语句将产生语法错误,因为该语句在已指派别名的情况下又使用了表名:

SELECT Customers.CustomerID, /* Illegal reference to Customers. */
       Cst.FirstName, Cst.LastName
FROM Northwind.dbo.Customers AS Cst

#3


特别是在两个有相同的列名的时候要区分,一般弄个别名来

#4


最少两种情况是需要别名的
一是当两个家伙名字相同的时候,其中一个必须用别名来区分,否则不知道谁是谁了
如:SELECT A.* FROM TB A, TB B WHERE A.ID=B.PARENTID

二是当一个家伙没有名字时,必须加个名字给它
如:SELECT * FROM (SELECT * FROM TB) T

#5


等楼下

#6


同一个表需要被联查多次的时候,使用别名区分
select * 
from tb a,tb b where a.id=b.pid

select * 
from tb 
where not exists(select * from tb a.id=id and name <> a.name) 
 

#7


为增强可读性指定别名
有相同名字的时候用别名区分
需要被联查多次的时候用别名区分

谢楼上的各位

那别名的作用范围是什么 ??


#8


引用 7 楼 blcycle 的回复:
为增强可读性指定别名
有相同名字的时候用别名区分
需要被联查多次的时候用别名区分

谢楼上的各位

那别名的作用范围是什么 ??



要看你在哪里指定的 有可能是整个查询语句  也有可能是子查询

#9


要怎么指定? 这个也有全局和局部之分的么?

#10


在关系的自身连接中,别名是必不可少的。

#1


SELECT TOP 2 * FROM (SELECT TOP 4 * FROM TB ORDER BY ID DESC)AS T ORDER BY ID ASC

#2


使用表别名
SELECT 语句的可读性可通过为表指定别名来提高,别名也称为相关名称或范围变量。指派表的别名时,可以使用也可以不使用 AS 关键字: 

table_name AS table alias


table_name table_alias 
在下例中,为 publishers 指派了别名 p。

USE pubs
SELECT p.pub_id, p.pub_name
FROM publishers AS p

如果为表指派了别名,那么在该 Transact-SQL 语句中对该表的所有显式引用都必须使用别名,而不能使用表名。例如,下列 SELECT 语句将产生语法错误,因为该语句在已指派别名的情况下又使用了表名:

SELECT Customers.CustomerID, /* Illegal reference to Customers. */
       Cst.FirstName, Cst.LastName
FROM Northwind.dbo.Customers AS Cst

#3


特别是在两个有相同的列名的时候要区分,一般弄个别名来

#4


最少两种情况是需要别名的
一是当两个家伙名字相同的时候,其中一个必须用别名来区分,否则不知道谁是谁了
如:SELECT A.* FROM TB A, TB B WHERE A.ID=B.PARENTID

二是当一个家伙没有名字时,必须加个名字给它
如:SELECT * FROM (SELECT * FROM TB) T

#5


等楼下

#6


同一个表需要被联查多次的时候,使用别名区分
select * 
from tb a,tb b where a.id=b.pid

select * 
from tb 
where not exists(select * from tb a.id=id and name <> a.name) 
 

#7


为增强可读性指定别名
有相同名字的时候用别名区分
需要被联查多次的时候用别名区分

谢楼上的各位

那别名的作用范围是什么 ??


#8


引用 7 楼 blcycle 的回复:
为增强可读性指定别名
有相同名字的时候用别名区分
需要被联查多次的时候用别名区分

谢楼上的各位

那别名的作用范围是什么 ??



要看你在哪里指定的 有可能是整个查询语句  也有可能是子查询

#9


要怎么指定? 这个也有全局和局部之分的么?

#10


在关系的自身连接中,别名是必不可少的。