码迷,mamicode.com
首页 > 数据库 > 详细

Oracle_SQL92_连接查询

时间:2017-03-12 18:00:31      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:font   ace   1.5   1.4   名称   idt   mono   container   自连接   

 

Oracle_SQL92_连接查询

 
笛卡儿积
--笛卡尔积
select * from emp;----14
select * from dept;----4
select * from emp,dept;----56  
等值连接
--等值连接(用两张表都存在的列进行等值连接)
select * from emp, dept 
where emp.deptno = dept.deptno;
 
 
--查询员工的姓名,薪水,部门编号,部门名称
select ename, sal, emp.deptno, dname from emp,dept 
where emp.deptno = dept.deptno;
 
--给表起了别名(不能加 as),就不能使用原来的名字了
select ename, sal, e.deptno, dname from emp  e, dept d 
where e.deptno = d.deptno;  
非等值连接
--非等值连接(用两张表都存在的列进行非等值连接)
--查询员工的姓名,职位,薪资,薪资等级
select e.ename, e.job, e.sal, s.grade from emp e, salgrade s 
where e.sal>=s.losal and e.sal<=s.hisal; 
 
 
select e.ename, e.job, e.sal, s.grade from emp e, salgrade s 
where e.sal between s.losal and s.hisal; 
 
 
 
 
--查询员工的编号,姓名,部门名称,薪水等级(利用等值连接和非等值连接)
select e.empno, e.ename, d.dname, s.grade from emp e, dept d, salgrade s 
where e.deptno=d.deptno and e.sal between s.losal and s.hisal;  
自连接
--自连接
--查询员工的编号,姓名,领导的编号,领导的姓名
select e1.empno, e1.ename, e1.mgr, e2.ename from emp e1,emp e2
where e1.mgr = e2.empno;  
左外连接/右外连接
使用外连接可以看到参与连接的某一方不满足连接条件的记录,而不仅仅是满足连接条件的数据 
 
select * from emp;
select e1.empno, e1.ename, e1.mgr, e2.ename from emp e1, emp e2
where e1.mgr = e2.empno(+);--左外连接,显示左边表的全部行  

select e1.empno, e1.ename, e1.mgr, e2.ename from emp e1, emp e2
where e1.mgr(+) = e2.empno;--右外连接,显示右边表的全部行  
 
 

Oracle_SQL92_连接查询

标签:font   ace   1.5   1.4   名称   idt   mono   container   自连接   

原文地址:http://www.cnblogs.com/haozhengfei/p/6538379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!