Oracle中的对象


--------------视图-------------------
创建视图的表叫基表;
视图中可含有多表联接,更改视图的内容,修改的内容只能涉及一个基表的内容。
集合运算符、DISTINCY运算符、集合函数、GROUP BY、CONNECT BY等字句时,视图通常是不能修改。
对视图的操作不能违反创建时的where条件,例如:where age>20,则不能在视图插入age<=20的数据
创建:create view v_emp as select * from emp ; --加上“with read only” ,视图为“只读”,
修改:create or replace v_emp as select * from emp where sex='F';
使用:select * from v_emp ;
删除:drop view v_emp ;
--------------索引----------
主键自动添加了唯一索引
索引可以提高查询效率,但会频繁更新的表不宜创建索引,因为每次更新都要更新索引表。
创建索引:
create index index_emp on emp(bdate) --
tablespace system --表空间,system 不唯一索引(公有),去掉私有。
storage ( initial 20 k next 20 k pctincrease 75)
pctfree 0;
创建位图索引:create bitmap index on emp(sex); --可能的值少,重复多
删除索引:drop index index_ename;
查看emp表的索引信息:select table_name ,column_name,index_name from user_ind_columns where table_name=‘EMP‘ --注意表名一定要大写
---------------同义词-------------
概念:为oracle数据库中的对象创建一个别名,也可以有多个,使该对象的非创建者也可以直接通过该别名来访问。
作用:使用方便,如果DBA或设计人员改变了表名将直接影响程序,如果程序使用同义词,则只需修改同义词即可
create synonym emp2 for scott.emp; --只有创建者自己可以访问
create public synonym emp2 for scott.emp;--DBA创建,所有用户都可以访问
select * from DBA_SYNONYMS where table_name='EMP';--查看表的同义词
drop synonym EMP2 --删除同义词
------------序列-----------------
序列就是一个连续的数字生成器,可设置为上升或下降,可用于主键自增
create sequence myseq
increment by 1 --增量
start with 1 --开始
maxvalue 1.0E28 --最大值
minvalue 1 --最小值
nocycle --不循环
cache 20 --预产生20个数
noorder
create table xl(id number,name varchar2(20));
insert into xl values (myseq.nextval,'呵呵');
select * from xl;
select myseq.currval from dual; --currval查询当前序列值,nextval查询下一个序列值
select * from ALL_SEQUENCES where sequence_name ='MYSEQ';//查看序列信息,表名和序列名都必须大写,DBA_SEQUENCES所有,ALL_SEQUENCES当前,USER_SEQUENCES用户序列说明
drop sequence myseq --删除序列
------------
簇:没什么用,已经不用了。

相关文档
最新文档