<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->
== 第一章 :Oracle 基础
1.Oracle 是一种基于面向对象关系型的大型数据库管理系统 .
2.Oracle 的架构模式为 : 客户端 - 服务器方式
3.Oracle 数据库的特征 : 1) 多用户、大事务量处理 2) 完整性、安全性控制严格
3) 支持分布式系统开发 4) 可移植性强
4.Oracle 默认用户 :sys 、 system 、 scott 其中 sys 用户是系统的最高管理员,其拥有系统级的所有数据字典和视图
system 是 sys 用户的代理, scott 用户是一个示范用户 , 拥有最低的权限 .
5.Oracle 的服务 :
1) 实例服务 :OracleServiceSID 2) 监听服务 :OracleOraHome92TNSListener
3)Web 服务 : OracleOraHome92HTTPServer
6.Oracle 中的数据库 ( 实例 ) ,包含若干个表空间,一个表空间又包含若干个数据表。一个表空间由一个或多个数据文件组成。一个数据文件只能归属于一个表空间。
1) 表空间的创建语法 :
create tablespace xxx datafile 'c:/oracle/oradata/ORA/xxx.dbf' size 10m autoextend on next 1m;
2) 用户的创建语法 :
create user accp identified by accpxxx default tablespace xxx;
3) 给用户授权 / 回收权限 :
grant connect to accp; -- revoke connect from accp; -- grant unlimited tablespace to accp;
4) 用户登录的语法 :
conn scott/tiger; conn scott/tiger@ABC; conn system/manager@ABC as sysdba;
7.Oracle 网络的配置 :
服务器 : 监听服务 客户端 : Net 服务名
== 第二章 : SQL
1.Oracle 数据类型 : 1) 字符 2) 数字 3) 日期 4) 二进制 5)LOB
2.Oracle 中的伪列 :
1)ROWID: 描述了记录在 Oracle 数据表中的唯一标识
应用例子:去除表中的重复记录 :delete 表 where rowid not in (select max(rowid) from 表 group by 字段 )
2)ROWNUM: 描述了记录在结果集中的序号
应用例子 : Oracle 分页 ( 每页显示 5 条记录,需显示第三页 )
select * from 表 where rownum <= 3*5
minus
select * from 表 where rownum <= 2*5
3.SQL 命令分类 :
1)DDL( 数据定义语言 ): create alter drop truncate
2)DML( 数据操纵语言 ): insert delete update select
3)TCL( 事务控制语言 ): commit rollback savepoint rollback to savepoint 事务点
4)DCL( 数据控制语言 ): grant revoke
4.SQL 运算符
1) 算术 : + - * / 例 : select 10+5 from dual;
2) 比较 : > >= < <= != = between .. and like in
3) 逻辑 : and or not
4) 连接 : || 例 : select 'accp'||'aptech' as x from dual;
5) 集合 :
a. 并集 : union( 去除重复 ) / nuion all( 不去除重复 )
b. 交集 : intersect( 取相交部门 )
c. 差集 : minus( 取相减后的部门 )
5.SQL 函数 :
1) 单行函数 : 日期函数 + 数学函数 + 字符函数 + 转换函数 + 其他函数
2) 聚合函数 : 3) 分析函数 :
注意 : 自己多多练习以下函数 :
decode() nvl() length() substr() to_date() to_char() to_number()
== 第三章 : Oracle 数据库对象
1. 同义词 (synonym): 一个现有对象的别名
1) 私有同义词 :
一个用户创建,归属当前用户所有 ; 必须得到 create synonym 系统权限才能创建 ; 创建语法 :create synonym syn_x for 对象 ;
2) 公共同义语 :
必须得到 create public synonym 系统权限才能创建 ; 一个用户创建,但不属于当前用户所有,归系统所有 ; 创建语法 :create public synonym syn_px for 对象 ;
2. 序列 (sequence): 一个用于产生连续数字且唯一的对象
1) 创建语法 :
create sequence seq_x [start with n] [increament by n] ...;
2) 属性 ( 伪列 ):
nextval: 产生下一个新序号 ( 序列对象创建后第一次访问只能访问当前属性 )
currval: 返回当前序号值
例 : insert into tbx values(seq_x.nextval, 'accp','xxxx');
3. 视图 (view):
1) 创建语法 : create view vw_x as select * from tbx
[with check option] -- 约束了视图中的数据的更新条件 [with read only]; -- 只读视图
2) 删除视图 : drop view vw_x;
4. 索引 (index): 一种为提高检索速度的 Oracle 对象
1) 索引分类及创建语法 :
a. 唯一索引 : create unique index ind_x on 表 ( 字段 );
b. 组合索引 : create index ind_xx on 表 ( 字段 , 字段 );
c. 反向索引 : create index ind_x on 表 ( 字段 ) reverse;
d. 位图索引 : create bitmap index ind_x on 表 ( 字段 );
e. 函数索引 : create index ind_x on 表 ( 函数 ( 字段 ));
2) 删除索引 : drop index ind_x;
== 第四章 : PL/SQL 基础
1.PL/SQL: 1)PL/SQL 是过程语言 (Procedural Language) 与结构化查询语言 (SQL) 结合而成的编程语言
2) 用于创建存储过程、触发器和程序包,给 SQL 语句的执行添加程序逻辑
3) 优点 :
a. 支持面向对象编程 (OOP); b. 可移植性强 , 安全性高 ; c. 与 SQL 紧密集成 , 简化数据处理 ;
2.PL/SQL 程序块创建语法 :
DECLARE
声明部分
BEGIN
执行部分
[EXCEPTION
异常处理部分 ]
END;
3.PL/SQL 数据类型 :
数字 - 字符 - 日期 - 布尔 -LOB- 属性
%TYPE: 标识表的一个字段类型 例 : var v_code emp.empno%type;
%ROWTYPE: 标识表的一条记录类型 例 : var v_emp emp%rowtype;
4.PL/SQL 控制语句 :
条件 : if case
循环 : loop while for
5. 动态 SQL:
execute immediate 'create table tbx(a number, b varchar2(20))';
execute immediate 'update tbx set b=xxx where a=1';
6. 异常处理 : ...
== 第五章 : 游标管理
1. 游标分类 :
1) 隐式游标 : update tbx set b='xxx' where a=1; --Oracle 自动创建和维护
2) 显式游标 : 声明 + 打开 + 提取 + 关闭
3) 参照游标 : 声明游标类型 + 声明游标变量 + 打开 + 提取 + 关闭
2. 显式游标 :
1) 无参游 : 2) 带参游 :3) 显式游标应用 : a. 游标 FOR 循环 : 游标操作的一种简便应用 b. 利用游标更新 : (* 考点 )
== 第六章 : 子程序 & 程序包
1. 子程序 : 一种命名的 PL/SQL 程序块 , 包含存储过程与函数
2. 子程序的优点 : 模块化 / 可重用性 / 可维护性 / 安全性
3. 存储过程 :
1) 创建语法 :
create or replace procedure pro_x
as 本地变量
begin 执行语句块 ... end;
2) 参数的三种模式 :
in + out + in out
3) 执行存储程序 :
SQL>execute 存储过程名 ( 参数 );
4. 函数 :
1) 创建语法 :
create or replace function fun_x return 类型
as 本地变量
begin 执行语句块 ... return 返回值 ; end;
2) 参数的三种模式 : in + out + in out
3) 函数调用 : SELECT 函数名 ( 参数 ) FROM DUAL;
5. 程序包 : 程序包由包规范和包主体两部分组成