使用 MySQL 写了一个简单存储过程

2016-09-29  本文已影响0人  秋名山菜车手

昨天晚上,受朋友之托解决一个 sql 问题。
然而。。。虽然是科班出身,对于 mysql 用的并不多。
问题倒是不难,由于对环境不够熟悉,花去了我一点时间。
如何在一个字段中插入100个 0-10 的随机数?


一、 Ubuntu 环境

昨天晚上回家没带 win7,win10环境有点麻烦,就开了 ubuntu。
没想到被 mysql 的用户名密码给折腾了一下。
控制台输入 mysql -uroot -p,提示输入密码,然后怎么都输不对。
懵逼几秒中...


好吧,马上来解决这个问题。

问题:Ubuntu 系统忘记了 mysql 的用户名密码怎么进入?

解答:让我们来谷度一下。

二、 Window7 环境

为什么又切换环境了呢?昨晚太困睡着了,没解决完问题。
早上一上班赶紧来弄。
好的,现在 Windows 有图了!

废话少说,先进数据库 mysql -uroot -p

三、 命令行的 mysql 咋用?

既然生疏了,重新用用就好了嘛。
朋友让表名写 ceshibiao,字段名写 time

提醒一下,以下的 sql 语句都要记得加分号,否则会错哦,特殊的我会说。

  1. 切换数据库
  1. 先来建个表(至于英文还是拼音的名称就不要在意了)
建表过程

这样,mysql 基本的命令行使用就了解了。

四、存储过程咋写?

我写完以后的长这样:

简单的存储过程实现
  1. 先来解释一下这个 delimiter
- 这个词其实是 `分隔符` 的意思,mysql 中默认为分号,分号结尾,回车后自动执行。
- 如果写一句加一个分号立即执行了,那就没法写存储过程啊。
- 所以,`mysql>delimiter //` 这句表示,将`;`转换为`//`,只有收到 `//` 这个符号时,才认为指令结束。
- 这样,我们在存储过程内部就可以尽情地使用分号啦!
  1. 然后解释下取随机数的式子 ceiling(rand()*10))
- `ceiling` 和 `floor` 对应,前者表示向上取整(天花板嘛),后者表示向下取整(地板咯)。
- `rand()` 函数表示在 0 和 1 之间产生一个随机数。
- 所以,这个表达式的意思是,在 1-10 之间产生随机数。
  1. 至于数据库基本的 CURD 操作,这里就不用介绍了吧:)

五、 看一下运行结果

调用存储过程,直接 call 名称

调用存储过程

小功告成!

上一篇下一篇

猜你喜欢

热点阅读