MySql函数和存储过程

MySql函数和存储过程

MySql函数:

创建语法:

CREATE FUNCTION func_name([func_parameter])

RETURNS TYPE

[characteristics  ...  ]  

routine_body

  • CREATE  FUNCTION  为创建存储函数的关键字;
  • func_name  表示存储函数的名称;
  • func_parameter  为存储函数的参数列表,参数列表的形式如下:
  • [  IN   |    OUT   |   INOUT ]  param_name   type
  • 其中,IN 表示输入参数;  OUT 表示输出参数; INOUT  表示既可以输入也可以输出参数; 
  • param_name 表示参数名称; type 表示参数的类型,该类型可以是MySQL数据库中的任意类型。
  • RETURNS type  语句表示函数返同数据的类型;
  • characteristic  指定存储函数的特性,取值与创建存储过程时相同。

eg:生成随机数字,返回最大为501的随机数:

CREATE FUNCTION rand_num() 
RETURNS int(5)
BEGIN
	DECLARE i INT DEFAULT 0;
	SET i = FLOOR(1+RAND()*500);
	RETURN i;
END

eg:生成随机字符串函数:

#该函数(rand_string)会返回n长的一个字符串

create function rand_string(n INT) 

returns varchar(255) 

begin 

        #chars_str定义一个变量chars_str,类型是varchar(100),默认值'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
 
	declare chars_str varchar(100) default
   
	'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
 
	declare return_str varchar(255) default '';
 
	declare i int default 0;
 
	while i< n do 
   
		set return_str =concat(return_str,substring(chars_str,floor(1+rand()*52),1));
   
		set i = i + 1;
   
	end while;
  
	return return_str;
  
end 

MySql存储过程:

创建语法:

CREATE PROCEDURE sp_name ([ proc_parameter ])

[ characteristics..]

routine_body 

具体含义可参照上面MySql函数

eg:插入数据

create PROCEDURE insert_emp(in start INT(10),in max_num INT(10))
BEGIN
DECLARE i INT(10) DEFAULT start;
REPEAT
	set i=i+1;
	INSERT INTO test(num,str) VALUES(rand_num(),rand_string(5));
UNTIL i=max_num
END REPEAT;
END



#存储过程调用,插入随机数据100条
call insert_emp(1,100);


 

 


 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值