MySQL数据库新特性之存储过程入门教程(1)(2)
5 存储过程的参数 下面来学习下存储过程中的参数,先看下存储过程中的参数形式,如下: CREATE PROCEDURE proc1() -----这个存储过程中是空的参数列表 CREATE
5 存储过程的参数
下面来学习下存储过程中的参数,先看下存储过程中的参数形式,如下:
- CREATE PROCEDURE proc1 ()-----这个存储过程中是空的参数列表
- CREATE PROCEDURE proc1 (IN varname DATA-TYPE)-----这个存储过程中有一个输出参数,名称为varname,后面是跟数据类型DATA-TYPE,IN参数是默认的,因此可以省略不写
- CREATE PROCEDURE proc1 (OUT varname DATA-TYPE)-----这个存储过程中varname为输出参数
- CREATE PROCEDURE proc1 (INOUT varname DATA-TYPE)-----这个存储过程中,varname既是输入参数也是输出参数
下面具体看个例子,首先是IN输入参数的例子,如下:
- DELIMITER //
- CREATE PROCEDURE `proc_IN` (IN var1 INT)
- BEGIN
- SELECT var1 + 2 AS result;
- END//
输出OUT参数例子如下:
- DELIMITER //
- CREATE PROCEDURE `proc_OUT` (OUT var1 VARCHAR(100))
- BEGIN
- SET var1 = 'This is a test';
- END //
IN-OUT的例子:
- DELIMITER //
- CREATE PROCEDURE `proc_INOUT` (OUT var1 INT)
- BEGIN
- SET var1 = var1 * 2;
- END //
6 如何定义变量
下面讲解下MYSQL 5存储过程中,如何定义变量。
必须显式地在存储过程的一开始声明变量,并指出它们的数据类型,一但声明了变量后,就可以在存储过程中使用,定义变量的语法如下:
- DECLARE varname DATA-TYPE DEFAULT defaultvalue
举例说明:
- DECLARE a, b INT DEFAULT 5;
- DECLARE str VARCHAR(50);
- DECLARE today TIMESTAMP DEFAULT CURRENT_DATE;
- DECLARE v1, v2, v3 TINYINT;
一旦定义好变量,就可以在存储过程中对其进行赋初值,并进行各类相关的操作,比如:
- DELIMITER //
- CREATE PROCEDURE `var_proc` (IN paramstr VARCHAR(20))
- BEGIN
- DECLARE a, b INT DEFAULT 5;
- DECLARE str VARCHAR(50);
- DECLARE today TIMESTAMP DEFAULT CURRENT_DATE;
- DECLARE v1, v2, v3 TINYINT;
- INSERT INTO table1 VALUES (a);
- SET str = 'I am a string';
- SELECT CONCAT(str,paramstr), today FROM table2 WHERE b>=5;
- END //
精彩图集
精彩文章






