mysql创建存储过程及函数详解


Posted in MySQL onDecember 04, 2021

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 SQL
BEGIN
    return length(f_string);
END//

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

1.  RETURNS: 需指定返回类型

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

3.return: 返回需要的数据

遇见的错误:

mysql创建存储过程及函数详解

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

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

begin

declare 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创建存储过程及函数详解的文章就介绍到这了,更多相关mysql存储过程及函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL时间盲注的五种延时方法实现
May 18 MySQL
MySQL 视图(View)原理解析
May 19 MySQL
MySQL中InnoDB存储引擎的锁的基本使用教程
May 26 MySQL
MySQL索引是啥?不懂就问
Jul 21 MySQL
mysql创建存储过程及函数详解
Dec 04 MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
Jan 22 MySQL
解析MySQL索引的作用
Mar 03 MySQL
分析MySQL优化 index merge 后引起的死锁
Apr 19 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
MySQL导致索引失效的几种情况
Jun 25 MySQL
MySql统计函数COUNT的具体使用详解
Aug 14 MySQL
MySQL count(*)统计总数问题汇总
Sep 23 MySQL
mysql5.6主从搭建以及不同步问题详解
MySQL图形化管理工具Navicat安装步骤
全面盘点MySQL中的那些重要日志文件
关于mysql中时间日期类型和字符串类型的选择
Nov 27 #MySQL
VS2019连接MySQL数据库的过程及常见问题总结
Linux7.6二进制安装Mysql8.0.27详细操作步骤
SQL优化老出错,那是你没弄明白MySQL解释计划用法
Nov 27 #MySQL
You might like
php获取url参数方法总结
2014/11/13 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
JS实现密码框效果
2020/09/10 Javascript
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
python如何统计序列中元素
2020/07/31 Python
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
计算机专业个人求职信范例
2013/09/23 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
海上钢琴师观后感
2015/06/03 职场文书
红高粱观后感
2015/06/10 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏