数据表的连接有:
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;
结果截图:
总之,左连接显示左边全部的和右边与左边相同的
右连接显示右边全部的和左边与右边相同的
内连接是只显示满足条件的!Oracle EBS FORM开发步骤ERROR - ORA-12541: TNS: 无监听程序相关资讯 Oralce基础教程
- Oralce触发器中更新本表的方法 (02/26/2013 09:16:31)
- Oralce预编译Sql语句在JDBC中的处 (01/31/2012 21:21:37)
- 非Oralce用户环境变量配置 (12/21/2011 18:53:02)
| - Oralce中的synonym同义词 (02/08/2012 16:27:45)
- Oracle用户、角色、权限管理 (12/28/2011 18:58:06)
- 一个检查并自动安装Oralce所需rpm (12/20/2011 20:13:21)
|
本文评论 查看全部评论 (0)