Oracle实践数据库笔记-6
Rehoni / 2018-03-20
回顾
删除操作delete和drop的区别 回收站的机制 删除表的时候其实不删除文件而是改动文件名,实现加入回收站的操作
flashback *****
数据完整性
- 代码
- 触发器
- 约束(开销小)
数据+规则—–>合理,有效 建立表的时候:关键字+起名字+约束类型(+字段);
一些关键字: 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;
---
视图
没认真听
- 屏蔽敏感数据
- 便于查询
- 数据独立性
虚表—不是存储结构 表—是存储结构
存在一些DML操作无法修改data:
- Group function
- GROUP BY
- DISTINCT
- pseudocolumn ROWNUM
- columns defined by exceptions
复杂视图 内嵌视图
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 同义词
没讲
例程管理
很多没听懂
关于权限不足的问题:
- 关闭例程(shutdown)
4种模式 (N,T,I,A)
- 启动数据库(startup)
- 启动例程 nomount 加载初始化参数文件,只能访问一部分动态性能视图(内容来自内存的)
- 加载数据库 mount 加载控制文件,可以访问所有的动态性能视图
- 打开数据库 open 加载联机日志文件和数据文件
- 例程配置
-
了解初始化文件
- 文本文件pfile init.ora —initdb11.ora
- 二进制文件spfile spfile.ora —spfiledb11.ora
-
查看初始化参数 show parameter **=
-
修改初始化参数 alter system set **=
-
**将初始化参数还原成默认值 alter system reset ** (重启才生效)**重设所有的默认值该怎么写
-
修复出错的初始化参数
-
根据spfile/pfile创建pfile/spfile
-
启动时选择初始化参数文件的顺序
- spfile.ora
- spfile.ora
- init.ora
-
用指定的初始化参数文件启动 startup pfile=
- 静态参数和动态参数
- 静态参数需要修改文件,alter system set sga_max_size=3000m;报错,false的mod在文件修改完之后,需要重启后生效
- 动态参数可以改动,如share_pool_size,desc v$parameter查询 immediate的mod为可以直接改动后当前会话立即生效,
- deferred的mod为新会话生效
alter system set shared_pool_size=208m scope=memory; show parameter shared_pool_size; alter system set sga_max_size=3000m scope=spfile;---重启之后 create spfile from pfile