其它数据库对象
–数据库对象
–1).表table:数据的主要存储结构,由行和列组成
–2).视图view :存储起来的SELECT语句,基于表创建的
–3).序列sequence :提供一系列有规律的数值。通常主键提供表的主键所作用的列的值
–4).索引index:提高查询表的效率
–5).同义词synonym:可以提供数据库对象的别名
序列sequence:
序列: 可供多个用户用来产生唯一数值的数据库对象 自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内存可以提高访问效率
–1.序列
create sequence num _seq
start with 1
increment by 10
maxvalue 100
cycle//
nocache;//cache
sequence的两个主要的属性:
nextval(获取序列的下一个值) 和 currval(获取序列的当前值)
–在首次调用currval之前,必须调用nextval初始化
–sequence 在修改的时候不能修改 start with 属性, 也就是除了不能修改序列的初始化值以外,其它的内容都可以修改。
select num_seq.currval
from dual;
select num_seq.nextval
from dual;
–创建一个表table,给emp表的主键作用的列提供值
create table emp(
id number(10),
name varchar2(15),
constraint emp_id_pk primary key(id)
);
–序列的创建
create sequence emp_seq
start with 1
increment by 1
nocycle
nocache;
insert into emp(id,name)
values(emp_seq.nextval,’CC’);
–修改序列
alter sequence emp_seq
increment by 20;
–序列存在的问题:裂缝。①出现了回滚 ② 多个表共用一个序列③出现了异常
–2.索引index
–2.1作用:能够提高查询表的效率
–2.2弊端:如果频繁的对表进行修改的话,在修改的同时,还要维护一个索引的修改,
--会产生碎片化的文件。建议:在DML(增删改)之前先删掉index,操作完以后,再添加
–2.3如何创建索引:
–自动创建:在定义 primary key 或 unique 约束后系统自动在相应的列上创建唯一性索引
–手动创建:create index
create index emp_name_index –索引作用在表的列上
on emp(name);
select * from emp–当将这个列作为查询条件时,系统会自动调用其上的索引
where name = ‘BB’;
–删除索引
drop index emp_name_idx;
–3.同义词 synonym
select * from employees;
create synonym e
for employees;
select * from e;