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

oracle中的rownum和同义词用法

2014-07-20 12:44 295 查看
Rownum用法

ROWNUM:表示行号,实际上此是一个列,但是这个列是一个伪列,此列可以在每张表中出现。

1 查询全部的记录

select rownum ,e.*

from emp e

2 查询前5条记录

select rownum ,e.*

from emp e

where rownum <=5

3 查询5-10条记录

select rownum ,e.*

from emp e

where rownum between 5 and 10

结果一条也显示不出来

结论:如果想进行中间的截取操作,则只能采用子查询,先查询1-10条记录,然后再查询5-10条记录

正确结果:

select temp.*

from (select rownum rn,e.*

from emp e

where rownum <=10 ) temp

where temp.rn>=5 and temp.rn<=10

4 如何查询出按工资降序的5-10条记录呢

select temp.*

from (

select rownum rn,t.*

from (select *

from emp

order by sal desc ) t ) temp

where temp.rn>=5 and temp.rn<=10

同义词:

之前一直存在这样一种查询语句

select sysdate from dual

但是dual是一张虚表,那么此表在哪里定义列,使用system连接数据库,查询此表是否属于system用户

1 conn system/manager 连接

2 select * from tab where tname='DUAL' 查询

但是没有用查询到该表,试下超级管理员连接数据库

1 conn sys/change_on_install as sysdba

2 select * from tab where tname='DUAL'

查询到此表

在scott用户下面直接使用表名可以查询到,正常情况如果要访问不同用户下的表需要使用 用户名.表名,如果使用同义词就可以解决该问题.在该用户下面建立同义词去查询。

1 创建同义词

create synonym 同义词名称 for 用户名.表名

create synonym emp for scott.emp

2 删除同义词

drop synonym 同义词名称

drop synonym emp

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