oracle 索引、视图、同义词、序列

一、索引

索引:它和书籍目录一样,是为整张表的某一列建一个类似于书籍目录。当我们把索引字段作为查询条件时,会提高查询效率。

缺点:如果表中数据增、删、改比较多的时候,会影响增删改的效率。一般索引用在数据比较大而且数据很少做增删改的地方。

创建索引语法: create index 索引名称 on 表名(列名,列名,.....)

                 例: create index sc_index on (sno);

注意:不要在索引上作任何操作(不能对索引列进行+、-、*、/,以及一些函数操作),如果你在索引列上加上了其他任何操作,这个查询就不会用到索引。 

           where sal/2 >1000 就不会走索引,改为 where sal>1000*2;

二、视图

视图:它在数据库里相当于一张虚拟的表,这个表是不存在的。如果我们经常查询一些数据,查询sql语句比较复杂,频率较高,这时候可以考虑创建一个视图。

语法:create or replace view 视图名 【("别名1","别名2",......"别名")】 as 查询语句 

例   :create or replace view sc_view ("学号","课程号","分数")  as select * from sc;

注:【】内的别名可以省略,别名的顺序和个数要和查询语句的结果相对应

删除视图:drop view 视图名

三、同义词

语法:create synonym 同义词名称 for 对象

比如给student表定义一个同义词:

          create synonym 学生表 for student;

同义词定义后用法和表一样 :select * from 学生表;相当于select *from student ;

四、序列

序列一般用来生成表的主键值

语法:create sequence 序列名 

          start with 初始值

          increment by 成长值

 

         [maxvalue n|nomaxvalue]

         [minvalue n]

         [cache n |nocache]

         [cycle | nocycle]  ;            []内的内容可以省略

 

解析:create sequence:创建序列关键字

          start with :后面跟序列初始值,意思是序列开始值

          increment by :序列每次增加的数,后面跟整数

          maxvalue:序列的最大值

          minvalue:序列的最小值

          cache:每次缓存多少个值,后面跟正整数

          cycle:它表示如果序列值到最大值时,它会继续生成序列号,nocycle到最大值后不会再生成序列号

修改序列:alert sequence 序列名 start with 修改值

 

currval:序列的当前值

 select seq.currval from dual;

 nextval:序列的下一个值,序列会自动增加

 select seq.nextval from dual;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值