SQL 语法
DML(数据管理语言)
数据伪列(了解)
数据伪列值得是用户不需要处理的列,而是由 Oracle 自行维护的数据列有两个数据伪
列:ROWNUM、ROWID;
一、ROWNUM
ROWNUM 为每一个显示的记录都会自动随着查询生成行号,例如:
SELSECT ROWNUM,empno,ename,job,hiredate,sal FROM emp ;
此时的 ROWNUM 行号并不是固定的,而是每次显示记录时生成的。那么有了这个
ROWNUM 就可以实现数据的部分显示:
范例:查询前 5 条记录;
SELECT ROWNUM,empno,ename,job,hiredate,sal FROM emp
WHERE ROWNUM<6 ;
范例:查询 6-10 条记录
SELECT ROWNUM,empno,ename,job,hiredate,sal FROM emp
WHERE ROWNUM BETWEEnN 6 AND 10 ;
这个时候并没有返回任何数据,因为 ROWNUM 并不是真实的列,而想要实现这种查
询就必须先查询前 10 条记录,显示后 5 条记录,要依靠子查询:
SELECT * FROM(
SELECT ROWNUM rn,empno,ename,job,hiredate,sal
FROM emp
WHERE ROWNUM<=10) temp
WHERE temp.rn>5 ;
如果现在按照这个思路,下面就可以给出日后程序所需要的分页功能的实现:
范例:显示当前 5 条记录;
当前所在页(currentPage)为 1;
每页显示数量为 5:
第一页:
SELECT *FROM (
SELECT ROWNUM rn,empno,ename,job,hiredate,sal FROM emp
WHERE ROWNUM<=5) temp