Oralce 数据库表的连接分类

数据表的连接有: 1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2、外连接: 包括 (1)左外连接(左边的表不加限

数据表的连接有: 
1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 
2、外连接: 包括 
(1)左外连接(左边的表不加限制) 
(2)右外连接(右边的表不加限制) 
(3)全外连接(左右两表都不加限制) 

3、自连接(连接发生在一张基表内) 

sql标准语法:
select table1.column,table2.column
from table1 [inner | left | right | full ] join table2 on table1.column1 = table2.column2;

inner join 表示内连接;left join表示左外连接;right join表示右外连接;full join表示完全外连接;
on子句用于指定连接条件。注意,如果使用from子句指定内、外连接,则必须要使用on子句指定连接条件;
如果使用(+)操作符指定外连接,,则必须使用where子句指定连接条件。

如果主表的主键列和从表的外部键列名称相同,那么可以使用 natural join 关键字自动执行内连接操作。
select  dname,ename from dept natural join emp;

举例说明:有两张表(students、classes)

 create table students(studentno number, studentname varchar2(20), classname varchar2(20))

 create table classes(id number, classname varchar2(20));

1)左外连接:

 当以上两表的数据分别为

students表:

classes表

执行以下左外连接语句:

select a.studentno, a.studentname, b.classname
      from students a, classes b
      where a.classid = b.classid(+);

结果截图:

注释:左链接则左边表的数据会全部显示

2)右外连接:

 当以上两表的数据分别为

students表:

classes表:

执行以下右外连接语句:

select a.studentno, a.studentname, b.classname
      from students a, classes b
      where a.classid(+) = b.classid;–注意此处(+)的位置,右外连接在左边,即相反的位置

结果截图:

注释:右链接则右边表的数据会全部显示

3)自然链接

以上两种表的数据情况下,执行以下自然链接语句,结果都一样:

select a.studentno, a.studentname, b.classname
      from students a, classes b
      where a.classid = b.classid;

结果截图:

总之,

左连接显示左边全部的和右边与左边相同的 
右连接显示右边全部的和左边与右边相同的 
内连接是只显示满足条件的!

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1938919.html

(0)
上一篇 2025年2月22日 23:52:45
下一篇 2025年2月22日 23:53:05

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论