第一章 Oracle入门 *1.Oracle的物理结构 1.1 内存(SGA,PGA) 1.2 进程(用户进程,服务器进程,后台进程) 2.Oracle的逻辑结构 2.1 表空间-->段-->区-->数据块 *3.表空间创建与管理 3.1 表空间的创建 语法: create tablespace 表空间的名称 datafile 表空间物理的路径 size 文件的初始化大小 autoextend on|off; 3.2 管理表空间 ----修改表空间文件的大小 alter database datafile 表空间的文件路径 resize 大小; ----设置表空间文件的自动扩展 alter database datafile 文件的路径 autoextend on next 5m maxsize 100m ----修改表空间的名称 alter tablespace 表空间名称 rename 表空间新名称 *4.用户与权限 4.1 新创建用户 语法: create user 用户名 identified by 密码 default tablespace 表空间 4.2 管理用户 ---修改用户密码 alter user 用户名 identified by 新密码 ---锁定用户 alter user 用户 account lock; alter user 用户 account unlock; 4.3 权限 grant 角色 to 用户 revoke 角色 from 用户
第二章 SQL查询与函数 *1.数据类型 1.1 数字型---NUMBER(<P>,<s>) 1.2 字符类型- char varchar varchar2 nchar nvarchar2 1.3 日期类型 date 1.4 Null类型 注意:null+数字=null 1.5 特殊类型 rowid 2.SQL符号 ---注意 == % 3.操作语言 数据库定义语言 DDL create drop alter 数据操作语言 DML insert update delete select 数据控制语言: DCL grant revoke 事务控制语言:TCL commit rollback savepoint 4.集合运算 并集 union [all] 交集 intersect 剪集minus 5.伪表 和 伪列 dual rowid rownum *5.函数 6.1 字符函数 to_char 6.2 日期函数 to_date 6.3 算术函数 mod 6.4 排序函数 row_number() over() rank() dense_rank() 第三章 分区表与锁 *1.分区表的分类:范围分区 列表分区 散列分区 复合分区 2.分区表的使用 2.1 范围分区 语法: create table table_name ( ...... ) partition by range(列名) ( partition p1 values less than(1001), partition p2 values less than(2001), partition p3 values less than (maxvalue) ) 2.2 列表分区 create table table_name ( ....... ) partition by list(列名) ( partition p1 values ('wuhan','shanghai') tablespace 表标间名称, partition p2 values (default) ) 2.3 散列分区 create table table_name ( ..... ) partition by hash(列名) partitions 4; 或者 create table table_name ( ..... ) partition by hash(列名) ( partition p1, partition p2 )
3.锁 锁定数据
第四章 数据对象 1.数据对象:同义词 序列 试图 索引 *2.同义词管理 2.1 创建同义词 语法: 私有同义词: create synonym s_name for 对象 注意:创建同义词的用户一定有使用对象的权限 公有同义词: create public synonym s_name for 对象 删除同义词: drop synonym s_name *3.序列管理 3.1 创建序列 语法: create sequence s_name [start with ] [increment by ] [minvalue] [maxvlaue] [nocycle|cycle] [cache 10|nocache] *4.试图管理 4.1 试图创建 create [or replace] view v_name as 查询语句 4.2 通过试图操作数据 键保留表:在创建试图中依然是主键 的表 注意:利用试图操作不能操作非键保留表的字段 5.索引
第五章 PL/SQL 1.SQL的数据类型在PL/SQL全部支持,在PL/SQL 支持DML TCL 但不支持DDL *2.PL/SQL 特殊类型 %type %rowtype *3.PL/SQL 结构 语法: declare begin excpetion end; *4.控制 4.1 条件控制 语法: if then end if; if then 条件为 真的执行语句 else 条件为假执行语句 end if; if then elsif then else end if; case: case 表达式 when 常量 then ...... else ........ end case; case when 条件表达式 then 执行语句 else end case; 4.2 循环控制 语法: loop exit when 循环退出条件 。。。。。 end loop; for 变量(不需要声明) in 起始值 ..结束值 loop end loop; while 条件表达式 loop end loop;
4.3 goto控制 *5. 动态SQL 执行动态SQL execute immediate SQL字符串 带参数 execute immediate SQL字符串 using 参数 6.异常 6.1 异常分类:内部异常 和 自定义异常 内部异常:预定义异常(编号和名称) 和 非预定义异常(只有编号没有名称) 6.2 使用异常: declare begin exception when 异常名称 then 处理异常语句 end ; declare ---把没有编号异常跟自定义名称关联起来 myerror exception; pragma exception_init(myerror,-1); begin exception when myerror then 处理异常 end;
raise_appliction_error(-20001,'异常说明');
第六章 游标 1.理解游标原理:每一次处理一行数据 2.游标分类:静态游标(隐式游标 显示游标) 引用游标(弱类型游标 强类型游标) 显示游标:普通游标 带参数游标 循环游标 游标功能:可以利用游标操作数据 游标4个属性:isopen found notfound rowcount 使用游标4个步骤:定义游标 打开游标 读取数据 关闭游标 3.隐式游标--当执行DML语句 SQL%属性 *4.游标使用 4.1 普通游标 语法: declare cursor 游标名称 is 查询语句 begin open 游标名称 fetch 游标 into 变量(列与在定义游标查询语句的列一定对应) 循环读取.... close 游标名称 end; 4.2 带参数游标 语法: declare cursor 游标名称(参数) is 查询语句; begin open 游标名称(实参) ....... end; 4.3 循环游标 语法: declare ..... begin for 变量(不需要声明) in 游标名称 loop end loop; end; 4.4 利用游标操作数据 语法: declare cursor 游标 is 查询语句 for update; begin .... 操作语句 where current of 游标 end; 4.5 弱类型引用游标 引用游标的使用必须先定义游标类型 语法: declare --先定义游标类型 type 游标类型名称 is ref cursor; --定义游标 begin --打开游标 open 游标名称 for 查询语句 ..... end;
4.6 强类型引用游标 引用游标的使用必须先定义游标类型 语法: declare --先定义游标类型 type 游标类型名称 is ref cursor return 游标类型(确定游标操作列); --定义游标 begin --打开游标 open 游标名称 for 查询语句 ..... end;
第七章 子程序和程序包 *1.子程序包括:存储过程 和 函数 *2.存储过程管理 2.1 创建过程 语法: create [or replace] procedure p_name(参数 in out inout) is|as [本地变量声明] begin 过程执行语句 end [p_name] 2.2 删除过程 drop procedure p_name 2.3 调用 call ---如果有带输出的参数时候,不能使用 execute --只有在命令窗口中使用 pl/sql块 *3.函数管理 3.1 创建函数 语法: create [or replace] function f_name(参数 in) return 类型 is|as [本第变量声明] begin 函数执行语句 end; 3.2 调用 通过select 语句调用 PL/SQL块---必须定义接受函数返回值变量 3.3 函数与过程区别 如果处理业务一般使用过程,如果处理简单数据使用函数 过程是没有返回值,但函数一定有返回值 过程参数有in out inout 但函数只有in 调用方式 4.程序包 4.1 程序包:包说明部分(包头)和包体 4.2 包头创建 语法: create [or replace] package pkg_name is|as --没有begin关键字 变量(公有变量:包体中所有过程与函数都访问变量)或者函数或是过程声明部分 end; 4 .3 包体创建 语法: create[or replace] package body pkg_name(包头与包体的名称一定对应) is|as 函数与过程具体实现(一定实现所有在包头声明) end; 包重载:根据参数个数 参数的类型 参数次序
第八章 触发器与内置子程序 *1.触发器分类:数据库触发器 DML触发器 模式触发器 DML触发器:行级触发器(:new :old) 和 语句级触发器 *2.DML触发器管理 2.1 DML触发器创建 语法: create [or replace] trigger tri_name is|as before|after|instead of insert [or] update [or] delete on table or view [for each row] [when] [declare] 定义本地变量 begin end; 注意: 触发器中不能使用commit rollback 事务控制语句(TCL) instead of触发器 只能引用在试图上 3 内置子程序 dbms_out
第九章 数据维护 1.导入或导出数据 2.语法: 2.1 数据库(在DOS命令窗口中使用) --导出exp 管理员/密码@sid file=文件导出路径 full=y ---导入imp 管理员/密码@sid file=导入文件路径 full=y 2.2 根据用户或者模式 --导出: exp 管理员/密码@sid file=文件导出路径 owner=(用户,用户2..) ---导入:imp 管理员/密码@sid file=导入文件路径 fromuser=被导入用户 touser=导入到那个用户 2.3 根据表 exp 用户/密码@sid file=文件导出路径 tables=(table_name,...) imp 用户/密码@sid file=导入文件路径 tables=(table_name....)