Oracle中关联表的视图创建
2015-08-30 22:25
405 查看
这几天的工作基本上没有了比较的新的技术点,就是反反复复的修改需求,修改Bug……当然,也是到了此刻,自己猜觉得在一个庞大的项目中,需求分析的重要性,以及需求说明书的重要性。我们在需求模糊、文档缺乏的条件下,反复修改功能已经成了家常便饭,今天领导说这个功能应该这样,我们就要立刻改到这样,第二天领导说又要原来的那样,我们只能再改回去了……有时候,我们也曾调侃自己是典型的面向领导开发……
今天没有什么比较新的技术点来总结了,自己回顾了一下,这几天的工作,发现在关联表中创建视图的时候对于连接不是特别熟悉,所以趁此机会再回顾一下了:
1、内联接(典型的联接运算,使用像= 或 <> 之类的比较运算符)。包括相等联接和自然联接。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。
2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。
在FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:
1)LEFT JOIN或LEFT OUTER JOIN
左向外联接的结果集包括 LEFTOUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
2)RIGHT JOIN 或 RIGHT OUTER JOIN
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
3)FULL JOIN 或 FULL OUTER JOIN
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
3、交叉联接
交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。
FROM子句中的表或视图可通过内联接或完整外部联接按任意顺序指定;但是,用左或右向外联接指定表或视图时,表或视图的顺序很重要。有关使用左或右向外联接排列表的更多信息,请参见使用外联接。
以下是自己在防灾系统中中写的一个三个表的左连接实例,供参考:
总结:以上总结主要是为了自己能够掌握视图的创建方法,内容比较简单,另外也希望能给有需要的人以启发……
今天没有什么比较新的技术点来总结了,自己回顾了一下,这几天的工作,发现在关联表中创建视图的时候对于连接不是特别熟悉,所以趁此机会再回顾一下了:
1、内联接(典型的联接运算,使用像= 或 <> 之类的比较运算符)。包括相等联接和自然联接。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。
2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。
在FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:
1)LEFT JOIN或LEFT OUTER JOIN
左向外联接的结果集包括 LEFTOUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
2)RIGHT JOIN 或 RIGHT OUTER JOIN
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
3)FULL JOIN 或 FULL OUTER JOIN
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
3、交叉联接
交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。
FROM子句中的表或视图可通过内联接或完整外部联接按任意顺序指定;但是,用左或右向外联接指定表或视图时,表或视图的顺序很重要。有关使用左或右向外联接排列表的更多信息,请参见使用外联接。
以下是自己在防灾系统中中写的一个三个表的左连接实例,供参考:
<span style="font-size:24px;">create or replace view v_dp_b_limitratesegement as select s_id,s_linename,s_linecode,s_monitoringunitcode,s_monitoringpointcode,s_areacode,s_areaname,s_startkilometer,s_startmeter,s_endkilometer,s_endmeter,c_tagspeed,s_tagspeed,i_sortid,c_ableflag, s_basestationname,kilometer from ( select t1.s_id,t1.s_linename,t1.s_linecode,t1.s_monitoringunitcode,t1.s_monitoringpointcode,s_areacode,s_areaname,s_startkilometer,s_startmeter,s_endkilometer,s_endmeter,c_tagspeed,s_tagspeed,t1.i_sortid,t1.c_ableflag, t2.s_basestationname, ('K' || t3.i_km || '+' || t3.i_meter) kilometer from dp_b_processsegment t1 left join dp_b_basestationinfo t2 on t1.s_monitoringunitcode= t2.s_id left join dp_b_monitoringpointinfo t3 on t1.s_monitoringpointcode=t3.s_id ) t; </span>
总结:以上总结主要是为了自己能够掌握视图的创建方法,内容比较简单,另外也希望能给有需要的人以启发……
相关文章推荐
- 关于Oracle Linux,它做了什么
- sql server2005和oracle分页查询语句
- virtualbox谨记:win7上只有4.3.x的版本支持ubuntu14.04.3虚拟机安装Oracle Rac,其他的版本3.x和5.0.2(至2015-08-30)均不可以
- Dataguard 重启方法
- oracle自动备份
- 浅谈Oracle12c 数据库、用户、CDB与PDB之间的关系
- 【8-30】oracle数据库学习
- Oracle学习笔记20150830事务的概念
- oracle体系结构
- 工作第一周Oracle函数总结
- 【sql】oracle 数据库instr函数的用法详解
- 【翻译自mos文章】怎么检查Oracle Advanced Security Option 是否被安装上?
- oracle 递归 树查找
- oracle在线重定义将普通表改为分区表
- oracle表分区
- oracle表空间
- oracle redo管理
- oracle11g卸载
- 使用ORACLE在线重定义将普通表改为分区表
- oracle 12c rac 安装检测错误 Device Checks for ASM