oracle中对索引的操作
今天为了查询oracle的rownum是怎么排序的,于是就做了几个查询(文章有点乱,这是第一次发表自己的文章,请大家理解哈):
1. select rownum,u.* from andy_user u order by email;
结果:
ROWNUM ID NAME PASSWORD EMAIL ADDRESS GENDER
---------- ---------------------------------------
1 1 andy andy 1297699558@qq.com 0
2 2 andy2 andy 1297699558@qq.com 上海市普陀区 0
3 3 andy3 andy 1297699558@qq.com 上海市普陀区 0
4 4 andy4 andy 1297699558@qq.com 上海市普陀区 0
5 5 andy5 andy 1297699558@qq.com 上海市普陀区 0
6 6 andy6 andy 1297699558@qq.com 上海市普陀区 0
11 11 3szhang 3szhang 1423233453@qq.com 北京市朝阳区 0
8 8 szhang szhang 23233453@qq.com 北京市朝阳区 0
7 7 zhang zhang 3233453@qq.com 北京市朝阳区 0
9 9 3szhang 3szhang 423233453@qq.com 北京市朝阳区 0
10 10 r3szhang r3szhang 5423233453@qq.com 南北京市朝阳区 0
2.对email建立索引:create index index_andy_user_email on andy_user(password);
然后再进行查询: select rownum,u.* from andy_user u order by email;
结果:
ROWNUM ID NAME PASSWORD EMAIL ADDRESS GENDER
---------- --------------------------------------
1 1 andy andy 1297699558@qq.com 0
2 2 andy2 andy 1297699558@qq.com 上海市普陀区 0
3 3 andy3 andy 1297699558@qq.com 上海市普陀区 0
4 4 andy4 andy 1297699558@qq.com 上海市普陀区 0
5 5 andy5 andy 1297699558@qq.com 上海市普陀区 0
6 6 andy6 andy 1297699558@qq.com 上海市普陀区 0
7 11 3szhang 3szhang 1423233453@qq.com 北京市朝阳区 0
8 8 szhang szhang 23233453@qq.com 北京市朝阳区 0
9 7 zhang zhang 3233453@qq.com 北京市朝阳区 0
10 9 3szhang 3szhang 423233453@qq.com 北京市朝阳区 0
11 10 r3szhang r3szhang 5423233453@qq.com 南北京市朝阳区 0
最后做了大量的实验,结果证明:
oracle 的rownum只有在order by 主键或者这个字段建立索引的时候才是先排序后产生的rownum 在没有前者的情况下,总是按插入的顺序产生rownum;
查询某个表中的索引:select index_name from all_indexex where table_name ='表明';
删除某个索引:drop index 索引名称;
查询一个表中的索引:select index_name from all_indexes where table_name = 'ANDY_USER';
注意: ANDY_USER是表明 这里一定要大写 否则返回的结果是空的。