对分页和提取一定数量数据的处理
rownum 例子http://blog.163.com/xdubj@126/blog/static/28977385200792595139743/
运用rownum的时候一般是< 因为rownum是自增长的
>查不出的 用>的时候嵌套且子查询应用别名
只需在order by 的字段上加主键或索引即可让oracle先按 该字段排序,然后再rownum 解决下面的问题
select * from ( select * from joint_content order by con_createtime desc) where rownum<5 直接写不排序系统是按照记录插入时的顺序给记录排的号(嵌套子查询)
分页的处理 内嵌套结束的位置 外面是范围内的处理
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
orcal中自增字段的创建方法
Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,
CREATE SEQUENCE emp_ID
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXvalue -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE
一旦定义了emp_ID,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的当前值
NEXTVAL=增加sequence的值,然后返回 sequence 值
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
orcal中将连个查询结果合并
union用法中,两个select语句的字段类型匹配,而且字段个数要相同,
select cno from sc
union
select sno from sc 课程号学号的查询
union all 它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,而union all不会,所以从效率上,union all 会高一点
intersect交集
minis 差集