当前位置:网站首页>MySQL-存储过程-函数-
MySQL-存储过程-函数-
2022-08-03 08:36:00 【LXMXHJ】
存储过程
概述
概念
存储过程和函数定义:
类似于java中的方法。
一组预先编写好的SQL语句的集合,理解成批处理语句。好处:
提高代码的重用性;简化操作;减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
创建
语法
create procedure 存储过程名(参数列表)
begin
存储过程体(一组合法有效的SQL语句)
end
注意
- 参数列表包含三部分
参数模式 参数名 参数类型
案例:
in stuname varchar(20);
- 参数模式:
模式 | 说明 |
---|---|
in | 该参数可以作为输入,也就是该参数需要传入值(其中in可以省略) |
out | 该参数可以作为输出,也就是该参数可以作为返回值 |
inout | 该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值。 |
- 如果存储过程体仅仅只有一句话,begin end可以省略
- 存储过程体中的每条SQL语句的结尾要求必须加分号,存储过程的结尾可以使用delimiter重新设置
delimiter 结束标记
delimiter $
调用
语法
call 存储过程名(实参列表);
举例说明
# 调用in模式的参数
call sp1('值');
# 调用out模式的参数
set @name;
call sp1(@name);
select @name;
# 调用inout模式的参数
set @name = 值;
call sp1(@name);
select @name;
案例
- 参数列表为空
- 创建带in模式参数的存储过程
- 创建带有out模式参数的存储过程
- 创建带有inout参数的存储过程
删除
语法
drop procedure 存储过程名;
案例:只支持删除一个
查看
语法
show create procedure 存储过程名;
案例
函数
概述
定义
一组预先编译好的SQL语句的集合,理解成批处理语句。
好处
提高代码的重用性。
简化操作。
减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率。
存储过程与函数区别
区别 | 存储过程 | 函数 |
---|---|---|
返回值 | 个数可以是0个或者多个 | 有且仅有一个 |
操作 | 适合批量插入、批量更新 | 适合做处理后返回一个结果 |
创建
语法
create function 函数名(参数名 参数类型) returns 返回类型
begin
函数体
end
注意
- 参数列表—包含两部分:参数名、参数类型
- 函数体—肯定有return语句,如果没有写会报错
如果return语句没有放在函数体的最后也不报错,但不建议 - 函数体仅有一句话,则可以省略begin end
- 使用delimiter语句设置结束标记
调用
语法
select 函数名(参数列表);
查看
语法
show create function 函数名;
删除
语法
drop function 函数名;
案例
边栏推荐
- Transformer、BERT、GPT 论文精读笔记
- ArcEngine(五)用ICommand接口实现放大缩小
- "Swordsman Offer" brush questions print from 1 to the largest n digits
- AI mid-stage sequence labeling task: three data set construction process records
- Mysql的in和exists用法区别
- redis键值出现 xacxedx00x05tx00&的解决方法
- 数仓4.0(二)------ 业务数据采集平台
- 阿里云·短信发送
- PowerShell:执行 Install-Module 时,不能从 URI 下载
- The window of the chosen data flow
猜你喜欢
随机推荐
dflow部署简记
Nacos使用实践
[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)
开发工具之版本控制
Scala parallel collections, parallel concurrency, thread safety issues, ThreadLocal
Guava的Service
HCIP练习(OSPF)
Path Prefixes (倍增!树上の二分)
netstat 及 ifconfig 是如何工作的。
阿里云·短信发送
流行和声基础大笔记
英文语法-状语从句
Unity编辑器扩展批量修改图片名称
Pop Harmony Basics Big Notes
MySQL数据库————数据库与vs的连接
【微信小程序】底部有安全距离,适配iphone X等机型的解决方案
RViz报错: Error subscribing: Unable to load plugin for transport ‘compressed‘解决方法
36氪详情页AES
sqlite 日期字段加一天
内存模型之有序性