摘要: 逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据库导入到数据库的过程。 物理备份即可在数据库open状态下进行也可在关闭数据库后进行,但是逻辑备份和恢复只能在open的状态下进行。 n 导出 导出 阅读全文
posted @ 2019-07-01 17:55 樊伟胜 阅读(809) 评论(0) 推荐(0) 编辑
摘要: 每个oracle数据库应该至少有一名数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分别担负不同的管理职责。那么一个数据库管理员的主要工作是什么呢? n 职责 (1)安装和升级oracle数据库 (2)建库、表空间、表、视图、索引… (3)制定并 阅读全文
posted @ 2019-07-01 17:54 樊伟胜 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 在pl/sql的执行过程中发生异常时系统所作的处理称为一个例外情况(exception)。通常例外情况的种类有三种; ①预定义的oracle例外情况,oracle预定义的例外情况大约有24个,对于这种例外情况无须再程序中定义,有oracle自动触发。(重点) ②非预定义的oracle例外情况由使用者 阅读全文
posted @ 2019-07-01 17:53 樊伟胜 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 管理触发器使用system登录 n 禁止触发器 是指让触发器临时失效 alter trigger 触发器名 disable n 激活触发器 alter trigger 触发器名 enable n 禁止或是激活表的所有触发器 alter table 表名 disable all triggers; a 阅读全文
posted @ 2019-07-01 17:51 樊伟胜 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 什么是ddl(data definition language),说白了就是我们经常用的create、alter和drop这些数据定义语句。 n 创建ddl触发器 请编写一个触发器,可以记录某个用户进行的ddl操作 基本语法: create or replace trigger 触发器名 after 阅读全文
posted @ 2019-07-01 17:50 樊伟胜 阅读(1447) 评论(0) 推荐(0) 编辑
摘要: 系统事件是指基于oracle事件(例如logon、logoff和startup、shutdown)所建立的触发器,通过使用系统事件触发器,提供了跟踪系统或是数据库变化机制。下面介绍使用的系统事件属性函数,和建立各种事件触发器的方法在建立系统事件触发器时,我们需要使用事件属性函数,常用的事件属性函数如 阅读全文
posted @ 2019-07-01 17:49 樊伟胜 阅读(394) 评论(0) 推荐(0) 编辑
摘要: n 触发器的分类 DML(insert,delete,update)触发器 DDL(create table ,create view...drop...)触发器 系统触发器(与系统相关的触发器,比如用户登录,退出,启动数据库,关闭数据库) 触发器有触发事件,触发条件,触发操作三个部分构成。 n 语 阅读全文
posted @ 2019-07-01 17:42 樊伟胜 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成的。 视图是oracle又一个数据对象,其主要作用是简化操作,提高安全,满足不同用户的查询需求, 阅读全文
posted @ 2019-07-01 17:41 樊伟胜 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 有了上面的基础,相信大家可以完成分页存储过程了,要求,请大家编写一个存储过程,要求可以输入表名、每页显示记录数、当前页、排序字段(deptno降序)。返回总记录数,总页数和返回结果集。 把一个字符串,当作sql语句执行,并把查询得到到结果赋给某个变量,语法如下: execute immediate 阅读全文
posted @ 2019-07-01 17:40 樊伟胜 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 在任何计算机语言(c,java,c#,c++)都有各种控制语句(条件语句,循环结构,顺序控制结构…),在pl/sql中也存在这样的控制结构。 在本部分学校完毕后,希望大家达到: 1)使用各种if语句 2)使用循环语句 3)使用控制语句 共同和null n 条件分支语句 pl/sql中提供了三种条件分 阅读全文
posted @ 2019-07-01 17:39 樊伟胜 阅读(250) 评论(0) 推荐(0) 编辑
摘要: n 包 包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。 为什么需要包:使用包可以更好的管理自己写的函数、过程 ①我们可以使用create package命令来创建包: create [or replace] package 包名 is procedure 过程名(变量名 变量类型…); 阅读全文
posted @ 2019-07-01 15:03 樊伟胜 阅读(291) 评论(0) 推荐(0) 编辑
摘要: n 触发器简单介绍 触发器是指隐含执行的存储过程,它不是由程序员或者是DBA来显式调用,而是因为某个操作引发执行的。当定义触发器时,必须要指定触法的事件和触发的操作,常用的触发事件包括insert,update,delete语句,而触发操作实际就是一个pl/sql块。可以使用create trigg 阅读全文
posted @ 2019-07-01 15:03 樊伟胜 阅读(118) 评论(0) 推荐(0) 编辑
摘要: n 介绍 在编写pl/sql程序是,可以定义变量和常量;在pl/sql程序中包括有: ①标量类型(scalar) ②复合类型(composite) ③参照类型(reference) ④lob(large object) 标量(scalar)一常用类型 在编写pl/sql块时,如果要使用变量,需在定义 阅读全文
posted @ 2019-07-01 15:03 樊伟胜 阅读(2063) 评论(0) 推荐(0) 编辑
摘要: n 函数 函数用于返回特定的数据,当建立函数式,在函数头部必须包含return子句,而在函数体内必须包含return语句返回的数据,我们可以使用create function来建立函数,实际案例: 基本语法: create function 函数名(参数1,参数2…) return 数据类型 is 阅读全文
posted @ 2019-07-01 14:59 樊伟胜 阅读(499) 评论(0) 推荐(0) 编辑
摘要: n 过程 过程用于执行特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分;通过使用输出参数可以将执行部分的数据传递到应用环境,在sqlplus中可以使用create procedure命令来建立过程。 实例如下: ① 阅读全文
posted @ 2019-07-01 14:58 樊伟胜 阅读(339) 评论(0) 推荐(0) 编辑
摘要: n 介绍 块(block)是pl/sql的基本成型单元,编写pl/sql程序实际上就是编写pl/sql块。要完成相对简单的应用功能,可能只需要编写一个pl/sql块;但是如果要想实现复杂的功能,可能需要在一个pl/sql块中嵌套其它的pl/sql块。、 n 块结构示意图 pl/sql块由三个部分构成 阅读全文
posted @ 2019-07-01 14:56 樊伟胜 阅读(1060) 评论(0) 推荐(0) 编辑
摘要: 索引是用于加速数据存取的数据对象,合理的使用索引可以大大降低I/O次数,从而提高数据访问性能。索引有很多种我们主要介绍常用的几种: 为什么添加了索引或,会加快查询速度呢? n 单列索引 单列索引是基于单个列所建立的索引,语法: create index index_name on table(col 阅读全文
posted @ 2019-07-01 14:52 樊伟胜 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 数据的完整性用于确保数据库数据遵从一定的商业的逻辑规则。在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因为约束易于维护,并且具有最好的性能,所以作为维护数据完整性的首选。 n 约束 约束用于确保数据库数据满足特定的商业规则。在oracle中, 阅读全文
posted @ 2019-07-01 14:46 樊伟胜 阅读(346) 评论(0) 推荐(0) 编辑
摘要: n 事物隔离级别 概念:隔离级别定义了事物与事物之间的隔离程度。 ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别(这是国际标准化组织定义的一个标准而已,不同的数据库在实现时有所不同): 隔离级别 脏读 不可重复读 幻读 读未提交(Read uncommitted) √ √ √ 读已提 阅读全文
posted @ 2019-07-01 14:44 樊伟胜 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 在java操作数据库是,为了保证数据的一致性,比如转账操作,从一个账户减掉10元,在另一个账户加上10元。 在类中定义的成员属性(变量)不用赋初值,但在函数里头定义的变量就一定要赋初值。 package com.test; import java.sql.*; public class Test { 阅读全文
posted @ 2019-07-01 14:43 樊伟胜 阅读(733) 评论(0) 推荐(0) 编辑