- 浏览: 243262 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
3w1h:
"2.对于外部查询中的每一行分别执行一次子查询,而且 ...
浅说:in、not in、exists和not exists的区别 -
danielhjd:
shishuang 写道[size=large][/size] ...
(SSH框架)Spring 和Struts的配置说明... -
shishuang:
[size=large][/size] 没有出来你strut ...
(SSH框架)Spring 和Struts的配置说明... -
daven1314:
不错,学习了!
(oracle)如何创建和使用procedure
在Oracle中的join主要分为:外连接(outter join),内连接(inner join),自身连接(self-join)
外连接(outter join)又分为左外连接(left outer join)、右外连接(right outer join)、全外连接(full outer join)。在sql语句(structured Query Language)是:table_1 left/right/full outer join table_2,通常我们省略outer。
下面利用一个例子说明数据库的外连接问题:
一:创建两张表out_join1 and out_join2并插入相应的数据:
create table out_join1( id_1 varchar2(20), name_1 varchar2(25) ) create table out_join2( id_2 varchar2(20), name_2 varchar2(25) )
insert into out_join1 values('1','daniel'); insert into out_join1 values('3','justin'); insert into out_join1 values('5','william'); insert into out_join1 values('6','demon'); insert into out_join1 values('7','david'); insert into out_join2 values('1','c_daniel'); insert into out_join2 values('2','irs'); insert into out_join2 values('3','c_justin'); insert into out_join2 values('4','linda'); insert into out_join2 values('5','c_william');
out_join1 & out_join2的数据如下:
左外连接(left outer join)
select * from out_join1 left outer join out_join2 on out_join1.id_1=out_join2.id_2 -- 注意此处的on关键字 select * from out_join1,out_join2 where out_join1.id_1=out_join2.id_2(+) --注意此处的where关键字和(+)符号
结果如下:
详细解释:
第一条查询语句和第二条查询语句的的意义是一样的,只是表达方式不同。table_1 left outer join table_2 on table_1.id = table_2.id,是以table_1的id号的index基础进行连接,table_2中有与table_1中id相同的进行配对。table_2中没有配对到的则null表示;
注意:由于此处的id具有unique所以不会出现一对多的关系,如果出现一对多的关系则显示结果会怎么样了...
右外连接(right outer join)
select * from out_join1 right outer join out_join2 on out_join1.id_1=out_join2.id_2 select * from out_join1,out_join2 where out_join1.id_1(+)=out_join2.id_2
结果如下:
第一个条件查询的结果: 第二个条件查询的结果:
详细解释:
第一条查询语句和第二条查询语句的的意义是一样的,只是表达方式不同。table_1 right outer join table_2 on table_1.id = table_2.id,是以table_2的id号的index基础进行连接,table_1中有与table_2中id相同的进行配对。table_1中没有配对到的则null表示; 当然最后你会发现显示的结果的结构不相同,那是因为他们的查询的机理不同。
全外连接(full outer join)
select * from out_join1 full join out_join2 on out_join1.id_1=out_join2.id_2
结果如下:
详细解释:
在full连接中按照以表table_1的id和table_2的id号为基础进行匹配....有的这连接在一起,没有的则null表示。table_1在前...
(+)的用法:
1.(+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。
2. 当使用(+)操作符执行外连接时,如果在where子句中包含多个条件,必须在所有条件中包含(+)操作符
3.(+)操作符只适用于列,而不能用在表达式上。
4.(+)操作符不能与or和in操作符一起使用。
5.(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。
内连接(inner join)
结果: select * from out_join1 inner join out_join2 on out_join1.id_1=out_join2.id_2
详细解释:
相同的属性值才显示,这里指的是tabel_1.id = table_2.id相同的显示
自身连接(self join)
select * from out_join1 c1,out_join1 c2 where c1.id_1 = c2.id_1
结果如下:
自然连接(nature join)
select * from out_join2,out_join1 where out_join2.id_2=out_join1.id_1
结果如下:
分析:同inner连接
发表评论
-
Oracle中有关Group by 中avg();sum();min();max();count();的运用整理(Oracle的执行顺序)
2011-06-15 18:11 29352表 tabzx: select * from tabzx ... -
(Oracle) Oracle入门基础理论
2011-06-08 19:29 11827一:Oracle的概述 什么 ... -
(Index)Oracle 中Index的运行机制
2011-06-01 12:12 6974从表单访问数据时,Orac ... -
(数据库范式) 第一范式(1NF);第二范式(2NF);第三范式(3NF)
2011-05-30 10:22 1315第一范式(1NF)Unique Columns 无重复的列 ... -
浅说:in、not in、exists和not exists的区别
2011-05-29 15:08 1738in、not in、exists和not exists的区别: ... -
(笔记)Oracle中的批量删除数据
2011-05-27 12:03 2330在一个ORACLE数据库 ... -
续触发器:instead of ;事件触发--用户和系统
2011-05-26 18:04 1991定义:instead of 1) 基于view ... -
(trigger)触发器的定义和作用
2011-05-25 16:00 17781第一:触发器(trigger) 触发器(trigger)是指 ... -
Oracle中的loop循环的例子
2011-05-25 15:07 28401第一:loop... exit when...end loop ... -
(oracle)如何通过函数去调用procedure的注意事项
2011-05-25 12:06 1637创建一个带参数的procedure temp_pr(): c ... -
在oracle中创建一个exception
2011-05-24 19:24 824Gramma: 1:声明一个exceptin: d ... -
(oracle)如何创建和使用procedure
2011-05-24 18:44 30211:定义procedure(在高级 ... -
(笔记)如何声明使用cursor及其属性
2011-05-24 14:55 2370Defined cursor ; cursor mycurs ... -
(游标)How to define and implement THE CURSOR--2
2011-05-24 11:33 1--定义游标-- declare tempsal empl ... -
(游标)How to define and implement THE CURSOR
2011-05-24 11:29 940Definition: cursor的作用是从数据表中提取来 ... -
(cursor)How to define and implement THE CURSOR
2011-05-24 11:24 1Definition: cursor的作用是从数据表中提取来 ... -
(savepoint) savepoint--rollback
2011-05-24 10:38 1063语法: savepoint 保存点的名称; roll ... -
(笔记)Oracle中的表达式
2011-05-23 16:44 1186(1)数值表达式--+(加法),-(减法),*(乘法),/(除 ... -
(笔记)基本复合型数据类型的声明
2011-05-23 16:16 1057--(1)使用%type定义变量 -- declare n ... -
复杂的Oracle的查询--查询各个部门的总员工和总薪水占整个公司的比率
2011-05-20 16:56 2153查询各个部门的总员工和总薪水占整个公司的比率: SEL ...
相关推荐
Oracle笔记Oracle笔记Oracle笔记Oracle笔记Oracle笔记Oracle笔记
学习oracle知识笔记整理,包括pl/sql编程,过程、函数、游标开发等。
oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记oracle adg安装个人笔记...
自学笔记--oracle自学笔记-视频实例整理
Oracle非常有用的笔记。。。。。。。。。。。Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记
oracle rac安装个人笔记oracle rac安装个人笔记oracle rac安装个人笔记oracle rac安装个人笔记oracle rac安装个人笔记oracle rac安装个人笔记oracle rac安装个人笔记oracle rac安装个人笔记oracle rac安装个人笔记...
oracle笔记(韩顺平oracle视频教学整理)
老方块 ORACLE 教学笔记 整理 第1堂体验课-SQL技巧篇(一) 第2堂体验课-SQL技巧篇(二) 第3堂体验课-ORACLE并发事务和锁机制 第4堂体验课-索引机制 第5堂体验课笔记 ORACLE体系结构(一) 第6堂体验课笔记 ORACLE...
oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记
Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记
oracle随手笔记oracle随手笔记oracle随手笔记oracle随手笔记
oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记
oracle学习笔记 oracle学习笔记oracle学习笔记 oracle学习笔记
李兴华Oracle笔记整理,整理了Oracle的核心基础知识,方便大家日后的学习。
该资源是系统学习Oracle后做的整理,方便后来学者更好,更快的学习Oracle知识,资源里面有Oracle学习资料,以及学习期间整理辅助学习资料,此资源内容是Oracle知识点整理笔记的下篇,Oracle的初学篇知识学习可以查看...
oracle经典笔记oracle经典笔记oracle经典笔记oracle经典笔记oracle经典笔记oracle经典笔记
该资源是对应韩顺平老师关于JAVAEE培训课程中关于oracle数据库讲解部分的视频笔记,类容详细全面,针对深度学习oracle数据库的相关知识
这个是我学习网上的视频做的oracle笔记,对于oracle一窍不通的菜鸟可能有用吧,大家有需要可以看看