一、数据库的启动

启动数据库的三个阶段: nomount, mount,open

mount 阶段:.
  1.读参数文件
  2.分配内存
  3.启动后台进程
  4.初始化部分v$视图

mount 阶段:

  读参数文件中的控制文件 --> 校验控制文件的正确性 -->  将控制文件的内容加载到内存

  mount 是挂载的意思,将一个没有实际意义的实例挂载到任意数据库。控制文件包含: 数据文件和日志文件

Open 阶段:
  读取控制文件中的数据文件 ---> 验证数据文件的一致性,(如果不一致,使用日志文件将数据文件恢复到一致状态)--> 数据库 open 后,普通用户才能访问数据库

二、数据库的停止

Shutdown NORMAL

  • 新的会话不接受
  • 等待非活动的会话结束
  • 等待事物结束
  • 产生检查点
  • 停止数据库

Shutdown TRANSACTIONAL

  • 新的会话不接受
  • 不等待非活动的会话结束
  • 等待事物结束
  • 产生检查点
  • 停止数据库

Shutdown immediate

  • 新的会话不接受
  • 不等待非活动的会话结束
  • 不等待事物结束
  • 产生检查点
  • 停止数据库

Shutdown abort

  • 新的会话不接受
  • 不等待非活动的会话结束
  • 不等待事物结束
  • 不产生检查点
  • 停止数据库

一致性 shutdown,产生检测点

  • Shutdown NORMAL
  • Shutdown TRANSACTIONAL
  • Shutdown IMMEDIATE
  • 数据库再次启动的时候不要恢复

不一致性 shutdown,不产生检测点

  • Shutdown abort
  • Startup force
  • Instance 崩溃(停电)
  • 数据库再次启动的时候需要恢复,自动的,透明的
    conn sys/sys as sysdba
Shutdown abort;
Startup nomount;
select instance_name,status from v$instance;
alter database mount; -- 切换到 mount
alter database open -- 打开数据库 Open

  

三、oracel 数据库的创建

一般通过板库创建,板库位置: %oracle_home%\assistants\dbca\templates 目录下

数据字典的创建

在创建数据库时,数据字典是自动创建的,数据字典的位置:%oracle_home%\rdbms\admin\catalog.sql v$ 的字典是数据库在启动时初始化的

数据库字典的使用

  • 数据库自己使用字典获取信息
  • 数据库自动维护
  • 查看字典获取数据库的相关信息

查看oracel 安装的实例(数据库)
 select instance_name from v$instance;

四、 触发器

  触发器的类型 

  • 行级触发器 FOR EACH ROW: 受影响的每一行都会执行触发器
  • 语句触发器 :默认的模式,一句话才执行一次触发器

何时触发

  • BEFORE 在条件运行前触发
  • AFTER 在条件执行后触发
  • INSTEAD OF 替代触发,作用在视图上

触发器的创建

		CREATE or replace TRIGGER  触发器名
AFTER delete or update of 字段 ON 表名
FOR EACH ROW
BEGIN
IF(UPDATING AND :old.字段名 != :new.字段名)
THEN UPDATE E
SET 字段=:new.字段名
where 字段=:old.字段名
END IF;
IF deleting THEN
delete e where 字段= :new.字段名;
end it;
END;
/

     查看 触发器的状态

select trigger_name,status from user_triggers;

禁用触发器

alter trigger 触发器名 disable;

禁用某个表上的所有触发器

  alter table 表名 disable all triggers;

删除触发器

  drop trigger 触发器

五、函数

  • 函数是有名称的 pl/sql 块是
  • 函数有返回值
  • 存储在服务器端
	 CREATE OR REPLACE FUNCTION 函数名
(v_id IN emp.empno%TYPE)
RETURN NUMBER
IS
v_salary emp.sal%TYPE :=0;
BEGIN
SELECT sal INTO v_salary FROM emp WHERE empno = v_id;
RETURN (v_salary);
END get_sal;
/ 

查看函数
select object_name,object_type from user_objects;

查看原程序
select text from user_source;

调用函数
select 函数名(7839) from dual;

删除函数
 DROP FUNCTION 函数名;

建立索引用的函数

  要使基于函数的索引被使用要先收集统计信息DETERMINISTIC(确定性)要在函数的定义中指明(意思为输入的值相同时函数的返回值也相同,如随机数发生函数,日期函数就不符合)函数中不能含有集合函数Or 运算时不会使用函数索引

  QUERY_REWRITE_ENABLED=TRUE
  QUERY_REWRITE_INTEGRITY=TRUSTED

六、存储过程

  • 存储在服务器端
  • 编译好的
  • 可以在程序中调用
  • 完成一定的功能。
  • 可以没有返回值,也可以有多个返回值

创建存储过程

   CREATE OR REPLACE  PROCEDURE  存储过程名
(参数)
is
BEGIN
-- DML 语句
commit;
End 存储过程名;
/

  验证原程序

select text from user_source where name='存储过程名';

单独运行
EXECUTE 存储过程名(参数)

BEGIN
存储过程名(参数)
end;
/

Oracle 学习笔记 (七)的更多相关文章

  1. Oracle学习笔记七 锁

    锁的概念 锁是数据库用来控制共享资源并发访问的机制. 锁用于保护正在被修改的数据 直到提交或回滚了事务之后,其他用户才可以更新数据 对数据的并发控制,保证一致性.完整性.

  2. Oracle学习笔记(七)

    九.高级查询(分组,子查询)查询升级版: 需要用到三张表员工表: desc emp EMPNO 员工号 ENAME 员工姓名 JOB 员工职位 MGR 老板员工号 HIREDATE 员工入职日期 SA ...

  3. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  4. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

  5. Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  6. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  7. Typescript 学习笔记七:泛型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  8. python3.4学习笔记(七) 学习网站博客推荐

    python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...

  9. Go语言学习笔记七: 函数

    Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...

  10. Oracle学习笔记——点滴汇总

    Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster

随机推荐

  1. BigDecimal加减乘除

    import java.math.BigDecimal; public class Testmath { public static void main(String[] args) { String ...

  2. SVG路径PATH

    SVG路径PATH 在使用之前建议下个PS或者FLASH玩玩里面的钢笔工具(FLASH里的钢笔工具比PS里的好用) PATH用到的指令: M----(X Y):移动到 Z----(none):关闭路径 ...

  3. SQL Server--------SQL Server问题错误解决

    1.错误提示: 修改字段属性时,提示: 消息 5074,级别 16,状态 1,第 1 行对象'DF__dms_deliv__sync___51BAE991' 依赖于 列'sync_ff_result_ ...

  4. GeoServer java.io.IOException: No such resource: generic.sld No such resource: generic.sld

    原因是 发布 图层时 没有设置类型 默认 generic 但是我们的数据库中 没有这个 解决办法: 点击 图层--点击 相应的 图层名称 ---发布  --- WMS Settings 下面的Defa ...

  5. java 集合之Map

    Map的功能方法 方法put(Object key,Object value)添加一个"值"(想要得东西)和与"值"相关的"键"(key)( ...

  6. nginx——优化 Nginx 站点目录

    1. 禁止解析指定目录下的指定程序 location ~ ^/data/.*.(php|php5|sh|pl|py)$ { # 根据实际来禁止哪些目录下的程序,且该配置必须写在 Nginx 解析 PH ...

  7. 蘑菇街支付架构 PDF 下载

    蘑菇街支付架构 PDF 下载 下载地址:链接:https://pan.baidu.com/s/1ZffetaUhVMOzb9j2PSQJIQ 密码:iays http://www.java1234.c ...

  8. 【开发遇到的问题】Spring Mvc使用Jackson进行json转对象时,遇到的字符串转日期的异常处理(JSON parse error: Can not deserialize value of type java.util.Date from String[)

    1.问题排查 - 项目配置 springboot 2.1 maven配置jackson - 出现的场景: 服务端通过springmvc写了一个对外的接口,查询数据中的表,表中有一个字段属性是时间戳,返 ...

  9. Semantic Compositionality through Recursive Matrix-Vector Spaces-paper

    Semantic Compositionality through Recursive Matrix-Vector Spaces 作者信息:Richard Socher Brody Huval Chr ...

  10. css新增伪类

    :first-of-type p:first-of-type 选择属于其父元素的首个 <p> 元素的每个 <p> 元素. :last-of-type p:last-of-typ ...