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是表明 这里一定要大写 否则返回的结果是空的。

原文地址:https://www.cnblogs.com/andysd/p/2548660.html