oracle数据库SQL开发之序列,索引,同义词

一、序列

– 序列是按照一定规则能自动增加/减少数字的一种数据库对象。
– 通常可以使用序列自动地生成主键值。

(一)创建序列

例:创建序列test_seq,起始值为10,每次增长2,最大值100,最小值9,循环序列,每次缓存10

create sequwnce te77st_seq
start with 10 -- 序列从10 开始
increment by 2 -- 序列每次增加2
maxvalue 100 -- 序列最大值100
minvalue 9 -- 序列最小值9
cycle -- 序列循环, 每次增加2, 一直到100 后回到9 从新开始
cache 10-- 缓存中序列值个数为10

(二)序列属性

nextvalcurrval伪列 必须先执行有nextval语句的sql语句,使序列动起来
currval:表示序列返回的当前值;
nextval:表示序列返回的下一个值;
currval在被引用之前,必须先使用nextval来产生一个序列值;
– 可用语句 序列名.currval或 序列名.nextval来访问序列;

(三)序列的使用

– 创建序列student_seq:

create sequence student_seq
start with 1
increment by 1;

– 使用序列student_seq生成student表中sid列插入值:(作用体现在这里)

insert into student
values (student_seq.nextval, 'Scott', 'Computer Science', 11);

(四)序列的修改

– 正确修改

alter sequence test_seq
increment by 4 --序列每次增加4
maxvalue 1000 -- 序列最大值1000 (注意原始序列的最大值);
nocache ; -- 不设定缓存

rowid
– 是一个伪列,系统自动产生。
– rowid能唯一标示每一条数据库行记录的物理地址,通过
– rowid 能快速定位到一条行记录。– 快速定位记录,使用rowid检索及操作数据,效率最快

二、索引

索引( index) • 建议索引命名格式:idx_tablename_columnname
– 是对数据库表中一个或多个列的值进行排序的一种数据库对象。
– 在数据库中,通过索引可以加速对表的查询速度;

(一)索引的分类

1…单列索引:
– 索引建立在表中的某一列上。

2.复合索引:
– 索引建立在表中某几列的组合上

(二)索引的创建

1.自动创建:当有primary key 或者 unique 约束时,会自动创建;
2.手动创建
-在emp表的ename字段上创建索引.

SQL>create index idx_emp_ename on emp (ename);

-在emp表的deptno和job的组合上创建索引

SQL>create index idx_emp_deptnojob on  emp (deptno,job);

(三)索引的缺点-----占用空间,降低DML的操作速度

(四)删除索引 drop index idx_tablename_columnname

三、同义词

同义词( synonym ) 是指向数据库对象(如:表、视图、序列、存储过程等)的数据库指针。
-创建employees表的别名。
create (public/private) s_emp
for hr.employees;
-删除同义词 – 只有数据库管理员才拥有公有同义词的创建和删除权限
drop synonym s_emp;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值