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

浙公网安备 33010602011771号