今天利用闲暇时间想学习一些sql 的优化方法,我老早就讲 表都建好了,但是数据是一个问题呀。我需要大量的数据,我想到了可以通过硬编码的格式进行插入,但是我又不想写代码。我就想到另一个方案:存储过程和函数
由于以前我也很少写这些东西,今天我就认证的研究一下存储过程和函数的神奇地方。 吐槽完了!我们开始上枪开干....
【备注:首先检查下我们的数据库是否支持函数】
若是你的不支持可以执行
set global log_bin_trust_function_creators=1;
一。首先创建三张表
学生表 student
科目表 course
学生成绩表 sc
这里我就不展示了
二。编写函数
(1).编写一个随机生成字符串的函数:
delimiter $$ create function rand_string(n int) returns varchar(255) begin declare chars_str varchar(100) default 'qwertyuiopasdfghjklzxcvbnm'; 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 $$
(2.)随机生成编号的函数
delimiter $$ create function rand_num() returns int(5) begin declare i int default 0; set i=floor(rand()*10); return i; end $$</