相关文章推荐
豪气的移动电源  ·  IDEA ...·  1 年前    · 
mysql数据库中的存储过程以及常用随机值的脚本运用

mysql数据库中的存储过程以及常用随机值的脚本运用

平时和数据打交道比较多的测试同学,可能会经常接触到数据库,增删改查是最基本的sql语句运用,但是遇到一些特殊场景的时候,需要同时对大批量数据进行操作,常备的基本句式可能就应付不过来了,例如你要准备5万条测试数据,难道要用insert into一行行新增吗;或者让你批量修改某张大表中的某一列数据呢?

这种时候我们往往需要借助存储过程。

存储过程,就是在数据库中编写的sql语句集合,只要编写一次就可以反复使用,学习过Python或者其它语言的同学,把它当成函数或者方法,可能会更加容易理解一点。

----------------------------------------

首先,我们来学习一下,存储过程的基本结构:

存储过程叫做procedure,我们使用create语句来创建,begin和end中间的部分,就是存储过程需要执行的语句。

test是这个存储过程的名字,括号里面可以写传入或者传出的参数,我们来写个简单的例子。

这个例子里面,添加了两行新内容,in a int,in b int ,表示可以接收用户传入的两个整型值,select a+b 表示将用户传入的两个值相加后输出打印。

调用刚刚写好的存储过程,我们使用call。

call后面加上存储过程的名字,括号中加上传入的参数值,数量和顺序要与定义的参数类型和数量一致。

----------------------------------------

除了可以在括号中定义参数,也可以在存储过程内部定义。

declare是声明变量的名字和类型,set给这个变量赋值,select将其值输出打印。

----------------------------------------

接下来可以讲讲最基本的两个控制语句了。

----------------------------------------

if 判断语句在存储过程中的基本结构是:

写一个简单的脚本:

脚本的意思是,让用户输入一个数,我在过程内定义一个数,然后比较两个数字的大小。

----------------------------------------

循环语句可选择的比较多,这里我们主要用while来尝试一下。

while的基本语法结构是:

我们来写个简单的例子

循环的打印1到10的数(一定要注意循环中是否有自增或者自减的存在):

----------------------------------------

现在我们来看看如何使用随机函数来制造随机的数字、随机的字符串和随机的日期。

随机函数在mysql中是rand(),这个函数随机的范围是0--1之间的小数。


★如果想要随机某个范围的整数,有个基本的数学公式:

floor(开始值+rand()*(结束值-开始值+1));

例如要随机50-100之间的整数,可以使用floor(50+rand()*(100-50+1));


★随机字符串需要将rand()随机,substr()字符串截取,concat()字符串拼接这几个函数结合起来运行

举个例子,加入现在想要随机一个姓名,可以简单的这么设计,随机一个姓,再随机一个名,然后拼起来。

现在实现姓的随机:

在百家姓中随机一个位置,然后截取一个长度的字符,这不就是随机一个姓氏吗。

相同的操作再来一遍:

现在我们有了随机的名。

最后拼接一下:

随机的名字出现了!

★随机的日期我们也可以实现一下:

看到这里的同学们,肯定觉得脚本已经渐渐疯狂......

还没有停止,我们把这些随机统统塞到一起去,实现往表中指定插入数据的效果。

现在有张空表,往里面插入100行测试数据:



看下效果:


搞定!!!

学会了吗?

小z老师讲测试

编辑于 2019-03-26 18:35