提升效率Mysql函数(function)|存储过程(procedure)
函数
mysql内置的函数很好用,同样mysql也支持用户自定义函数
1.为避免和函数中的语句结束符;
冲突,将语句结束符号临时重定义为$$
delimiter $$
2.书写函数体
- 语法
create function 函数名(参数列表) returns 返回值类型
begindeclare 变量名 变量类型;逻辑语句;return 返回值;end$$
- 示例
create function num_add() returns varchar(100)
begindeclare i int default 1;
declare x varchar(100) default '';
while i < 20 doif i%2 = 0 thenset x = concat(x, " ", i);end if;set i = i + 1;end while;return x;
end
$$
3.将语句结束符还原为;
delimiter ;
4.调用函数
select num_add();
运行结果:
函数体中也可以编写sql语句,但不能使用
select...from...
,所以通过sql对数据表进行操作的任务,最好交给"存储过程"
存储过程
与函数相比,"存储过程"可以对"所有sql语句"进行完美封装.
1.为避免和"存储过程"中的语句结束符;
冲突,将语句结束符号临时重定义为$$
delimiter $$
2.创建"存储过程"
- 语法
create procedure 存储过程名称(参数列表)
beginsql语句; end$$
- 示例
create procedure show_func_and_proc()
beginselect name, type, db from mysql.proc;
end
$$
3.将语句结束符还原为;
delimiter ;
4.调用新建的存储过程
call show_func_and_proc();
运行结果:
小结
函数和存储过程中的主体都被
begin...end
嵌套,这是一种名为"事务"的结构,目的是保证begin...end
以内的语句不可分割,要么完整执行,要么不执行.
提升效率Mysql函数(function)|存储过程(procedure)相关推荐
- pb 调用mysql过程_pb调用mysql函数或存储过程异常
pb调用mysql函数或存储过程异常.尤其是mysql函数带传入传出参数时,pb调用时候无法正常执行,提示SQLSTATE=37000错误. 在pb程序中正常更新mysql表中字段或读取mysql表中 ...
- oracle package 函数,Oracle 存储过程procedure,函数function用法,以及package用法
定义包头: create or replace package ex is procedure get_user_name(userid in emp.empno%type) : function g ...
- MySQL数据库:存储过程Procedure
一.存储过程: SQL语句需要先编译然后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用它. 存储过程 ...
- Java使用JDBC调用Mysql函数和存储过程
文章目录 前言 一.举例说明 二.主要代码如下 前言 之前使用过mybatis和mybatis plus来调用数据库函数和存储过程,这也是目前使用比较广泛和流行的方法,但是今天遇到一个要求就是在一个项 ...
- mysql用函数调用存储过程_mysql 函数 调用 存储过程
Mysql高级之存储过程 原文: Mysql高级之存储过程 概念类似于函数,就是把一段代码封装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现.在封装的语句体里面,可以用if/else, ...
- 添加mysql 函数库_mysql函数创建
如何使用MySQL提升权限 前不久网上公开了一个MySQL Func的漏洞,讲的是使用MySQL创建一个自定义的函数,然后通过这个函数来攻击服务器.最早看到相关的报道是在o-otik上,但是公布的是针 ...
- mysql添加函数库_创建mysql函数
如何使用MySQL提升权限 前不久网上公开了一个MySQL Func的漏洞,讲的是使用MySQL创建一个自定义的函数,然后通过这个函数来攻击服务器.最早看到相关的报道是在o-otik上,但是公布的是针 ...
- MySQL数据库(31):存储过程 procedure
存储过程 procedure stored procedure 完成特定功能的SQL语句集,存储在数据库中,经过第一次编译之后再次调用不需要编译(效率较高) 1.存储过程与函数的区别 1.1.相同点 ...
- mysql function 与 procedure
Mysql 的 function 和 procedure 有啥区别呢 ? 网上搜索后说 function 有返回值, procedure 无返回值. 1.return 从function 的语法角度 ...
- mysql 5.0创建函数_MySQL5.0中的Function和Procedure
创建函数(Function) 创建: mysql> CREATE FUNCTION MyFunc (s CHAR(20)) RETURNS CHAR(50) RETURN CONCAT ('He ...
最新文章
- 对RPM软件包的查询操作
- 《VMware Virtual SAN权威指南(原书第2版)》一3.4 VSAN网络配置之vSphere分布式交换机...
- 排查链接是否失效_Linux服务器入侵检测排查方法
- NYOJ_5739最大岛屿(河南省第八届acm程序设计大赛)
- Mac 编译报错 symbol(s) not found for
- 前端学习(3025):vue+element今日头条管理-侧边导航菜单
- 动词ing形式的5种用法_英语语法这样学就对了!动词-ing结构的特征和四种形式是?...
- PHP中的数组建必须为数字吗,PHP检查数组中缺少的数字
- samba 部署和优化
- 软件项目需求开发过程实践之软件需求说明书
- 学习【阿里巴巴Java开发手册-嵩山版】
- 基于51单片机+74LS138译码器+8位共阴数码管时钟设计—按键修改时间
- 2021年中式面点师(初级)证考试及中式面点师(初级)模拟考试题
- unity android 触屏,Unity 移动端触摸屏操作
- 解决导出Excel表格,浏览器不下载
- python 去掉空格_Python去除多余空格
- 力扣算法学习计划打卡:第七天
- PTA平台编程题 Java代码模板
- python年份天干地支代码_Python------天干地支纪年及星座计算
- 【论文阅读】注意力综述(软注意力)
热门文章
- Atitit 项目培训与学校的一些思路总结
- Atitit 图像处理 公共模块 矩阵扫描器
- paip.提升用户体验-----c++ gcc 命令在notepad++扩展中的配置..
- paip.基于HTML gui界面的javascript JS实现SLEEP。。
- paip.c#.net 多线程调用控件的问题
- paip.Net Framework各个版本的功能不同总结
- python: pandas 、dataframe 与hdf5
- Julia : 如何在Atom中能用上go to definition?
- (转)敲黑板:IT项目出现问题,足以拖垮整个公司
- CTA策略:主力连续、全合约模式下回测结果的差异探讨