当前位置:首页 > 开发 > 数据库 > 正文

oracle连接(join)中使用using关键字

发表于: 2012-10-21   作者:daizj   来源:转载   浏览:
摘要: 在oracle连接(join)中使用using关键字 34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables. Evaluate the following SQL statement: SELECT oi.order_id, product_id, order_date FRO
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FROM order_items oi JOIN orders o
USING(order_id);
Which statement is true regarding the execution of this SQL statement?
A. The statement would not execute because table aliases are not allowed in the JOIN clause.
B. The statement would not execute because the table alias prefix is not used in the USING clause.
C. The statement would not execute because all the columns in the SELECT clause are not prefixedwith table aliases.
D. The statement would not execute because the column part of the USING clause cannot have a qualifier in the SELECT list.
Answer: D
分析上面这道题,要理解using关键字的用法:
     在oralce中使用natural join,也就是自然连接。
     使用natraul join进行连接查询,并且两张表中如果有多个字段是具有相同的名称和数据类型的,那么这些字段都将被oracle自作主张的将他们连接起来。但实际上我们有时候是不需要这样来连接的。我们只需要将他们的多个具有相同的名称和数据类型的字段中挑选一两个。这时候我们就需要用到using 关键字了。在Oracle中的join连接中使用using关键字,是相对于natural join的。

先看自然连接:
select ename, dname
from emp natural join dept
/
这时无需指定连接字段,oracle会自动识别相同的字段并自动进行连接,该例中会自动连接deptno字段。
当然,如果这两个表有多个相同字段,那oracle会把它们都做一个连接。

使用using关键字
select ename,dname
from emp join dept using (deptno)
/
明确的指定连接字段。

注意事项:
1、如果在使用using关键字时,而且select的结果列表项中包含了using关键字所指明的那个关键字,那么请不要在select的结果列表项中对该关键字指明它属于哪个表。
2、using中仅能使用一个列名。
3、natural join关键字和using关键字是互斥的,也就是说不能同时出现。

显然,选项D是正确的,因为示例语句中的USING(order_id)这列在select语句中使用了限

oracle连接(join)中使用using关键字

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
一.Oracle Natural join <span style="font-size:12px;">create table test_table_A(id numbe
以前在使用oracle数据库的时候,单纯的order by 字段 ASC (DESC)对数据集进行排序时,没有办法直
1、概述 1.1、所有的join连接,都可以加上类似where a.id='1000'的条件,达到同样的效果。 1.2、除
1、概述 1.1、所有的join连接,都可以加上类似where a.id='1000'的条件,达到同样的效果。 1.2、除
1、概述 1.1、所有的join连接,都可以加上类似where a.id='1000'的条件,达到同样的效果。 1.2、除
鸣谢:http://www.cnblogs.com/lovemoon714/archive/2012/03/02/2376782.html 今日突然遇到了有人直
SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。 Join 和 Key 有时为了得到
SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。 Join 和 Key 有时为了得到
在Oracle中的join主要分为:外连接(outter join),内连接(inner join),自身连接(self-join) 外连接(
关系型并不是最早出现的数据库表现形式,之前还存在层次、网状数据库结构。随着关系型数据库的出现
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号