一.Oracle Natural join
<span style="font-size:12px;">create table test_table_A(id number primary key,name varchar(32)); create table test_table_B(id number primary key,name varchar(32),des varchar(32)); select *from test_table_A; select *from test_table_B; insert into test_table_A(id, name) values(1,'cuiyaonan20 a'); insert into test_table_A(id, name) values(2,'cuiyaonan200 a'); insert into test_table_A(id, name) values(3,'cuiyaonan2000 a'); insert into test_table_A(id, name) values(4,'cuiyaonan2000@163.com a '); insert into test_table_B values(1,'cuiyaonan20 a','des 1'); insert into test_table_B values(2,'cuiyaonan200 a','des 2'); insert into test_table_B values(3,'cuiyaonan2000 a','des 3'); insert into test_table_B values(4,'cuiyaonan20 b','des 1'); insert into test_table_B values(5,'cuiyaonan200 b','des 2'); insert into test_table_B values(6,'cuiyaonan2000 b','des 3');</span>
在pl/sql中运行如上实例代码
然后执行:
select *from test_table_a natural join test_table_b;
显示结果为:
这就是自连接,A表与B表 如果有同名字段,且字段类型一致,就会整合判断内容是否相等相等就做笛卡尔积.
一.Oracle using join
执行如下代码:
select *from test_table_a join test_table_b using(name);
显示结果为:
非常明显,using就是相对于natural而言制定了 一列进行匹配(前提条件一致,字段同名,类型一致)
相关推荐
本文将深入探讨Oracle的JOIN用法,包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)以及自然连接(NATURAL JOIN),并结合实例进行说明。 1. **内连接(INNER JOIN)**: 内连接返回两个表中满足特定...
- 新增了交叉连接 (`CROSS JOIN`)、自然连接 (`NATURAL JOIN`)、使用列名称指定连接 (`USING`) 和基于条件的连接 (`ON`) 等多种连接方式。 - 交叉连接会返回两个表的笛卡尔积;自然连接则基于两个表中相同的列进行...
6. **自然联接(Natural Join)** #### 三、等值联接(Equijoin) 等值联接是最常见的联接方式之一,它用于连接两个表中具有相同值的记录。通常用于连接具有相同字段的不同表。 **语法:** ```sql SELECT column...
FROM emp NATURAL JOIN dept; ``` 在这个例子中,`emp` 表和 `dept` 表通过相同的列进行了连接。 ##### 4. 交叉连接(Cross Join) 交叉连接就是不指定任何连接条件的连接,其结果是笛卡尔积。 **示例**: ```sql ...
- 自然连接(NATURAL JOIN):基于共享的列自动连接,如`NATURAL JOIN`。 - `USING`子句:指定连接列,如`JOIN USING(deptno)`。 - `ON`子句:自定义连接条件,如`JOIN ON emp.deptno=dept.deptno`。 5. **子...
此外,我们还可以使用JOIN关键字的其他形式来实现相等连接,包括NATURAL JOIN、JOIN...USING和JOIN...ON。NATURAL JOIN会自动识别并连接具有相同名称和定义的字段的表。JOIN...USING则基于指定的列名进行连接,如`...
SQL标准自1999年以来不断发展,Oracle数据库也支持这些标准,例如CROSS JOIN(产生笛卡尔积)、NATURAL JOIN(基于共享列自动匹配)、USING子句以及ON子句定义连接条件。例如: ```sql -- CROSS JOIN SELECT * FROM...
除了基本的内连接和外连接,Oracle 10g还提供了自连接和交叉连接,以及更高级的 `JOIN` 语法,如 `NATURAL JOIN`, `USING` 关键字。 九、子查询 子查询可以在查询中嵌套,用于过滤、聚合或比较。Oracle 10g还支持...
- 示例:`SELECT a.id, a.name, b.id, b.name FROM table1 a NATURAL JOIN table2 b;` - **USING**:指定连接时使用的列。 - 示例:`SELECT a.id, a.name, b.name FROM table1 a JOIN table2 b USING (id);` 以上...
NATURAL JOIN 和 JOIN...USING 不支持不等连接,OUTER JOIN 通常用于包含所有记录,但不一定会形成不等连接。 6. 只返回 `DEPT` 表中而没有在 `EMP` 表中列出的部门号,正确查询是 b:`SELECT deptno FROM dept ...
1. CROSS JOIN产生笛卡尔积,NATURAL JOIN基于共同列自动匹配,JOIN...USING和JOIN...ON用于指定连接条件。 2. 子查询可以出现在WHERE、FROM和HAVING子句中,单行单列子查询与字段比较,多行单列子查询配合IN、ANY、...
在SQL:1999标准中,引入了更明确的JOIN语法,如**交叉连接(Cross join)**、**自然连接(Natural join)**和**使用子句(USING clause)**,以及全外连接的表达方式。而在Oracle 8i及之前的版本中,连接语法略有...
6. **连接的类型**:除了上述的等值、非等值和外连接,还有交叉连接(Cross join)、自然连接(Natural join)和使用`USING`子句的连接。自然连接是基于相同列名自动进行的等值连接,而`USING`子句则可以更简洁地...
- SQL1999规范引入了更灵活的连接方式,包括`CROSS JOIN`(生成笛卡尔积)、`NATURAL JOIN`(基于相同列名自动连接)、`JOIN ... USING`(指定连接列)以及`JOIN ... ON`(自定义连接条件)。 - **交叉连接(Cross...
在使用NATURAL JOIN时,如果想要限制JOIN条件中的列数量,可以使用USING子句。 ### 5. 使用WHERE子句过滤查询结果 - **场景**: 给定一个名为`CUSTOMERS`的表,其中包含客户ID、姓名、地址等字段。需要查询特定条件...
SELECT * FROM emp e JOIN dept d USING (deptno); ``` #### ON子句 - **定义**:允许自定义连接条件。 - **语法**: ```sql SELECT * FROM emp e JOIN dept d ON (e.deptno = d.deptno); ``` ### 分组与聚合...
- **使用USING子句创建连接**:在`NATURAL JOIN`子句创建等值连接时,可以使用`USING`子句指定等值连接中需要用到的列。 - **使用ON子句创建连接**:自然连接中是以具有相同名字的列为连接条件的,可以使用`ON`子句...
4. **自然连接(NATURAL JOIN)**:自然连接根据两个表中相同名字的列自动进行匹配和连接。例如: ```sql SELECT * FROM emp NATURAL JOIN dept; ``` 5. **USING子句**:USING子句允许指定用于连接的列名,简化了...