Luo Hao

Oracle实践数据库笔记-6

Rehoni / 2018-03-20


回顾

删除操作delete和drop的区别 回收站的机制 删除表的时候其实不删除文件而是改动文件名,实现加入回收站的操作

flashback *****

数据完整性

  1. 代码
  2. 触发器
  3. 约束(开销小)

数据+规则—–>合理,有效 建立表的时候:关键字+起名字+约束类型(+字段);

一些关键字: CHECK 检查条件 FOREIGN KEY, REFERENCES ON DELETE CASECADE, 删除部门,员工回家 ON DELETE SET NULL, 删除部门,员工待分配

添加约束和删除约束: ALTER ADD/DROP/ENABLE/DISABLE

---一点例子
ALTER TABLE table
ADD [CONSTRAINT  constraint] type (column) ;
ALTER TABLE employee s
ADD CONSTRAINT emp_manager_f k FOREIGN KEY (manager_id)
REFERENCES employees (empoyee_id) ;
ALTER TABLE employees
DROP CONSTRAINT emp_manager_fk;
desc user_constraints;
desc user_cons_columns;
---添加约束的时候注意处理异常数据的操作
desc exceptions;异常表不存在
@?/rdbms/admin/utlexcpt 创建异常表--->查询启用约束后违反约束的数据
alter table test
enable constraints uni_c2
exceptions into exceptions---启用约束时候注意把异常放入exceptions表中
 select rowid,c1,c2
  2  from test
  3  where rowid in (select row_id from exceptions);---查询异常数据然后修改
truncate table exceptions;
---

视图

没认真听

  1. 屏蔽敏感数据
  2. 便于查询
  3. 数据独立性

虚表—不是存储结构 表—是存储结构

存在一些DML操作无法修改data:

复杂视图 内嵌视图

create view emp_info
as select empno,ename,sal from emp;
create or replace view emp_info
as select empno,ename,sal,deptno from emp;--如果删除原来的view,所有的上边的权限会丢失(Oracle是按照id来操作的),那么删掉重建hr会改变导致出现问题
grant create any view to scott;--给他的权限
*** with check option---符合条件才能更改
*** with read only---只读视图
------子查询
select empno,ename,sal from emp
where rownum<=3
order by sal desc;
------内嵌式图
select empno,ename,sal from (select * from emp order by sal desc)
where rownum<=3;

sequence 序列

create sequence s1;----序列
select s1.nextval from dual;
select s1.currval from dual;
-------------
create sequence s2
start with 20
increment by -1
maxvalue 30
minvalue 0
cycle
cache 4;

索引 index

看ppt

synonyms 同义词

没讲

例程管理

很多没听懂

关于权限不足的问题:

  1. 关闭例程(shutdown)

4种模式 (N,T,I,A)

  1. 启动数据库(startup)
  1. 例程配置