oracle 使用总结

写博客坚持不下来,4个月没写了,看到以前写的文章有60多阅读量,虽然很少但是很开心,工作半年了,除了打字变快了,也没什么长进,Android学了1个多月,还是半桶水,留给自己的时间不多了,克服懒惰,抓紧学完。用了oracle 半年还不知道表空间,惭愧,下面开始总结

 

表空间

概念:就像电脑的磁盘分区一样,一个数据库可以包含很多表空间,里面包含数据库实体如表,视图,索引,回退段,临时段等。所有数据库运行的基本信息都包含在system表空间里面,对于小型的数据库一个sytem就可以了。创建用户时要为用户分配表空间

 

作用:数据库实体的分配额度,数据库用户的空间分配,分部数据在不同的设备改善性能,备份和恢复数据。

 

创建:create tablespace user_data

         datafile 'D:\ a.dbf' size 50m   autoextend on  next 50m maxsize 20480m   extent management local;

         为用户分配默认表空间

        create user username by identified by password defeault tablespace user_data

 

触发器

当某个事件发生时触发运行

触发器不能接收参数

触发事件包括对数据库视图的增删改查,数据库的启动和关闭

DML 触发器

oracle可以在DML语句进行触发,操作前操作后触发,对语句或每行操作触发

替代触发器

数据库不能对两个以上的表建立的视图进行操作,替代触发器可以进行视图操作

系统触发器

在数据库系统的事件中进行触发如数据库的启动和关闭

触发器的组成

触发事件

触发时间

触发对象:包括表、视图、模式、数据库。只有在这些对象上发生了符合触发条件的触发事件,才会执行触发操作

触发条件

触发频率:说明触发器内定义的动作被执行的次数。即语句级(STATEMENT)触发器和行级(ROW)触发器。

在触发器的执行部分只能用DML语句(SELECT、INSERT、UPDATE、DELETE),不能使用DDL语句(CREATE、ALTER、DROP)

 视图

 定义:     视图是一个数据库对象,是从一个或多个表或视图中导出的虚表,储存了要检索语句的定义,以便在引用该视图时使用

 作用范围:提供了简单有效的安全机制,可以定制不同用户对数据的访问权限

               自定义数据允许用户以不同的方式显示数据

               着重于特定的数据,不必要的数据可以不显示的视图中

创建方式: 

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name   

[(alias[, alias]...)]   

AS subquery  

[WITH CHECK OPTION [CONSTRAINT constraint]]   

[WITH READ ONLY] 

OR REPLACE    :若所创建的试图已经存在,ORACLE自动重建该视图;
FORCE  :不管基表是否存在ORACLE都会自动创建该视图;
NOFORCE   :只有基表都存在ORACLE才会创建该视图:
alias :为视图产生的列定义的别名;
subquery     :一条完整的SELECT语句,可以在该语句中定义别名;
WITH CHECK  OPTION :插入或修改的数据行必须满足视图定义的约束;
WITH READ ONLY :该视图上不能进行任何DML操作。

CREATE  OR  REPLACE  VIEW  dept_sum_vw 
(name,minsal,maxsal,avgsal) 
AS 
SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal) 
FROM emp e,dept d 
WHERE  e.deptno=d.deptno 
GROUP  BY  d.dname; 


--给用户授权创建视图
-- grant create all view to zdgshr;      所有数据库都能创建视图的用户
grant create view to zdgshr;

--创建简单视图
create view temp 
as 
select * from zd_member_basic_info;
--测试
select * from temp where rownum=1;

--创建简单视图:只读
create or replace view temp1
as 
select id,job_number,name,dept_id from zd_member_basic_info 
with read only;
--测试
insert into temp1(id,job_number,name,dept_id) values(1,0,'张三',1300);
 DROP VIEW  VIEW_NAME


posted @ 2016-09-07 14:37  飞猪.net  阅读(36)  评论(0)    收藏  举报