| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Mysql_存储过程 -> 正文阅读 |
|
[大数据]Mysql_存储过程 |
介绍存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 特点:封装,复用 -----------------------> 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可。 可以接收参数,也可以返回数据 --------> 再存储过程中,可以传递参数,也可以接收返回值。 减少网络交互,效率提升 -------------> 如果涉及到多条SQL,每执行一次都是一次网络传输。 而如果封装在存储过程中,我们只需要网络交互一次可能就可以了。 基本语法1). 创建
2). 调用
3). 查看
4). 删除
注意:在命令行中,执行创建存储过程的SQL时,需要通过关键字 delimiter 指定SQL语句的结束符。 变量在MySQL中变量分为三种类型: 系统变量、用户定义变量、局部变量。 系统变量系统变量 是MySQL服务器提供,不是用户定义的,属于服务器层面。分为全局变量(GLOBAL)、会话变量(SESSION)。 1). 查看系统变量
2). 设置系统变量
注意: mysql服务重新启动之后,所设置的全局参数会失效,要想不失效,可以在 /etc/my.cnf 中配置。 A. 全局变量(GLOBAL): 全局变量针对于所有的会话。 用户定义变量用户定义变量 是用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接用 “@变量名” 使用就可以。其作用域为当前连接。
赋值时,可以使用 = ,也可以使用 := 。 方式二:
2). 使用
注意: 用户定义的变量无需对其进行声明或初始化,只不过获取到的值为NULL 局部变量。局部变量 是根据需要定义的在局部生效的变量,访问之前,需要DECLARE声明。可用作存储过程内的局部变量和输入参数,局部变量的范围是在其内声明的BEGIN … END块。 1). 声明
注意 变量类型就是数据库字段类型:INT、BIGINT、CHAR、VARCHAR、DATE、TIME等。 2). 赋值
1. if1). 介绍:if 用于做条件判断,具体的语法结构为:
在if条件判断的结构中,ELSE IF 结构可以有多个,也可以没有。 ELSE结构可以有,也可以没有 2.参数介绍 :参数的类型,主要分为以下三种:IN、OUT、INOUT。 具体的含义如下
3.case介绍:case结构及作用,和我们在基础篇中所讲解的流程控制函数很类似。有两种语法格式: 语法1:
语法2:
注意:如果判定条件有多个,多个条件之间,可以使用 and 或 or 进行连接。 4. whilewhile 循环是有条件的循环控制语句。满足条件后,再执行循环体中的SQL语句。具体语法为:
5. repeat介绍:repeat是有条件的循环控制语句, 当满足until声明的条件的时候,则退出循环 。具体语法为:
6.loop介绍 :LOOP 实现简单的循环,如果不在SQL逻辑中增加退出循环的条件,可以用其来实现简单的死循环。 LEAVE :配合循环使用,退出循环。
上述语法中出现的 begin_label,end_label,label 指的都是我们所自定义的标记。 7. 游标介绍 :游标(CURSOR)是用来存储查询结果集的数据类型 , 在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、OPEN、FETCH 和 CLOSE,其语法分别如下。
B. 打开游标
C. 获取游标记录
D. 关闭游标
8.条件处理程序介绍:条件处理程序(Handler)可以用来定义在流程控制结构执行过程中遇到问题时相应的处理步骤。具体 语法为:
具体的错误状态码,可以参考官方文档: 9.存储函数介绍:存储函数是有返回值的存储过程,存储函数的参数只能是IN类型的。具体语法如下
characteristic说明: 2.NO SQL :不包含 SQL 语句。 3.READS SQL DATA:包含读取数据的语句,但不包含写入数据的语句。 在mysql8.0版本中binlog默认是开启的,一旦开启了,mysql就要求在定义存储过程时,需要指定 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 9:43:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |