您的位置:首页 > 数据库 > Oracle

oracle 11g 学习笔记 10_27

2012-10-27 15:24 417 查看

oracle复杂查询

*在from子句中使用子查询

.显示高于自己部门平均工资的员工的信息。

//1、查询出各个部门的平均工资和部门号
select deptno ,avg(sal) mysal from emp group by deptno;
//2、把上面的查询看作是一张子表a1,再结合emp表来进行多表查询
select a2.ename, a2.sal,a2.deptno, a1.mysal from emp a2,(select deptno ,avg(sal) mysal from
emp group by deptno) a1 where a2.deptno = a1.deptno and a2.sal > a1.avg(sal);
注意:oracle 中给列取别名可以用as,但是给表取别名就不行了。

*分页查询

oracle分页一共有三种方式。

其中一种是rownum分页

.查询分页中序号是4~9 的员工的信息,工资按降序来显示。

步骤:

//1、从emp表查询所有信息,工资按降序来显示
select ename, sal from emp order by sal desc;
//2、分页显示序号 <=9 的员工信息
select a1.*,rownum rn from (select ename,sal from emp order by sal desc) a1 where rownum <=9;
//3、从分页表中显示 >=4 的员工信息
select * from (select a1.*, rownum rn from (select ename,sal from emp order by sal desc) a1
where rownum <=9) where rn >=4;
//这里不知道为什么 最后的‘where rn >= 4’中的rn不能改成rownum,说不清楚了。

*用查询结果创建新表

用这个命令可以快捷地创建一个表

create table mytable (id,name,sal,job,deptno) as select empno,ename,sal,job,deptno from emp;
这个可以创建了表,同时新表里面也已经有了原来表的数据,可以用来做导出表和在测试的时候不想对原

来的表修改删除什么的,也可以先导出来在上面做测试。

*合并查询

比较少用

二、创建数据库

两种方法:

1)通过oracle提供的向导工具

向导工具:oracle Database Configuration Assistant

可以用来创建、删除、配置管理数据库。

2)手工创建

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: