Oracle, DB2 及 MySQL 分页查询写法
现在在WEB 应用中使用分页技术越来越普遍了,其中利用数据库查询分页是一种效率比较高的方法,
下面列出了Oracle, DB2 及 MySQL 分页查询写法。
一:Oracle
select * from (select rownum,name from table where rownum <=endIndex )
where rownum > startIndex
二:DB2
DB2分页查询
SELECT * from (Select 字段1,字段2,字段3,rownumber() over(ORDER BY 排序用的列名 ASC) AS rn from 表名) AS a1 WHERE a1.rn BETWEEN 10 AND 20
以上表示提取第10到20的纪录
select * from (select rownumber() over(order by id asc ) as rowid from table where rowid <=endIndex ) AS a1
where a1.rowid > startIndex
三:MySQL
select * from table limit start,pageNum
SELECT EVENTID , EVENTNAME , CREATETIME , ELAPSEDTIME , REPEATCOUNT , MESSAGE , LOCALINSTANCEID , STATUS , MEMO from(SELECT rownumber() OVER (ORDER BY CREATETIME ASC) AS rowid from MS_EVENT WHERE rowid <=20) as a1 WHERE a1.rowid >10
SELECT * from (SELECT EVENTID , EVENTNAME , CREATETIME , ELAPSEDTIME , REPEATCOUNT , MESSAGE , LOCALINSTANCEID , STATUS , MEMO,
ROWNUMBER() OVER (ORDER BY CREATETIME ASC) AS rn from MS_EVENT) AS a1 WHERE a1.rn BETWEEN 10 and 20
--------------------------------------------------------------------
1. 标准的rownum分页查询使用方法:
select *
from (select c.*, rownum rn from content c)
where rn >= 1
and rn <= 5
2. 但是如果, 加上order by addtime 排序则数据显示不正确
select *
from (select c.*, rownum rn from content c order by addtime)
where rn >= 1
and rn <= 5
解决方法,再加一层查询,则可以解决,
select *
from (s
相关文档:
过程中的事务
定义过程p1
create or replace procedure p1
as
begin
insert into student values(5,'xdh','m',sysdate);
rollback;
end;
定义过程p2
create or replace procedure p2
as
begin
update student set stu_sex = 'a' where stu_id = 3;
p1;
end;
执行过程p2
exec p2;
执行完毕发现 ......
Oracle管理员的两种认证方法
注意:重要
parameter 中remote_login_passwordfile
1、alter system set remote_login_passwordfile= none scope =spfile;
含义:非密码认证(此时仅os认证 )
2、alter system set remote_login_passwordfile= exclusive ......
需要大量oracle测试数据时,可以使用以下方法。
DECLARE
i INT;
BEGIN
i := 0;
WHILE(i < 100000)
LOOP
i := i + 1;
INSERT INTO TEST_TABLE(ID, XM) VALUES(i, '姓名' || i);
END LOOP;
COMMIT;
END; ......
数据owner和数据操作者以及代码访问使用不同的用户访问,使用授权的方式进行访问。
数据表创建时使用同义词创建
授权时最好不要使用with grant option
以前不太明白同义词的使用,现在知道了。比较好的应用就是创建表的别名
create public 同义词 tableName for owner.tableName
给视图授权可以使得用户访问不具 ......
注意:引用"肥占的博客 http://fatjames.extjs.org.cn/archives/40"
mysql5.x sql-mode 引起的错误
今天安装了个mysql5.0,拿了一个很久之前网上下的程序检查一下是否工作正常.
发现以前的程序居然不能正常运行,提示信息如下:
Database error: Invalid SQL: INSERT INTO
Survey_UserHistory(userId,jobId,type ......