前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >存储过程和存储函数

存储过程和存储函数

作者头像
code-child
发布2023-05-30 11:22:11
8620
发布2023-05-30 11:22:11
举报
文章被收录于专栏:codechildcodechild

存储过程没有返回值,存储函数有返回值

存储过程

存储过程的参数类型有这几种:

  1. 没有参数(无参数无返回值)
  2. in(有参数无返回值)
  3. out(无参数有返回值)跟着——在查询语句后面加上into看下面的例子
  4. 即带in又带out(有参数有返回值)
  5. inout(有参数有返回值)

语法形式

代码语言:javascript
复制
sqlCREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参数名 参数类型)
[characteristics……]
BEGIN 
	存储过程体
END

在执行上面代码的时候,因为存储过程体中的sql语句有;而执行到;就结束了,但是我们还没有到我们存储过程的结束。所有我们要设置结束标志

设置结束标志: DELIMITER 新的结束标志 那么上面的代码可以这样写

代码语言:javascript
复制
sqlDELIMITER $
CREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参数名 参数类型)
[characteristics……]
BEGIN 
	存储过程体
END $
DELIMITER ;#从新把原来的;恢复

例:OUT

代码语言:javascript
复制
sqlDELIMITER //

CREATE PROCEDURE show_min_salary(OUT ms DOUBLE)
BEGIN
	SELECT MIN(salary) INTO ms
	FROM employees;
END //

DELIMITER ;

characteristics表示创建存储过程时对存储过程的约束条件 约束条件如下:

image.png
image.png

例:

代码语言:javascript
复制
sqlDELIMITER $
CREATE PROCEDURE select_min_salary()

BEGIN
	SELECT MIN(salary)
	FROM emp;
END $

DELIMITER ;

调用——CALL select_min_salary(); CALL 存储过程

传入参数的时候可以自己定义参数,怎么设置参数,后面一节会讲解,暂时这样设置SET @变量名

存储函数

创建存储函数与创建存储过程差不多 语法形式:

代码语言:javascript
复制
sqlCREATE FUNCTION 函数名(参数名 参数类型)
RETURNS 返回类型
约束条件
BEGIN
	函数体
END

调用存储函数 SELECT 函数名(实参列表)

image.png
image.png

查看

查看创建信息: SHOW CREATE {PROCEDURE | FUNCTION} 存储过程名或函数名

查看状态信息: SHOW {PROCEDURE | FUNCTION} STATUS ——这样会查看所有的 我们可以用模糊查询 SHOW {PROCEDURE | FUNCTION} STATUS LIKE '名字'

也可以从information_schema.Routines表 中查看

代码语言:javascript
复制
sqlSELECT * FROM information_schema.Routines
WHERE ROUTINE_NAME='存储过程或函数的名' [AND ROUTINE_TYPE = {'PROCEDURE|FUNCTION'}];

不写写了,直接截图:

image.png
image.png
image.png
image.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-05-26M,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 存储过程
  • 存储函数
  • 查看
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档