oracle11g学习笔记(八)

一、oracle的分页
oracle的分页一共有三中方式(这里只有一种)
1.rownum 分页
select * from
 (select a.*,rownum rn from
   (select * from emp) a
  where rownum<=15
 )
 where rn>10;
这条语句是用来将11-15条记录提取出来,拆分这条语句
1.将所有想要的结果查询出来
select * from emp;
2.将上一步的结果作为一个视图,给每一条记录加上一个rn编号,
并将前15条记录查询出来.其中rownum为oracle的关键字,
且在第一次在查询字段中使用rownum时,如果有条件限制在where子句中也要用rownum,不可以用rn
select a.*,rownum rn from (select * from emp) a where rownum<=15;
3.将前15条数据作为一个视图,提取出11-15条
select * from (select a.*,rownum rn from (select * from emp) a where rownum<=15) where rn>10;
在java程序中只需要替换15和10这两个数字就可以实现分页了

二、用查询结果创建新表
这个命令是一种快捷的建表方法
create table mytable(id,name,sal,job,deptno)
as select empno,ename,sal,job,deptno from emp;
三、合并查询
为了合并多个select语句的结果,可以使用集合操作符号,union,union all,intersect(交集),minus(差集)
(1)union
该操作符,用于取得两个结果集的并集,使用时自动去掉相同部分结果集
select ename,sal,job from emp where job='MANAGER'
union select ename,sal,job from emp where sal>2500;
(2)union all
与union相似,但是不取消重复行,而且不排序
(3)intersect
取交集
(4)minus

取差集
只会显示存在第一个集合中,而不存在在第二个集合中的数据
集合操作要比and,or效率高很多
四、操作数据
使用特定的格式插入日期值
(1)使用to_date函数
?如何插入带有日期的表,并按照年月日格式插入
insert into emp values(9994,'hou','PRESIDENT',null,to_date('1990-10-10','YYYY-MM-DD'),800,1000,10);
使用to_date函数可以插入任意形式的日期
(2)使用子查询插入数据
一条insert语句可以插入大量的数据,当处理行迁移或者装载外部表的数据到数据库时,
可以使用子查询插入数据
insert into mytable(id,name,deptno)
select empno,ename,deptno from emp
where deptno=10;

(3)使用子查询更新数据
?希望员工scott的岗位、工资、补助与SMITH一样
update emp set (job,sal,comm)=
(select job,sal,comm from emp
 where ename='SMITH' 
)
where ename='SCOTT';

ename的值要用大写,oracle对值的大小写是敏感的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值