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

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

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