call 存储过程时必须声明表示符_mysql数据库中的存储过程以及常用随机值的脚本运用...

5b68287713d17d877ac3fea2b08b48dd.png

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

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

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

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

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

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

8e51d8afc7e32444568d980b90b9b0bd.png

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

4dd5a84d1f2097fb3c6130c46c6311b5.png

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

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

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

22e491c174bc086ac55e953849a2c83b.png

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

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

6d2121261cc38de0b5cad4348f893e97.png

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

c136fa7106c74df805be4cfdddf4d987.png

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

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

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

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

1599fd459c0e963a55460655c0ad59f0.png

写一个简单的脚本:

5cd11800ec1d8cf51b70a8349291a7f1.png

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

71b7f94fccf44aa15c0cb8fd20f8f58d.png

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

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

while的基本语法结构是:

5e43607c2b5ca257e1372cc0d595c758.png

我们来写个简单的例子

997e4d5b05cd0e0906235a17fd7fb6fd.png

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

ad14147e530eb3a0e9bb5e05364194eb.png

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

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

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

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

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

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

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

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

现在实现姓的随机:

d25ed6cb56952bc20b671b1ae998f214.png

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

相同的操作再来一遍:

ac06c81481d7af1ec4c8c77c587f60c8.png

现在我们有了随机的名。

最后拼接一下:

7667006d18c22ec9c1fd2d0117e96324.png

随机的名字出现了!

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

2697da297de1877a862764f62fdb5cf5.png

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

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

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

fcc010a34167b37b81583b892252b20c.png

96f90e68bd12cd65b659f0ae624484e9.png

d1de209470a2c76649032b45d720f8a3.png

看下效果:

eaa35cd740bbdaf47b2a361c3dd588c7.png

搞定!!!

学会了吗?

小z老师讲测试

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值