黑马程序员c语言教程:Oracle指令(4)_黑马程序员c语言教程

其他范文 时间:2020-02-28 07:22:45 收藏本文下载本文
【www.daodoc.com - 其他范文】

黑马程序员c语言教程:Oracle指令(4)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“黑马程序员c语言教程”。

--什么时候用外连接呢?比如领导向你要所有学生的列表,顺便把所属的班级也列出来,就需要外连接

--在Where语句中使用子查询

-----雇员中最高薪水的人员名称--1,先求出最高薪水

--2,再求雇员中最高薪水的人员名称

select ename from emp where sal=(select max(sal)from emp)

--有哪些人的薪水是在整个雇员的平均薪水之上的select ename,sal from emp where sal >(select avg(sal)from emp)

-----雇员中哪些人是经理人

--1,首先查询mgr中有哪些号码--2,再看有哪些人员的号码在此出现

select distinct mgr from emp where mgr is not null order by mgr

select ename from emp where empno in(select distinct mgr from emp where mgr is not null)--where in 中不让写orderby select ename from emp where empno in(select distinct mgr from emp where mgr is not null order by mgr)

-----在From子句中使用子查询

----

--部门平均薪水的等级

--1,首先将每个部门的平均薪水求出来

--2,然后把结果当成一张表,再用这张结果表和salgrade表做连接,以此求得薪水等级

select deptno,avg(sal)from emp group by deptno select * from(select deptno,avg(sal)avg_sal from emp group by deptno)t join salgrade on avg_sal between losal and hisal;

-----每个部门最高薪水的人员名称

--1,首先将每个部门的最高薪水求出来

--2,然后把结果当成一张表,再用emp和这张结果表做连接,以此求得每个部门最高薪水的人员名称

select deptno,max(sal)from emp where deptno is not null group by deptno

select ename from emp e join(select deptno,max(sal)max_sal from emp where deptno is not null group by deptno)t on sal = max_sal and e.deptno = t.deptno

-----哪些人的薪水在部门的平均薪水之上--1,首先将每个部门的平均薪水求出来

--2,然后把结果当成一张表,再用emp和这张结果表做连接,以此求得哪些人的薪水在部门的平均薪水之上

select deptno,avg(sal)avg_sal from emp group by deptno

select * from emp join(select deptno,avg(sal)avg_sal from emp group by deptno)t on(sal>avg_sal and emp.deptno=t.deptno)-----求部门中(所有人的)平均的薪水等级,形式如:--deptno avg_grade--10 3.67--20 2.8--30 2.5--1,先求每个人的薪水等级--2,再按照部门分组,求平均数

select deptno,sal,grade from emp join salgrade on sal between losal and hisal select deptno,avg(grade)from(select deptno,sal,grade from emp join salgrade on sal between losal and hisal)t group by deptno

------------------------------使用伪字段:rownum,----------------------------------------------------用来标识每条记录的行号,行号从1开始,每次递增1

select rownum,emp.* from emp;--oracle下rownum只能使用 >= 等比较操作符,select rownum,emp.* from emp where rownum

--(错误的写法)例如,当我们要求薪水最高的前5个人时,最直接的想法可以这样写: select * from emp where rownum

select * from(select * from emp order by sal desc)t where rownum

黑马程序员c语言教程:Oracle指令

--sql structured query language --DML--Data Manipulation Language--数据操作语言 query information (SELECT), add new rows (INSERT), modify existing rows (UPDATE)......

黑马程序员c语言教程:Oracle指令

------------------------- --order by的用法--员工信息按照姓名正序排列select * from emp order by ename asc; --员工信息按照倒叙排列select * from emp order by ename......

黑马程序员c语言教程:Oracle指令(5)

------------------------- --不准用组函数(即MAX()),求薪水的最高值(面试题) --第一种解决办法: --1,先把所有薪水按照倒序排列 --2,再取第一行 select * from (select sal......

黑马程序员c语言教程:Oracle指令(3)

--总结一下select语法 select from where group by having order by ------------------------- -- 执行顺序very important! -- 首先执行where语句将原有记录过滤; -- 第二......

黑马程序员c语言教程:Oracle指令(6)

------------------------------ --为什么in的后面不能order by ?- --求部门经理人中平均薪水最低的部门名称 (思考题) 第一步,求部门经理的雇员编号select distinct mgr fro......

下载黑马程序员c语言教程:Oracle指令(4)word格式文档
下载黑马程序员c语言教程:Oracle指令(4).doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文