| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MySQL-流程控制结构/游标(IF THEN/CASE THEN/LOOP/WHILE DO/REPEAT UNTIL/ITERATE/LEAVE/OPEN/FEATCH/CLOSE) -> 正文阅读 |
|
[大数据]MySQL-流程控制结构/游标(IF THEN/CASE THEN/LOOP/WHILE DO/REPEAT UNTIL/ITERATE/LEAVE/OPEN/FEATCH/CLOSE) |
目录 一、流程控制????????流程控制为三大类: ????????????????顺序结构 :程序从上往下依次执行 ????????????????分支结构 :程序按条件进行选择执行,从两条或多条路径中选择一条执行 ????????????????循环结构 :程序满足一定条件下,重复执行一组语句 ????????针对于MySQL 的流程控制语句主要有 3 类。注意:只能用于存储程序。 ????????????????条件判断语句 :IF 语句和 CASE 语句 ????????????????循环语句 :LOOP、WHILE 和 REPEAT 语句 ????????????????跳转语句 :ITERATE 和 LEAVE 语句 1.1 分支结构1.1.1 IF THEN
????????特点:① 不同的表达式对应不同的操作 ② 使用在begin end中 ????????举例:声明存储过程“update_salary_by_eid1”,定义IN参数emp_id,输入员工编号。判断该员工 薪资如果低于8000元并且入职时间超过5年,就涨薪500元;否则就不变。
1.1.2 CASE
????????声明存储过程update_salary_by_eid5,定义IN参数emp_id,输入员工编号。判断该员工的 入职年限,如果是0年,薪资涨50;如果是1年,薪资涨100;如果是2年,薪资涨200;如果是3年, 薪资涨300;如果是4年,薪资涨400;其他的涨薪500。
1.2?循环结构1.2.1?LOOP????????LOOP循环语句用来重复执行某些语句。LOOP内的语句一直重复执行直到循环被退出(使用LEAVE子句),跳出循环过程。
????????使用LOOP语句进行循环操作,id值小于10时将重复执行循环过程。
1.2.2?WHILE????????WHILE语句创建一个带条件判断的循环过程。先判断,再执行。WHILE语句的基本格式如下:
????????WHILE语句示例,i值小于10时,将重复执行循环过程
1.2.3?REPEAT????????REPEAT语句创建一个带条件判断的循环过程,先执行再判断。类似于Java的 DO WHILE。
????????当市场环境变好时,公司为了奖励大家,决定给大家涨工资。声明存储过程 “update_salary_repeat()”,声明OUT参数num,输出循环次数。存储过程中实现循环给大家涨薪,薪资涨 为原来的1.15倍。直到全公司的平均薪资达到13000结束。并统计循环次数。
1.3 跳转语句? ? ? ? LEAVE: ? ? ? ? 可以用在循环语句内,或者以 BEGIN 和 END 包裹起来的程序体内,表示跳出循环或者跳出 程序体的操作。可以把 LEAVE 理解为 break。 ????????ITERATE: ????????只能用在循环语句(LOOP、REPEAT和WHILE语句)内,表示重新开始循环,将执行顺序 转到语句段开头处。可以把 ITERATE 理解为 continue。 二、游标2.1 概念????????游标,提供了一种灵活的操作方式,让我们能够对结果集中的每一条记录进行定位,并对指向的记录中的数据进行操作的数据结构,类似一个指针。游标让 SQL 这种面向集合的语言有了面向过程开发的能力。 ????????MySQL中游标可以在存储过程和函数中使用。 ????????游标为 逐条读取 结果集中的数据,提供了完美的解决方案。跟在应用层面实现相同的功能相比,游标可以在存储程序中使用,效率高,程序也更加简洁。 但同时也会带来一些性能问题,比如在使用游标的过程中,会对数据行进行加锁 ,这样在业务并发量大的时候,不仅会影响业务之间的效率,还会消耗系统资源 ,造成内存不足,这是因为游标是在内存中进行的处理。 2.2 使用步骤1 声明游标 ????????在MySQL中,使用DECLARE关键字来声明游标
2 打开游标
3 使用游标
4 关闭游标
2.3 举例????????创建存储过程“get_count_by_limit_total_salary()”,声明IN参数 limit_total_salary,DOUBLE类型;声明 OUT参数total_count,INT类型。函数的功能可以实现累加薪资最高的几个员工的薪资值,直到薪资总和 达到limit_total_salary参数的值,返回累加的人数给total_count。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 1:57:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |