目录
-
存储过程中的关键语法
1、声明语句结束符,可以自定义:
DELIMITER $$
或
DELIMITER //
2、声明存储过程:
CREATE PROCEDURE pro_name(IN p_name int)
3、存储过程开始和结束符号:
BEGIN
....
END
4、变量定义:
DECLARE age int default 1;
5、变量赋值:
SET @temp = 10 ;
6、创建存储过程:
CREATE PROCEDURE 存储过程名(参数)
-- 例子:
CREATE PROCEDURE p_people(in age int(10),in name varchar(10),out result int)
- 参数类型说明:
①、IN 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)
②、OUT 输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
③、INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)
7、创建存储函数:
CREATE FUNCTION 存储函数名(参数)
8、删除存储过程、函数
DROP {PROCEDURE | FUNCTION} [IF EXISTS] 过程或函数名称
-- 例子:
DROP PROCEDURE IF EXISTS p_people;
9、调用存储过程
CALL procedure_name (param1, param2, ....)
-- 例子:
CALL p_people(10 , 'Dina', @result);
-
存储过程的运用小实例
1、存储过程的定义:
DELIMITER $$
DROP PROCEDURE IF EXISTS p_people;
CREATE PROCEDURE p_people ( IN age INT ( 5 ), OUT result VARCHAR ( 100 ), INOUT name VARCHAR ( 100 ) )
BEGIN
IF age > 16 THEN
SET result = concat( age, '岁,已经成年啦!' );
ELSE
SET result = concat( age, '岁,还没成年喔!' );
END IF;
SET NAME = concat( name, result );
END $$
2、存储过程的调用:
SET @result = '',@name = 'Dina';
CALL p_people ( 10, @result, @name );
SELECT @result, @name;
3、调用的结果:
若想了解存储过程中的控制语句,可点击此处去了解
希望对你有帮助,文章若有错误,望指出来,谢谢!!!
参考资料:MySQL 存储过程 | 菜鸟教程