当前位置: 首页 > 图文教程 > 数据库 > MSSQL > MySQL 5.0新特性教程 存储过程:第一讲

MSSQL
实现按部门月卡余额总额分组统计的SQL查询代码
浅议Oracle中的进制转换
sqlserver MSDTC的设置要点
小议主子表INT自增主键插入记录的方法
使用SQLSERVER的扩展存储过程实现远程备份与恢复
SQL安装问题总结
使用XML封装数据库操作语句的实现
SQL Server与Excel数据互导
查询sql遇到deadlock问题的解决
解决sqlsever日志备份错误的方法
关于sql数据库维护失败的问题查找方法
跟日期有关的两条经典SQL语句
使用链接服务器执行远程数据库上的存储过程
select用存储过程返回的表
SQL SERVER与ACCESS、EXCEL的数据转换
榨干MS SQL Server 最后一滴血
SQL Server 2005: 利用新的ranking函数实现高效的数据分页操作
在SQL Server 中使用SQLDMO
SQL Server补丁版本的检查和安装过程中常见问题
SQL高手篇:精妙SQL语句介绍

MSSQL 中的 MySQL 5.0新特性教程 存储过程:第一讲


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 80 ::
收藏到网摘: n/a

【导读】MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的。简单的来说是介绍了“存储过程、触发器、视图、信息架构视图”.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客户端程序中(如果你现在所读的不是电子版的,可以在mysql.com网站下载相关脚本)所以的例子都已经在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赋值*/ELSESET variable1