根据我的理解,第二个示例(使用别名)在引用对象类型的字段时很有用。例如,我继续编写了一个名为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表中有一个用户定义的类型,并且想要引用该类型的字段)但是我应该一般使用它吗?
答案 0 :(得分:2)
只有在您引用同一个表两次(或引用其他未命名的派生表)时才需要别名
大多数人在处理多个表时都会使用它们,因为它使查询在使用长表名时更具可读性。
在处理单个表时,我通常不会将它们作为其唯一的额外文本使用。
答案 1 :(得分:1)
建议我必须使用别名,因为它是一个对象
必须相当强大。您可以使用它,您可能将使用它,尤其是在执行多表连接时,以便您可以通过短别名而不是长名称来引用表。
答案 2 :(得分:0)
别名不是强制性的。为了我们的理解目的,我们只在sql查询中使用别名..