龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > MySQL 技术 >

MySQL数据库新特性之存储过程入门教程(1)(2)

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
5 存储过程的参数 下面来学习下存储过程中的参数,先看下存储过程中的参数形式,如下: CREATE PROCEDURE proc1() -----这个存储过程中是空的参数列表 CREATE

5 存储过程的参数

下面来学习下存储过程中的参数,先看下存储过程中的参数形式,如下:

  1. CREATE PROCEDURE proc1 ()-----这个存储过程中是空的参数列表  
  2.  
  3. CREATE PROCEDURE proc1 (IN varname DATA-TYPE)-----这个存储过程中有一个输出参数,名称为varname,后面是跟数据类型DATA-TYPE,IN参数是默认的,因此可以省略不写  
  4.  
  5. CREATE PROCEDURE proc1 (OUT varname DATA-TYPE)-----这个存储过程中varname为输出参数  
  6.  
  7. CREATE PROCEDURE proc1 (INOUT varname DATA-TYPE)-----这个存储过程中,varname既是输入参数也是输出参数 

下面具体看个例子,首先是IN输入参数的例子,如下:

  1. DELIMITER //  
  2. CREATE PROCEDURE `proc_IN` (IN var1 INT)  
  3. BEGIN 
  4. SELECT var1 + 2 AS result;  
  5. END// 

输出OUT参数例子如下:

  1. DELIMITER //  
  2. CREATE PROCEDURE `proc_OUT` (OUT var1 VARCHAR(100))  
  3. BEGIN 
  4. SET var1 = 'This is a test';  
  5. END // 

IN-OUT的例子:

  1. DELIMITER //  
  2. CREATE PROCEDURE `proc_INOUT` (OUT var1 INT)  
  3. BEGIN 
  4. SET var1 = var1 * 2;  
  5. END // 

6 如何定义变量

下面讲解下MYSQL 5存储过程中,如何定义变量。

必须显式地在存储过程的一开始声明变量,并指出它们的数据类型,一但声明了变量后,就可以在存储过程中使用,定义变量的语法如下:

  1. DECLARE varname DATA-TYPE DEFAULT defaultvalue 

举例说明:

  1. DECLARE a, b INT DEFAULT 5;  
  2. DECLARE str VARCHAR(50);  
  3. DECLARE today TIMESTAMP DEFAULT CURRENT_DATE;  
  4. DECLARE v1, v2, v3 TINYINT; 

一旦定义好变量,就可以在存储过程中对其进行赋初值,并进行各类相关的操作,比如:

  1. DELIMITER //  
  2. CREATE PROCEDURE `var_proc` (IN paramstr VARCHAR(20))  
  3. BEGIN 
  4. DECLARE a, b INT DEFAULT 5;  
  5. DECLARE str VARCHAR(50);  
  6. DECLARE today TIMESTAMP DEFAULT CURRENT_DATE;  
  7. DECLARE v1, v2, v3 TINYINT;  
  8. INSERT INTO table1 VALUES (a);  
  9. SET str = 'I am a string';  
  10. SELECT CONCAT(str,paramstr), today FROM table2 WHERE b>=5;  
  11. END // 


精彩图集

赞助商链接