Oracle学习笔记(四)
2010-11-04 00:01
549 查看
oracle的分页查询:共三种方法
方法一:根据rownum来分(效率中等)
1.select * from emp;
2.select a1.* ,rownum rn from (select * from emp) a1;//rownum是Oracle自动为起分配的行号
3.select a1.* ,rownum rn from (select * from emp) a1 where rownum<=10;
4.select * from (select a1.* ,rownum rn from (select * from emp) a1 where rownum<=10) where rownum>=6;
注意:a.所有改动(例如:指定查询列),只需要改动最里面的查询即可。
b.排序,最里层加个order by...即可
方法二:根据rowid来分(效率最高)
select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from (select rowid rid,cid from
t_xiaoxi order by cid desc)where rownum<10000)where rn>9980)order by cid desc;
方法三:按分析函数来分(效率最差)
select * from (select t.* ,row_number() over(order by cid desc) rk from t_xiaoxi t)where rk<10000 and rk>9980;
查询总行数:
select count(*) from emp;
=======================================
用查询结果创建新表
create table myemp(id,ename,sal) as select empno,ename,sal from emp;
合并查询:
操作符有union,union all,intersect ,minus
union:用于取得两个结果集的并集。会自动去掉重复行
select ename ,sal,job from emp where sal >2500
union
select ename ,sal ,job from emp where job='MANAGER';
union all:跟union相识,但不会取消重复行,而且不会排序
intersect:用于取得交集
minus:用于取得两个结果集的差集,它只会显示存在于第一个集合中,而不存在于第二个集合中的数据。
===============================
创建数据库:
使用工具Oracle提供的工具:Database Configuration Assistant
方法一:根据rownum来分(效率中等)
1.select * from emp;
2.select a1.* ,rownum rn from (select * from emp) a1;//rownum是Oracle自动为起分配的行号
3.select a1.* ,rownum rn from (select * from emp) a1 where rownum<=10;
4.select * from (select a1.* ,rownum rn from (select * from emp) a1 where rownum<=10) where rownum>=6;
注意:a.所有改动(例如:指定查询列),只需要改动最里面的查询即可。
b.排序,最里层加个order by...即可
方法二:根据rowid来分(效率最高)
select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from (select rowid rid,cid from
t_xiaoxi order by cid desc)where rownum<10000)where rn>9980)order by cid desc;
方法三:按分析函数来分(效率最差)
select * from (select t.* ,row_number() over(order by cid desc) rk from t_xiaoxi t)where rk<10000 and rk>9980;
查询总行数:
select count(*) from emp;
=======================================
用查询结果创建新表
create table myemp(id,ename,sal) as select empno,ename,sal from emp;
合并查询:
操作符有union,union all,intersect ,minus
union:用于取得两个结果集的并集。会自动去掉重复行
select ename ,sal,job from emp where sal >2500
union
select ename ,sal ,job from emp where job='MANAGER';
union all:跟union相识,但不会取消重复行,而且不会排序
intersect:用于取得交集
minus:用于取得两个结果集的差集,它只会显示存在于第一个集合中,而不存在于第二个集合中的数据。
===============================
创建数据库:
使用工具Oracle提供的工具:Database Configuration Assistant
相关文章推荐
- Oracle学习笔记
- Oracle学习笔记(一)安装
- Oracle学习笔记---(五)
- oracle学习笔记
- Oracle学习笔记(2)--存储结构
- Oracle学习笔记:Undo数据的作用
- Oracle学习笔记:利用utl_mail包发送email
- Oracle学习笔记:创建physical standby
- Oracle学习笔记:理解oracle的编程接口oo4o的对象模型
- Oracle学习笔记
- oracle学习笔记(一)【oracle的结构--物理和逻辑结构】
- oracle学习笔记(三)表的操作
- oracle学习笔记_触发器
- Oracle学习笔记(7) 开发PLSQL子程序和包
- oracle学习笔记(二)之文件篇
- Oracle学习笔记
- oracle学习笔记 2011-4-5(晚)
- oracle学习笔记--隐式游标
- oracle学习笔记1
- oracle学习笔记4