当前位置: 首页 > news >正文

网站开发 网站设计一站式织梦网站模板

网站开发 网站设计,一站式织梦网站模板,做网站找众展,装修平面图用什么软件简单文章目录 概念循环语句while 循环语句repeat 循环语句loop 循环语句iterate 和 leave 语句 精选示例总结参考资料 概念 循环结构是编程中常见的控制结构,它允许我们重复执行一段代码,直到满足特定条件为止。 在 Mysql 中,常用来实现各种复杂…

文章目录

    • 概念
    • 循环语句
      • while 循环语句
      • repeat 循环语句
      • loop 循环语句
      • iterate 和 leave 语句
    • 精选示例
    • 总结
    • 参考资料

概念

循环结构是编程中常见的控制结构,它允许我们重复执行一段代码,直到满足特定条件为止。

在 Mysql 中,常用来实现各种复杂的逻辑操作和对满足条件的数据进行批量操作,提高数据处理的效率和灵活性,例如批量处理数据、生成序列号和数据动态透视等。

循环语句

while 循环语句

while 循环语句是 MySQL 中最基本的循环语句,它创建一个带条件判断的循环过程。while 在执行语句执行时,先对指定的表达式进行判断,如果为真,就执行循环内的语句,否则退出循环。

[while_label:] while 循环条件  do循环体end while [while_label];

while_label 为语句的标注名称,可以省略;循环体里面一般会写终止条件,否则无限死循环。

示例

drop procedure if exists update_salary_while;
create procedure update_salary_while(out num int)
begin# 声明变量和赋值declare avg_sal double ; -- 记录平均工资declare while_count int default 0; -- 记录循环次数select avg(salary) into avg_sal from employees; -- 赋值while avg_sal > 5000 doupdate employees set salary = salary * 0.9 ;set while_count = while_count + 1;select avg(salary) into avg_sal from employees;end while;set num = while_count;-- 给num赋值
end;call update_salary_while(@num); -- 调用
select @num;
select avg(salary) from employees;

repeat 循环语句

repeat 循环首先会执行一次循环,然后在 until 中进行表达式的判断,如果满足条件就退出,即 end repeat ;如果条件不满足,则会就继续执行循环,直到满足退出条件为止。

[repeat_label:] repeat循环体的语句until 结束循环的条件表达式end repeat [repeat_label];

repeat_label 为 repeat 语句的标注名称,该参数可以省略;repeat 语句内的语句或语句群被重复,直至 结束循环的条件表达式 为真。

示例

drop procedure if exists update_salary_repeat;
create procedure update_salary_repeat(out num int)
begin#声明变量declare avg_sal double ; -- 记录平均工资declare repeat_count int default 0; -- 记录循环次数select avg(salary) into avg_sal from employees;repeatupdate employees set salary = salary * 1.15;set repeat_count = repeat_count + 1;select avg(salary) into avg_sal from employees;until avg_sal >= 13000end repeat;set num = repeat_count;-- 给num赋值		
end;
call update_salary_repeat(@num);
select @num;
select avg(salary) from employees;

loop 循环语句

loop 循环语句用来重复执行某些语句。循环执行的语句一直重复执行直到循环被退出(使用 leave 子句),跳出循环过程。

[loop_label:] loop循环执行的语句end loop [loop_label];

loop_label 为 loop 的标注名称,可以省略;常常和 iterate 、 leave 语句配合使用。

示例

drop procedure if exists update_salary_repeat;
create procedure update_salary_loop(out num int)
begin#声明变量declare avg_sal double ; #记录员工的平均工资declare loop_count int default 0;#记录循环的次数select avg(salary) into avg_sal from employees;-- 初始化条件,获取员工的平均工资loop_lab:loop# 结束循环的条件if avg_sal >= 12000then leave loop_lab;end if;# 循环体:如果低于12000,更新员工的工资update employees set salary = salary * 1.1;# 迭代条件select avg(salary) into avg_sal from employees;-- 更新avg_sal变量的值set loop_count = loop_count + 1;-- 记录循环次数end loop loop_lab;set num = loop_count;-- 给num赋值
end;
call update_salary_loop(@num);
select @num;

iterate 和 leave 语句

iterate 语句表示重新开始循环,将执行顺序转到语句段开头处,可以理解为 Python 中的 continue 。

leave 语句表示跳出循环或者跳出程序体的操作,类似于 Python 中的 break 。

示例

drop procedure iterate_leave_test;
create procedure iterate_leave_test()
begindeclare num int default 0;loop_label:loop#赋值set num = num + 1;if num  < 10then iterate loop_label;-- 满足则跳出循环,重新开始循环elseif num > 15then leave loop_label;-- 满足则跳出并结束循环end if;insert into sql_test1.test(id, name, sale) values (num,'test',1);end loop;
end;
call iterate_leave_test(); -- 调用

精选示例

随机生成批量指定长度的密码。

drop procedure if exists generate_pwd;
create procedure generate_pwd(in len int, in cnt int)
begindeclare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789';declare return_str varchar(255) default '';truncate table sql_test1.pwd;set @j = 1;while @j <= cnt doset @i = 1;set @return_str = '';while @i <= len doset @return_str = concat(@return_str, substring(chars_str, floor(1 + rand() * 62), 1));set @i = @i + 1;end while;insert into sql_test1.pwd(id, pwd) values (@j, @return_str);set @j = @j + 1;end while;select * from sql_test1.pwd;
end;
call generate_pwd(30,10);
+------+--------------------------------+
| id   | pwd                            |
+------+--------------------------------+
|    1 | u5obsl9zdejker8zoppsfovz1xastz |
|    2 | hwcns3u97zqyr9ho0s85u8orelh3ze |
|    3 | 7uuxsmziu6rsbgmopwy9hr1ng5gtta |
|    4 | lnmnmvjto43vgnwrbszjjverot1vl3 |
|    5 | 2s7nslhysgxkyr8dviwllemnurhjrr |
|    6 | nfif1xzoaexojyjbflbo3habkipknr |
|    7 | xhoyvrzlteieculu9pzazf9osi2s5d |
|    8 | mrmajvvbkfeyzuqcab0jpwke6pawju |
|    9 | b2t4ncwab3ysqcc7zknox6h2vlnnqb |
|   10 | bzzow8gr4dmpgiqlri8l9yb5ibz8pb |
+------+--------------------------------+

使用了 while 嵌套,定义了两个输入参数,分别是秘密长度和生成的数量,我们只要确定这两个参数就可以得到想要的批量密码。随机生成批量密码有多种方法,如果想了解更多,可以查看 Mysql 生成批量随机密码 和 Mysql 自定义函数

总结

通过本文,我们了解了MySQL中的循环语句及其用法。使用循环或者嵌套循环能帮助我们处理各种复杂的数据操作和逻辑处理,当遇到需要重复执行的 sql 语句都可以写成循环,让程序自动跑,防止手动修改参数意外出错。

参考资料

  • MySQL官方文档
  • MySQL Tutorial Loop
  • Mysql 生成批量随机密码
  • Mysql 自定义函数
  • Mysql 存储过程
http://www.yayakq.cn/news/640230/

相关文章:

  • 手机怎么查看网站代码实现的榆林北京网站建设
  • 微网站栏目设置能够做外贸的网站有哪些问题
  • 做婚恋网站有哪些邯郸市建设局官方网站
  • 做电脑网站用什么软件网站在线优化
  • 网站培训培训班风铃制作
  • 企业网站托管服务公司一个服务器下怎么做两个网站吗
  • 网站的安全建设或者解决方案大门户wordpress主题门户新闻
  • 维修保养网站开发上google必须翻墙吗
  • 专业酒店建设信息网站wordpress 添加widget
  • 网站建设兼职薪酬怎么样成都宅天下装饰公司怎么样
  • 公职人员可以做网站吗梁山做网站价格
  • 买服务器做网站主机帮别人备案网站吗
  • 福州建设厅网站做ppt选小图案的网站
  • 优化网站的公司哪家好舟山城乡建设部网站首页
  • 建设网站ppt有做货 物的网站吗
  • 冬青街 做网站多用户开源系统哪个好
  • 小程序建站平台对战平台网站怎么建设
  • 专门做问卷的网站官方网站建设与维护好处
  • 如何做网站推广方式莱州建设局网站
  • 广东圆心科技网站开发需要多少钱数字化营销系统
  • wps的ppt做网站超链接江宁网站建设报价
  • 上海门户网站制电商入门基础知识
  • 万齐网站建设佛山新网站制作平台
  • 新宾区网站建设新能源电动汽车哪个牌子的质量好
  • 制作电商网站广西南宁相亲网
  • 爱网站关键词挖掘工具怎么破解wordpress主题
  • 佛山网站建设html5网站模板移动端
  • 竞价单页网站制作教程关键词排名零芯互联关键词
  • 工信部网站备案查询系统西城区网站建设
  • 网站设计案例网站wordpress 所有漏洞汇总