是否必须在Oracle的Select Query中使用别名?

时间:2012-01-22 15:14:43

标签: sql oracle alias

编辑:管理测试一切,我猜我的朋友在这里错了,感谢帮助,人们。

根据我的理解,第二个示例(使用别名)在引用对象类型的字段时很有用。例如,我继续编写了一个名为manager的managerType对象表,其中包含以下属性:

Name NameType(name VARCHAR2(30), surname VARCHAR2(30),
Address AddressType(First_Line VARCHAR2(30), City VARCHAR2(30), Post_Code VARCHAR2(8),
Salary NUMBER)

现在,对于这个问题,我需要检索特定经理的城市,因此以下内容不起作用:

SELECT City
FROM Manager
Where name like 'Jim';

然而,这确实有效:

SELECT m.address.city from Manager m 
WHERE m.name.f_name LIKE 'Jim' AND m.name.l_name LIKE 'Smith';

我可能有办法避免在这里使用AND运算符,如果有人知道,我会很感激。我希望这可以帮助别人。感谢。


原始问题

这让我困惑了一段时间。我正在做一篇过去的考试试卷以供修改,对于一个问题,我必须从经理对象表中检索名称以'J'开头的所有经理的工资。

我通常会做以下

SELECT salary
FROM Manager
WHERE name like 'J%';

现在一个同学已经离开并且混淆了我,因为它建议我必须使用别名,因为它是一个对象表,所以它类似于:

SELECT m.Salary 
FROM Manager m 
WHERE name like 'J%';

我知道这个对Oracle中的字段访问很有用(比如我在Manager表中有一个用户定义的类型,并且想要引用该类型的字段)但是我应该一般使用它吗?

3 个答案:

答案 0 :(得分:2)

只有在您引用同一个表两次(或引用其他未命名的派生表)时才需要别名

大多数人在处理多个表时都会使用它们,因为它使查询在使用长表名时更具可读性。

在处理单个表时,我通常不会将它们作为其唯一的额外文本使用。

答案 1 :(得分:1)

  

建议我必须使用别名,因为它是一个对象

必须相当强大。您可以使用它,您可能使用它,尤其是在执行多表连接时,以便您可以通过短别名而不是长名称来引用表。

答案 2 :(得分:0)

别名不是强制性的。为了我们的理解目的,我们只在sql查询中使用别名..