首页 > 编程知识 正文

oracle视图和表关联查询,oracle查询存储过程用到的表

时间:2023-05-05 21:14:38 阅读:19589 作者:3579

select e.empno,e.ename,d.deptno,d.dname

from emp e,dept d

where e.deptno=d.deptno;

如果在上面的sql语句中首先运行from,然后运行select和where并使用别名,则以后在引用表时必须使用别名。 否则,如果别名最多为30个字符,则会发生错误

内部连接

select e.empno,e.ename,d.deptno,d.dname

来自EMP e

join dept d

on e.deptno=d.deptno

在from之后,直接连接两个表名的系统在对两个表进行正交乘积操作时生成笛卡儿积中间表。 该表相当于对两个集合进行乘法操作,参照两个集合进行乘法运算。 如果两个表都很大,中间表就会变大,内存容量也会变大

使用join操作时,将优先确定是否满足join后面的on条件,生成的结果不会太大

外部连接分为leftouterjoinrightouterjoinfullouterjoin

内部链接只能查询满足条件的结果。 左外部链接完全显示一个表或两个表中的数据

左连接和右连接也可以改为使用()。

)应放在缺少相应信息的一侧

左连接的主表是join左侧的表,显示主表的所有内容

select e.empno,e.ename,d.deptno,d.dnamefromempeleftjoindeptdone.deptno=d.deptno;

左链接加号

select e.empno,e.ename,d.deptno,d.dname from emp e,dept d where e.deptno=d.deptno (

上图是运行后的结果,从表中可以看到第15个数据的e.deptno为空,不符合连接条件,但显示出来

右链接

右连接的主表是join右侧的表,显示主表的所有内容

select e.empno,e.ename,d.deptno,d.dnamefromemperightjoindeptdone.deptno=d.deptno;

右链接加号

select e.empno,e.ename,d.deptno,d.dname from emp e,deptdwheree.deptno(=d.deptno

dept表中deptno=40的没有与emp表对应的数据,但在右连接中不能完全显示dept表的数据

完全外部连接

相当于左连和右连后去掉重量

select e.empno,e.ename,d.deptno,d.dnamefromempefulljoindeptdone.deptno=d.deptno;

与自然相连

表中始终自动连接相同的列

选择* from EMP e natural join dept;

只是限定理解有多不实用

自我连接

与自己的连接以scott的emp表为例,以mgr字段为该员工的领导号码,该表有主从关系

另外,因为要检查所有员工的领导及其号码,所以在下面用左边连接

select em2.empno领导的员工编号为、

em2.ename的读取器名称、

em1.empno员工编号、

em1.ename员工姓名、

em1 .启用mgr的领导的员工编号

来自EMP em 1

left join emp em2

on em1.mgr=em2.empno

order by em2.empno;

交叉连接

构造两块表的笛卡儿积

select * from emp cross join dept

几乎不能理解

总结一下

内部连接

只筛选满足条件的

外部链接

分为左外右外和完全外链接

左显示符合条件的表和左表不符合条件的右表只有符合条件的表

剩下的两种很少

自我连接

自己和自己连接的都是用一张表(自己),所以必须用别名

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。