PL/SQL培训教程
文档作者: 创建日期: 确认日期: 控制编码: 当前版本:
1.0
Company Confidential - For internal use only
1
目录
UNIT1 SQL、PL/SQL概要 ................................................................................................................................................. 1 单元培训目标 .................................................................................................................................................................... 1 LESSON 1 SQL、SQL*Plus和PL/SQL基本概念 ........................................................................................................... 1
UNIT2 数据查询 .................................................................................................................................................................. 3 单元培训目标 .................................................................................................................................................................... 3 LESSON 1简单的数据查询 .............................................................................................................................................. 3
基本结构: ......................................................................................................................................................................................... 3 算术表达式: ..................................................................................................................................................................................... 3 字符串处理 ......................................................................................................................................................................................... 4 空处理 ................................................................................................................................................................................................. 4 消除重复行: ..................................................................................................................................................................................... 4 显示表结构: ..................................................................................................................................................................................... 4
目录 ........................................................................................................................................................................................ 2
LESSON 2 SQL*Plus的使用 ............................................................................................................................................. 5
SQL*Plus的使用: ............................................................................................................................................................................ 5 数据控制输出 ..................................................................................................................................................................................... 7 逻辑比较 ............................................................................................................................................................................................. 7
LESSON 3 单行函数的使用 .............................................................................................................................................. 8
字符函数 ............................................................................................................................................................................................. 8 数值函数 ............................................................................................................................................................................................. 8 日期函数 ............................................................................................................................................................................................. 9 转换函数 ............................................................................................................................................................................................. 9 单行函数使用的例子: ................................................................................................................................................................... 10
LESSON 4多表数据查询 ................................................................................................................................................ 11
连接 ................................................................................................................................................................................................... 11 表别名 ............................................................................................................................................................................................... 11 非等号连接 ....................................................................................................................................................................................... 11 外连接 ............................................................................................................................................................................................... 11 自连接 ............................................................................................................................................................................................... 12
LESSON 5组函数 ............................................................................................................................................................ 12
基本格式 ........................................................................................................................................................................................... 12 常用组函数 ....................................................................................................................................................................................... 13
LESSON 6 子查询 ............................................................................................................................................................ 14
格式 ................................................................................................................................................................................................... 14
UNIT3数据库 ...................................................................................................................................................................... 16 单元培训目标 .................................................................................................................................................................. 16 LESSON 1系统开发周期和数据关联 ............................................................................................................................. 16
系统开发周期 ................................................................................................................................................................................... 16 数据关联 ........................................................................................................................................................................................... 17 约束 ................................................................................................................................................................................................... 17
LESSON 2创建表、序列、视图和索引 ....................................................................................................................... 17
创建表格式 ....................................................................................................................................................................................... 18 创建序列格式 ................................................................................................................................................................................... 19 创建视图 ........................................................................................................................................................................................... 20 创建索引 ........................................................................................................................................................................................... 20
LESSON 3Oracle数据字典 ............................................................................................................................................. 21
Oracle数据字典的四大类视图: .................................................................................................................................................... 21 其他视图: ....................................................................................................................................................................................... 21 常用视图 ........................................................................................................................................................................................... 21
LESSON 4用户访问控制: ............................................................................................................................................ 22
系统权限: ....................................................................................................................................................................................... 22
Company Confidential - For internal use only
2
对象权限: ....................................................................................................................................................................................... 23 权限的回收: ................................................................................................................................................................................... 24 创建同义词: ................................................................................................................................................................................... 24 远程数据库的访问: ....................................................................................................................................................................... 24
UNIT4 PL/SQL ..................................................................................................................................................................... 26 单元培训目标 .................................................................................................................................................................. 26 LESSON 1简单PL/SQL .................................................................................................................................................. 26
PL/SQL结构 ..................................................................................................................................................................................... 26 匿名块,过程和函数 ....................................................................................................................................................................... 27 包 ....................................................................................................................................................................................................... 27 触发器 ............................................................................................................................................................................................... 29 PL/SQL环境 ..................................................................................................................................................................................... 30 Oracle Procedure Builder的使用...................................................................................................................................................... 31 程序中的参数和变量类型 ............................................................................................................................................................... 32
LESSON 2数据获取和游标 ........................................................................................................................................... 35
数据获取 ........................................................................................................................................................................................... 35 游标 ................................................................................................................................................................................................... 36
LESSON 3PL/SQL控制流.............................................................................................................................................. 37
IF 语句 .............................................................................................................................................................................................. 37 LOOP 语句 ....................................................................................................................................................................................... 38
LESSON 4出错处理 ....................................................................................................................................................... 39
Exception 类型 .................................................................................................................................................................................. 39 Exception 处理 .................................................................................................................................................................................. 39 非预定义的Oracle 数据库例外 ....................................................................................................................................................... 40 用户自定义的例外: ....................................................................................................................................................................... 41
附录A: ................................................................................................................................................................................. 42 数据结构: ...................................................................................................................................................................... 42 描述: .............................................................................................................................................................................. 42
Company Confidential - For internal use only
3
UNIT1 SQL、PL/SQL概要
单元培训目标
?
了解SQL、PL/SQL的基本概念、功能 了解Oracle 产品集和关联 了解SQL、PL/SQL的基本命令
?
?
LESSON 1 SQL、SQL*Plus和PL/SQL基本概念
本节主要讲述SQL、PL/SQL和SQL*Plus的基本概念,以及Oracle产品集之间的关联。
SQL、SQL*Plus和PL/SQL是用来检索和维护存储在Oracle数据库上数据的工具或语言。
?
Oracle是一个对象— 关系型数据库管理系统(ORDBMS),它扩展了普通关系型数据库管理方式,支持面向对象的概念,以表的形式存储信息,维护数据的输入、数据的存储和数据查询并处理及对数据的三种基本操作:采集、存储、检索。
SQL: 结构化查询语言(Structured Query Language),用来与Oracle数据库服务器进行交互。
例:select name, salary from t_emp select sysdate from dual
?
?
PL/SQL: Oracle扩展的SQL语言,具有完整的流程控制定义。
SQL*Plus: Oracle常用的工具,用来识别SQL语言和编写、执行PL/SQL代码,它与Oracle数据库管理系统紧密结合。 SQL*Plus环境登录: (1) windows环境
?
?
(2) 命令行环境
1
Company Confidential - For internal use only
如下格式:
Sqlplus [username [/password username password @database
数据库用户名
数据库的密码,此时是可见的 要登录的数据库名
[@database]]] 一旦成功登录,系统提示如下: SQL>
?
SQL常用命令:
分类 数据检索 数据维护(DML) 数据定义(DDL) 事务处理控制 数据控制(DCL)
?
命令 Select insert、update、delete create、drop、alert、rename、truncate commit、rollback、savepoint Grant、revoke
数据、操作系统、Oracle数据库管理器、SQL和PL/SQL及工具之间的关系 在Oracle的产品中有如下的关系:以数据为核心,Oracle Server 结合操作系统进行数据传递和通信,外围有SQL*Plus等工具提供给用户,通过SQL、PL/SQL与Oracle Server交互。 (如下图:)
数据操作系统?
操作系统Oracle 8Oracle 8PL/SQLSQL、PL/SQLSQL、工具工具应用产品应用 ?
代码、缩写和命名标准:由于SQL与自然语的相似性,同时为提高代码的可读
性,对于检索语句、表列命名和程序代码应采用标准规则,表名和列名既要反映数据的实际意义,又要考虑简洁性、完整性。Oracle允许使用最多30个字符命名表和列,为建立完整的、含义明确的、描述性的名称提供了足够的空间。对于程序代码,更要讲究规范性,如变量、函数名等等,要含义明确,提高程序的可读性。
2
Company Confidential - For internal use only