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学习笔记(十四) 数据库对象 索引 视图 序列 同义词
-
Oracle实践--PL/SQL基础之同义词和序列
-
oracle序列、触发器及索引示例
-
Oracle之DDL (Data Definition Language ,数据定义语言)(约束、伪列、视图、序列、同义词) 精简版
-
Oracle数据库基本操作(二) —— 视图、序列、索引、同义词
-
oracle 序列 视图 索引 同义词
-
Oracle序列、索引、同义词操作讲解
-
Oracle中的概念:同义词、序列与视图
-
Oracle入门基础(十)一一数据库其他对象-视图/序列/索引/同义词
-
oracle教程14 Oracle的其他数据库对象(序列 、索引 、同义词)