`

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

阅读更多
在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多表连接技巧

    在这个例子中,通过使用 `USING` 关键字指定了连接字段 `deptno`,避免了重复书写表名。 #### 六、总结 通过对Oracle中多表连接技术的学习,我们可以更加灵活地处理复杂的查询需求。正确使用各种类型的连接,能够...

    Oracle连接多个表PPT教案.pptx

    在Oracle中,笛卡尔连接可以通过两种方式实现:传统方法和使用JOIN关键字。传统的笛卡尔连接查询是通过在FROM子句中同时列出两个表,并在WHERE子句中不设置任何连接条件来完成。而使用JOIN关键字,我们可以明确地...

    Explain关键字详解.pdf

    Explain关键字是MySQL中的一个重要工具,它能够帮助数据库管理员和开发人员深入理解SQL语句的执行计划。通过分析执行计划,我们可以优化查询语句,提高数据库性能。 首先,Explain关键字可以提供每个SELECT查询的...

    东软oracle-在线-期中考试一.docx

    11. 名词解释页脚内容 11:可以使用USING关键字来指定两个表共有的列名。使用NATURAL JOIN关键字可以创建自然联接。 12. 名词解释页脚内容 12:可以使用自联接来连接同一个表中的不同行。使用非等值联接可以连接两...

    数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf

    在Oracle SQL的编写过程中,ANSI SQL:99标准提供了一套更加规范的连接语法,包括JOIN关键字、USING子句和ON子句。JOIN关键字用于明确表示连接操作,USING子句可用于指定两个表中列名相同的列进行连接,而ON子句则...

    Sql语法转换为Oracle语法

    7. 连接操作:SQL Server使用 `JOIN ON`,Oracle也支持这种写法,但更常见的Oracle风格是 `USING` 关键字。 8. 事务处理:SQL Server使用 `BEGIN TRANSACTION`,`COMMIT` 和 `ROLLBACK`,Oracle也有对应的 `BEGIN`...

    Oracle 10g中的高级SQL函数

    除了基本的内连接和外连接,Oracle 10g还提供了自连接和交叉连接,以及更高级的 `JOIN` 语法,如 `NATURAL JOIN`, `USING` 关键字。 九、子查询 子查询可以在查询中嵌套,用于过滤、聚合或比较。Oracle 10g还支持...

    oracle 复杂查询语句的使用

    在提供的示例中,使用了`JOIN...USING`语法的变体,即`JOIN...WITH (+)`(在Oracle中,这是一种过时的表示法,现代语法更倾向于使用`LEFT JOIN`): ```sql SELECT a.*, b.skill FROM students a, student_skill b...

    oracle数据库所有操作总结.doc

    - `USING`子句:指定连接列,如`JOIN USING(deptno)`。 - `ON`子句:自定义连接条件,如`JOIN ON emp.deptno=dept.deptno`。 5. **子查询**: - 使用`IN`关键字的子查询:找出符合子查询结果集的记录,如`WHERE ...

    连接查询基本知识

    - 使用逗号`,`分隔的表名列表,并在`WHERE`子句中指定连接条件,这是在Oracle早期版本中使用的方法。 - 使用`USING`子句,当连接的表有同名列时,可以简化连接条件的编写。 ### 示例代码 下面是一个使用等值连接的...

    Oracle Sql基础 Oracle Sql基础 Oracle Sql基础

    - 在SQL中,NULL表示未知或缺失的值,可以在查询中使用IS NULL或IS NOT NULL来处理这些值。 - **1.4.7 定义列别名** - 使用AS或空格后跟别名的形式来为查询结果中的列指定别名,提高结果集的可读性。 - **1.4.8 连...

    oracle 9i笔试题a

    选项 a 和 b 使用通配符 `%` 和 `_`,但这些通配符在 SQL 的 `LIKE` 子句中使用,而不是在等于比较中。选项 c 和 d 缺少通配符,所以都不会匹配到 'King'。正确的查询应该是 `SELECT empno FROM emp WHERE ename = '...

    魔乐在线Oracle笔记超经典.docx

    在示例中,通过使用`JOIN`关键字,我们可以联接`emp`和`dept`表,获取雇员名称、部门名称和地点。别名的使用可以使查询语句更易读,如`e`代表`emp`,`d`代表`dept`。 2. **左右连接**:左右连接(也称左外连接和右...

    oracle笔记

    【Oracle笔记】这篇笔记主要涵盖了Oracle数据库中的多表查询、连接类型、SQL语言的使用以及组函数和分组统计等核心概念。 1. **多表查询**:在Oracle中,当需要查询的数据涉及多张表时,我们进行多表查询。例如,...

    oracle转DB2 对照

    - 注意点: Oracle使用 `EXECUTE IMMEDIATE` 执行动态SQL,而DB2则需要先使用 `PREPARE` 准备SQL,然后再执行。 #### 3. 游标转换 - **Oracle** 和 **DB2** 都支持游标,但语法有所不同。 - Oracle示例: ```sql ...

    Oracle SQL Reference

    - 通过JOIN关键字实现多表之间的连接,常见的有内连接、左连接、右连接等。 - 连接条件通常使用ON或USING子句指定。 #### 五、数据定义与数据操纵 - **数据定义语言(DDL)**: - 用于创建、修改或删除数据库中的...

    DBA对Oracle SQL编写规范的总结

    - **规范要求**:在动态SQL中使用绑定变量可以提高性能,尤其是在执行多次相同查询时。 - **示例**: ```plsql DECLARE v_sql VARCHAR2(100); v_dept_id NUMBER := 10; BEGIN v_sql := 'SELECT * FROM ...

    ORACLE 合辑

    - Oracle特有的外连接语法,如:`SELECT * FROM table1 LEFT JOIN table2 ON (table1.id = table2.id) WHERE table2.id (+);` #### 临时表 **概述:** - 临时表仅在一个会话或事务期间存在。 **事务级临时表:** ...

Global site tag (gtag.js) - Google Analytics