Oracle数据库学习笔记之索引,序列及同义词
来源:互联网 发布:机房网络搭建 编辑:程序博客网 时间:2024/04/28 01:13
索引(index):--加快数据的查找而创建的数据库对象也叫数据库模式对象
可以为某些频繁出现在select中的条件创建索引
创建索引(索引的创建与删除不需要权限)
语法:
create index 索引名 on 表名(字段名);
create index i_name on emp(ename);
select * from emp where ename like '%S%';用到上面的索引(不用显示的调用,数据库自动引用)
create index i_name_and_job on emp(ename,job);
select * from emp where ename='SCOTT' or job='MANAGER'; --能用到上面创建的索引
select * from emp where ename='SCOTT'; --不会用到上面创建的索引
数据库会为主键约束和唯一约束自动创建索引称之为唯一索引
create unique index 索引名 on 表名(字段名);
create unique index i_bname on book(bname);
设置索引原则:
1.大表
2.频繁被使用的字段
删除索引:
drop index 索引名;
序列(sequence):
是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型)。主要用途是为表生成主键值
创建序列需要create sequence权限
语法
create sequence 序列名
[start with n] --以n开始生成,默认值是1
[increment by n] --每次增长n,默认值是1
[{maxvalue n|nomaxvalue}] --有无有最大值n,系统能生成的最大值(10^27)
[{minvalue n|nominvalue}] --有无有最小值n,系统能生成的最小值(-10^27,默认值是1
[{cache n|nocache}] --有无缓冲n,默认是20
[{cycle n|nocycle}] --是否循环,默认不循环
创建一个序列
create sequence seq_test
strat with 2
increment by 2
maxvalue 99999
nochache
nocycle
序列的使用:
current value
1.currval 获取当前序列的值
用法:序列名.currval
2.nexval 获取下一个序列的值
用法:序列名.nextval
select seq_test.nextval from dual;--2
select seq_test.nextval from dual;--4
select seq_test.currval from dual;--4
注意:当序列创建完毕一定要先获取下一个值,才能获取当前值
insert into book(bid,bname) values(seq_1.nextval,'第一本');
insert into book(bid,bname) values(seq_1.nextval,'第二本');
删除序列:
drop sequence 序列名;
删除序列需要是当前序列的创建者,或具有drop any sequence权限
序列的修改:
alter sequence 序列名
[increment by n] --每次增长n,默认值是1
[{maxvalue n|nomaxvalue}] --有无有最大值n,系统能生成的最大值(10^27)
[{minvalue n|nominvalue}] --有无有最小值n,系统能生成的最小值(-10^27,默认值是1
[{cache n|nocache}] --有无缓冲n,默认是20
[{cycle n|nocycle}] --是否循环,默认不循环
注意:不能修改初始值
alter sequence seq_test increment by 5;
查看序列的数据字典user_sequences
同义词(synonym):--为数据库模式对象起的别名
创建同义词需要create synonym 系统权限
同义词的种类:
公有同义词:public synonym
私有同义词:synonym 当前同义词的拥有者或当前同义词的拥有者授权个某个用户
语法:
create [public] synonym 同义词名
for [账户名.]对象名;
create synonym syn_emp for emp;
select * from syn_emp;
删除同义词:
drop synonym 同义词名;
删除同义词需要是当前同义词的拥有者或具有drop any sysnonym系统权限
user_synonyms--同义词数据字典
可以为某些频繁出现在select中的条件创建索引
创建索引(索引的创建与删除不需要权限)
语法:
create index 索引名 on 表名(字段名);
create index i_name on emp(ename);
select * from emp where ename like '%S%';用到上面的索引(不用显示的调用,数据库自动引用)
create index i_name_and_job on emp(ename,job);
select * from emp where ename='SCOTT' or job='MANAGER'; --能用到上面创建的索引
select * from emp where ename='SCOTT'; --不会用到上面创建的索引
数据库会为主键约束和唯一约束自动创建索引称之为唯一索引
create unique index 索引名 on 表名(字段名);
create unique index i_bname on book(bname);
设置索引原则:
1.大表
2.频繁被使用的字段
删除索引:
drop index 索引名;
序列(sequence):
是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型)。主要用途是为表生成主键值
创建序列需要create sequence权限
语法
create sequence 序列名
[start with n] --以n开始生成,默认值是1
[increment by n] --每次增长n,默认值是1
[{maxvalue n|nomaxvalue}] --有无有最大值n,系统能生成的最大值(10^27)
[{minvalue n|nominvalue}] --有无有最小值n,系统能生成的最小值(-10^27,默认值是1
[{cache n|nocache}] --有无缓冲n,默认是20
[{cycle n|nocycle}] --是否循环,默认不循环
创建一个序列
create sequence seq_test
strat with 2
increment by 2
maxvalue 99999
nochache
nocycle
序列的使用:
current value
1.currval 获取当前序列的值
用法:序列名.currval
2.nexval 获取下一个序列的值
用法:序列名.nextval
select seq_test.nextval from dual;--2
select seq_test.nextval from dual;--4
select seq_test.currval from dual;--4
注意:当序列创建完毕一定要先获取下一个值,才能获取当前值
insert into book(bid,bname) values(seq_1.nextval,'第一本');
insert into book(bid,bname) values(seq_1.nextval,'第二本');
删除序列:
drop sequence 序列名;
删除序列需要是当前序列的创建者,或具有drop any sequence权限
序列的修改:
alter sequence 序列名
[increment by n] --每次增长n,默认值是1
[{maxvalue n|nomaxvalue}] --有无有最大值n,系统能生成的最大值(10^27)
[{minvalue n|nominvalue}] --有无有最小值n,系统能生成的最小值(-10^27,默认值是1
[{cache n|nocache}] --有无缓冲n,默认是20
[{cycle n|nocycle}] --是否循环,默认不循环
注意:不能修改初始值
alter sequence seq_test increment by 5;
查看序列的数据字典user_sequences
同义词(synonym):--为数据库模式对象起的别名
创建同义词需要create synonym 系统权限
同义词的种类:
公有同义词:public synonym
私有同义词:synonym 当前同义词的拥有者或当前同义词的拥有者授权个某个用户
语法:
create [public] synonym 同义词名
for [账户名.]对象名;
create synonym syn_emp for emp;
select * from syn_emp;
删除同义词:
drop synonym 同义词名;
删除同义词需要是当前同义词的拥有者或具有drop any sysnonym系统权限
user_synonyms--同义词数据字典
阅读全文
0 0
- Oracle数据库学习笔记之索引,序列及同义词
- Oracle 学习笔记 12 -- 序列、索引、同义词
- Oracle数据库之对象视图、索引、序列、同义词
- Oracle学习笔记摘录5-----表 / 序列 /视图 / 索引 / 同义词
- Oracle之序列及同义词
- Oracle数据库对象----序列、索引、视图、同义词
- oracle sql 之视图,序列,索引,同义词
- Oracle 索引,同义词,序列
- oracle从入门到精通 之 七.ORACLE数据库中的序列,同义词,索引等对象
- Oracle学习笔记七:视图、同义词、序列
- Oracle高级 同义词 索引 序列
- Oracle-序列、索引和同义词
- ORACLE数据库中创建、删除--同义词、视图、索引、序列
- ORACLE数据库中创建、删除--同义词、视图、索引、序列
- ORACLE数据库中创建、删除--同义词、视图、索引、序列
- 七.ORACLE数据库中的序列,同义词,索引等对象
- Oracle数据库操作(视图,序列,索引,同义词)
- 数据库对象--索引,序列,同义词
- 利用Cookie记录商品浏览信息
- Vue 由单个复选框引发的联想
- JavaScript---继承之对象冒充(构造函数绑定)
- Java NIO缓冲区(Buffer)的数据存取
- 执行环境及作用域
- Oracle数据库学习笔记之索引,序列及同义词
- js function定义函数的方法
- Apache2.4+PHP5.6.31+MySQL5.1/SQLServer2008环境搭建 Win10 64位
- 读书笔记:c语言深度剖析之关键字
- 0039_Combination Sum
- Java NIO直接缓冲区与非直接缓冲区区别
- (论文阅读笔记1)Collaborative Metric Learning(一)(WWW2017)
- Android 系统7.0上 屏幕背光流程分析
- 文件内容查阅