《MySQL存储过程》.pdf
文本预览下载声明
MySQL 5.0 新特性教程 存储过程
Introduction 简介
MySQL 5.0 新特性教程是为需要了解 5.0 版本新特性的 MySQL 老用户而写的。简单的来
说是介绍了“存储过程、触发器、视图、信息架构视图”。
希望这本书能像内行专家那样与您进行对话,用简单的问题、例子让你学到需要的知识。
为了达到这样的目的,我会从每一个细节开始慢慢的为大家建立概念,最后会给大家展示较
大的实用例,在学习之前也许大家会认为这个用例很难,但是只要跟着课程去学,相信很快
就能掌握。
Conventions and Styles 约定和编程风格
每次我想要演示实际代码时,我会对 mysql客户端的屏幕出现的代码进行调整,将字体
改成 Courier,使他们看起来与普通文本不一样。
在这里举个例子:mysql DROP FUNCTION f;Query OK, 0 rows affected (0.00 sec)
如果实例比较大,则需要在某些行和段落间加注释,同时我会用将“--”符号放在页
面的右边以表示强调。
例如:
mysql CREATE PROCEDURE p ()
- BEGIN
- /* This procedure does nothing */ --
- END;//Query OK, 0 rows affected (0.00 sec)
有时候我会将例子中的mysql和-这些系统显示去掉,你可以直接将代码复制到
mysql 客户端程序中(如果你现在所读的不是电子版的,可以在 网站下载相关脚
本)所以的例子都已经在 Suse 9.2 Linux、Mysql 5.0.3 公共版上测试通过。
在您阅读本书的时候,Mysql 已经有更高的版本,同时能支持更多 OS了,包括 Windows,
Sparc,HP-UX。因此这里的例子将能正常的运行在您的电脑上。但如果运行仍然出现故障,
可以咨询你认识的资深 Mysql 用户,以得到长久的支持和帮助。
A Definition and an Example 定义及实例
定义及实例存储过程是一种存储在书库中的程序(就像正规语言里的子程序一样),准
确的来说,MySQL 支持的“routines(例程)”有两种:一是我们说的存储过程,二是在其
他 SQL 语句中可以返回值的函数 (使用起来和 Mysql 预装载的函数一样,如 pi())。我在
本书里面会更经常使用存储过程,因为这是我们过去的习惯,相信大家也会接受。
一个存储过程包括名字,参数列表,以及可以包括很多 SQL 语句的 SQL 语句集。
在这里对局部变量,异常处理,循环控制和 IF 条件句有新的语法定义。
下面是一个包括存储过程的实例声明:(译注:为了方便阅读,此后的程序不添任何中
文注释)
CREATE PROCEDURE procedure1 /* name 存储过程名*/
(IN parameter1 INTEGER) /* parameters 参数*/
BEGIN /* start of block 语句块头*/
DECLARE variable1 CHAR(10); /* variables变量声明*/
IF parameter1 = 17 THEN /* start of IF IF 条件开始*/
SET variable1 = birds; /* assignment 赋值*/
ELSE
SET variable1 = beasts; /* assignment赋值*/
END IF; /* end of IF IF 结束*/
INSERT INTO table1 VALUES (variable1);/* statement SQL 语句*/
END /* end of block 语句块结束*/
下面我将会介绍你可以利用存储过程做的工作的所有细节。同时我们将介绍新的数据库
对象——触发器,因为触发器和存储过程的关联是必然的。
Why Stored Procedures 为什么要用存储过程
由于存储过程对于 MySQL 来说是新的功能,很自然的在使用时你需要更加注意。
毕竟,在此之前没有任何人使用过,也没有很多大量的有经验的用户来带你走他们走过
的
显示全部