引技术,占用空间明显减少
c) 即使在配置很低的终端硬件上也能获得显著的性能
(5)其他索引:
a) 组合索引:在表内多列上创建
b) 基于函数的索引:使用的函数或表达式正在建立索引中的表中的一列或多列则创建
5.分区表
i. Oracle允许用户把一个表中的所有行分为几个部分,并将这些部分存储在不同的位置。被分区的表称为分区表,分成的每个部分称为一个分区。
表分区优点:
》 改善表的查询性能
》 更容易管理
》 便于备份和分区
》 提高数据安全性
创建分区表条件
》 数据量大于2GB
》 已有的数据和新添加的数据有明显的界限划分。
分区表的分类:
1.范围分区:以列的值的范围作为分区的条件
2.间隔分区:范围分区的一种增强,可以实现范围分区的自动化
优点:在不需要创建表时就将所有分区划分清楚,随着数据的增加会划分出更多的分区,并自动创建新的分区。
表分区用于管理存储大表中的数据
?
总结:
一个数据库由一个或多个表空间组成,每个表空间中的数据保存在一个多个数据文件中,
分区方法包括:范围分区、散列分区、列表分区、复合分区、间隔分区和虚拟列分区。
?
03——PL/SQL编程
1.PL/SQL:结合了Oracle过程语言和结构化查询语言的一种扩展语言。
运算符和表达式:
常量和变量的声明
注释:-- 、/**/
PL/SQL是一种可移植的高性能事务处理语言
?
?
2.PL/SQL 数据类型
1. 标量数据类型:
a) CHAR:
i. Character:定长字符串 0~32767
ii. Nchar:民族语言字符集: 可选 默认1
b) VARCHAR2
i. Varchar String可变字符串 0~32767
ii. NVARCHAR2:民族语言字符集 0~32767
c) BINARY_INTEGER:带符号整数,为整数计算优化性能
d) NUMBER:
i. DEC:小数
ii. DOUBLE Precision:整数 子类型
iii. Integer:整数 子类型
iv. INT:与NUmber等价
v. NUMERIC:与NUmber等价
vi. REAL:整数 比Integer小
vii. Small int:
e) LONG:变长字符串
f) DATE:日期
g) BOOLEAN:布尔类型 TRUE FALSE NULL
2. LOB数据类型:用于存储大的数据对象的类型。Oracle主要支持BFILE、BLOB、CLOB、NCLOB类型
?
3. 属性类型
a) %Type:
b) %ROWTYPE:
?
3.PL/SQL控制语句
控制结构共有三种类型:
1.条件控制:
a)
2.循环控制:
3.顺序控制:
a) NULL语句:一个可执行语句
4.异常处理
在运行程序时出现的错误叫异常。
5.显式游标
游标可分为静态游标和动态游标
静态游标可分为:隐式、显式 和REF游标
a) 显式游标的使用步骤:
1. 声明游标
2. 打开游标
3. 提取游标
4. 关闭游标
显式游标属性:
》 %FOUND:只有在DML语句影响一行或多行时%FOUND属性才会返回true
》 %NOTFOUND:与%FOUND相反
》 %ROWCOUNT:返回DML语句影响的行数 无影响返回0
》 %ISOPRN:返回游标是否打开
6.存储过程
1.声明部分
a) 声明部分包括类型、游标、常量、变量、异常和嵌套子程序的声明
2.可执行部分
a) 赋值、控制执行过程以及操作Oracle数据的语句
3.异常处理部分:包括异常处理程序,负责处理执行存储过程中出现的异常
a) 模块化:通过子程序可以将程序分解为可管理的、明确的逻辑模块
b) 可重用性:子程序在创建并执行后,就可以在任意数目的应用程序中使用
c) 可维护性:子程序简化维护操作
d) 安全性:用户可以设置权限使得访问数据的唯一方式就是通过用户提供的存储过程和函数。
4.用法:
1. 创建存储过程
2. 调用存储过程
a) 用命令在SQL提示符下调用
1. 执行存储过程
a) 参数的传递方式:
i. 按位置传递
ii. 按名称传递
iii. 混合方式传递
b) 在PL/SQL块中调用
3. 存储过程的参数模式
4. 存储过程的访问权限
5. 删除存储过程
5.规范:
a) 存储过程中不可以直接使用DDL语句,可以通过动态SQL实现。
b) 必须有相应的出错处理功能
c) 存储过程中变量在引用表字段的时候,需使用%TYPE和%ROWTYPE类型
d) 必须在存储过程中做异常处理,并将异常信息通过OS_MSG变量输出
e) 必须包含两个参数:on_Flag (NUMBER)和 os_Msg(VarChar2)
f) -19999~ -1的异常为Oracle定义的异常代码
g) “WHEN OTHERS”必须放置在异常处理代码的最后面作为默认处理器处理没有显式处理的异常。