培训机构的oracle学习笔记2.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
日期转换 -连接查询 -广义笛卡尔积 -内连接,等值连接 -自然连接 -外连接 -自连接 -子查询 1、 select to_date(02-09-49,dd-mm-yy) from dual; 2、 select to_date(02-09-59,dd-mm-rr) from dual; 3、如果有佣金,则将佣金提升 10%,如果没有佣金,则使用薪水的 2%作为佣金 select empno,ename,sal,comm,nvl2(comm,comm+comm*0.1,sal*0.02) 佣金 from emp; 4、如果有佣金,则佣金不变,如果没有佣金,则为每个员工设置 100 佣金 select empno,ename,sal,comm,nvl2(comm,comm,100) 佣金 from emp; 5、如果佣金为 0,则去掉佣金,即将佣金设置为空 select empno,ename,nullif(comm,0) from emp; 6、根据不同的工作,增加不同的薪水 select empno,ename,job,sal,case job when SALESMAN then sal+sal*0.1 when CLERK then sal+sal*0.2 end 提升薪水 from emp; 连接查询 7、广义笛卡尔积,没有连接谓词,得到的结果数量为 N 张表的记录数乘积,为其他连接提 供了理论基础,对实际应用没有意义 select * from student,scores; 8、内连接,等值连接,在广义笛卡尔积的基础上做条件赛选 select * from student,scores where student.sid=scores.stuid ; 9、自然连接,是等值连接的特殊情况,目的是为去除重复项,采用的方法是指定显示的字 段项 select emp.*,dept.dname,dept.loc from emp,dept where emp.deptno=dept.deptno; 10、外连接 select * from emp right outer join dept on dept.deptno=emp.deptno; dept left outer join emp dept.deptno=emp.deptno(+); dept right outer join emp dept.deptno(+)=emp.deptno; emp left outer join dept emp.deptno=dept.deptno(+); emp right outer join dept emp.deptno(+)=dept.deptno; 11、自连接,表自身连接,使用表的两个副本连接 查询所有员工和他的上司的信息。注意连接谓词 select e2.*,e1.* from emp e1,emp e2 where e2.mgr=e1.empno; 查询所有比 scott 的薪水低的员工。注意连接谓词 select * from emp e1,emp e2 where e2.ename=SCOTT and e2.sale1.sal; 查询 ford 的下属。注意连接谓词 select * from emp e1,emp e2 where e1.mgr=e2.empno and e2.ename=FORD; 复合条件连接查询,注意连接谓词 查询 ACCOUNTING 部门中员工薪水大于 2000 SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO AND DEPT.DNAME=ACCOUNTING AND EMP.SAL2000; 子查询 一个 select from where 称为一个查询块,将一个查询块的结果作为另一个查询块的条件 查询所有比 scott 薪水低的员工 select * from emp where emp.sal(select sal from emp where ename=SCOTT); 查询所有 FORD 的下属 select * from emp where mgr=(select empno from emp where ename=FORD); 注意:单行子查询和多行子查询 单行子查询的结果只允许有一个值 = in 多行的 多个值 in (多个结果) SELECT EMP.ENAME,EMP.SAL,EMP.DEPTNO FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM DEPT WHERE DNAME=ACCOUNTING); SELECT EMP.ENAME,EMP.SAL,EMP.D

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档