欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle序列、索引、同义词举例

程序员文章站 2022-06-02 13:12:07
...

1. 序列

--创建序列
create sequence seq_stu_id;
--每一个序列创建出来后,先要调用nextval。
select seq_stu_id.nextval from dual;
select seq_stu_id.currval from dual;

--使用序列,提供一个连续的,自动增长的数值,通常用来生成编号。
--给学生表插入记录,主键值使用序列生成
insert into student values(seq_stu_id.nextval,'小赵',19,'男','一年三班');

--修改序列
--修改前的序列值不会改变,修改后的序列值应用新的参数,比如自动增长的步长值。
--修改不会改变初始值,要删除旧序列,再创建一个新的同名序列来达到目的。
--语法
ALTER SEQUENCE 序列名
               INCREMENT BY 20
               MAXVALUE 999999
               NOCACHE
               NOCYCLE;
--删除序列               
DROP SEQUENCE 序列名;


2. 索引

--索引
--索引可以加快查询速度,数据量越大,效果越明显
--索引与表相互独立,有自己的存储空间,需要额外的管理和维护
--服务器自动使用和维护索引,索引是我们创建的,但是我们自己用不上,提供给数据库使用的。
--创建索引。数据库会自动为主键和唯一性约束创建索引;
--创建索引语法
CREATE INDEX 索引名
ON 表名 (字段名1,字段名1);

--不适宜建索引的列
--重复值特别多
--数据修改特别频繁(索引需要频繁更新)
--同一张表不适宜创建太多索引

--默认创建B-tree索引
--位图索引,适合重复率较高的字段,比如部门字段,在根据部门分组查询时可以加快速度。
create bitmap index 索引名
on 表名 (字段名);

--查询索引
select * from user_indexes;

--删除索引
drop index 索引名;


3. 同义词

--同义词:给数据库对象起别名,通过正式的对象名和别名都可以访问对象。
--使用场景:授权别的用户使用对象时,告诉告诉他别名,隐藏实际的对象名
--对象名太复杂,频繁使用的场合下使用别名更简单。
--语法
CREATE SYNONYM 同义词
FOR    对象名;

create synonym s1 for seq_stu_id;

grant create synonym to scott;

select seq_stu_id.currval from dual;
select seq_stu_id.nextval from dual;

select s1.currval from dual;

--删除同义词
drop synonym 同义词名;







相关标签: oracle