千家信息网

mysql如何创建存储过程及函数

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要为大家展示了"mysql如何创建存储过程及函数",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"mysql如何创建存储过程及函数"这篇文章吧。1.
千家信息网最后更新 2025年01月18日mysql如何创建存储过程及函数

这篇文章主要为大家展示了"mysql如何创建存储过程及函数",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"mysql如何创建存储过程及函数"这篇文章吧。

1. 存储过程

1.1. 基本语法

create procedure name ([params])UNSIGNED [characteristics] routine_body

params : in|out|inout 指定参数列表 代表输入与输出

routine_body: SQL代码内容,以begin ........ end

characteristics: 指定存储过程特性,包含5种

1 DETERMINISTIC 不确定的
2 NO SQL 没有SQl语句,当然也不会修改数据
3 READS SQL DATA 只是读取数据,当然也不会修改数据
4 MODIFIES SQL DATA 要修改数据
5 CONTAINS SQL 包含了SQL语句

1.2 创建一个指定执行权限的存储过程

create DEFINER=`root`@`%` procedure name ([params])UNSIGNED [characteristics] routine_body

DEFINER:指明谁有权力来执行。

1.3 DELIMITER 的使用

"DELIMITER //" 表示设置"//"符号为结束语,因为mysql中默认语句结束为分号';',为了避免存储过程与mysql语句符号冲突,所以有时使用DELIMITER来改变结束语符号,要配合end //来使用;

示例:创建一个root账户执行的存储过程,输出给定字符串的长度

DELIMITER //CREATE definer=`root`@`%` PROCEDURE `avgFruitPrice`(in f_string VARCHAR(200))BEGIN    select length(f_string);END//

2. 创建函数

函数的创建与存储过程相同

示例

DELIMITER //CREATE definer=`root`@`%` FUNCTION `my_length`(f_string VARCHAR(200))RETURNS INT(11)UNSIGNED  NO SQLBEGIN    return length(f_string);END//

注意: 创建函数需要注意3个地方,

1. RETURNS: 需指定返回类型

2. UNSIGNED NO SQL 需指定存储过程特性

3.return: 返回需要的数据

遇见的错误:

如报错如上信息就是没有指定存储过程特性。

存储过程函数中可以通过mysql查询结果为其参数复制: 其语句为select .... into

begindeclare onename char(50) default'0';declare twoname char(50);select f_name, b_name into onename, twoname from t_user where id =1;.......end//

说明:

declare: 存储过程及函数内部定义变量

default:默认值

以上是"mysql如何创建存储过程及函数"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

过程 存储 函数 数据 语句 内容 特性 符号 篇文章 参数 示例 结束语 学习 帮助 输出 相同 代码 代表 信息 分号 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 带网络安全模式怎么用手机联网 软件开发测试管理流程表 网络安全文明海报图片 手机软件开发工程师专业技能 数据库系统工程师书籍 杭州雄猫软件开发公司 水晶报表与sql数据库连接 网络安全法的题 ktv服务器几天关一次 sql数据库在企业中的应用 如何查看服务器的端口 摩莎5130串口服务器说明书 非关系行数据库有哪些 中职计算机网络技术专业建设 firebird数据库连接 重庆通广互联网科技有限公司 数据库导数据到hdfs的命令 金融信息数据库多久报送一次 多媒体与网络技术有关吗 普宁有没有软件开发培训 自编选号池未上牌数据库 冰封王座可以换服务器吗 远程服务器账号 网络安全协议哪种最可靠 武汉李凯网络安全 我要看网络安全手抄报的标语 我的世界租借服务器公告栏指令 黑龙江新一代网络技术优势 数据库怎么死锁 怎么检验msf连接数据库成功
0