Oracle SQL92查询

---多表联合查询:
  --当需要获取的数据分布在多张中,考虑使用联合查询
    --SQL92方式
    --SQL99方式
-------------------------------------------
--SQL92方式
    --笛卡尔积:将多个表的数据进行一一对应,所得到结果为多表的笛卡尔积。
              --结果的数量为所有表的数量的乘积。
   
 select * from emp,dept where emp.deptno=dept.deptno 
   
 --等值连接筛选
         --概念:先做表的笛卡尔积,然后筛选,筛选条件为等值筛选。
         --注意:条件为字段的值相同来进行筛选,字段的名字可以不同
         --查询员工姓名,工作,薪资,部门名称
  
       select * from emp,dept where emp.deptno=dept.deptno

                --可以直接在select子句中使用字段直接获取数据,但是效率比较低。建议字段前加上表名
                --注意:如果是公共字段,则必须声明表名
                 select ename,job,sal,dname from emp,dept where emp.deptno=dept.deptno--等值连接筛选
                 

select emp.ename,emp.job,emp.sal,dept.dname,emp.deptno from emp,dept where emp.deptno=dept.deptno
                 select e.ename,e.job,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno and sal>2000--给表使用别名
  
  --不等值连接
         --查询员工姓名,工作,工资,工资等级
         select * from emp e,salgrade s where e.sal>=s.losal and e.sal<=s.hisal
  
  --自连接:
         --查询员工姓名,工作,薪资,及上级领导姓名
         select e1.ename,e1.job,e1.sal,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno
  
  --外连接
      
  --左外连接:加在右边,显示左边对应字段没有值的数据
                --查询员工姓名,工作,薪资,部门名称及没有部门的员工信息
                select * from emp e,dept d where e.deptno=d.deptno(+)
        
--右外连接:加在做边,显示右边边对应字段没有值的数据
                  --查询员工姓名,工作,薪资,部门名称及没有员工信息的部门
                   select * from emp e,dept d where e.deptno(+)=d.deptno

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值