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();

运行结果:

mysql_function

函数体中也可以编写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();

运行结果:

mysql_procedure

小结

函数和存储过程中的主体都被begin...end嵌套,这是一种名为"事务"的结构,目的是保证begin...end以内的语句不可分割,要么完整执行,要么不执行.

提升效率Mysql函数(function)|存储过程(procedure)相关推荐

  1. pb 调用mysql过程_pb调用mysql函数或存储过程异常

    pb调用mysql函数或存储过程异常.尤其是mysql函数带传入传出参数时,pb调用时候无法正常执行,提示SQLSTATE=37000错误. 在pb程序中正常更新mysql表中字段或读取mysql表中 ...

  2. oracle package 函数,Oracle 存储过程procedure,函数function用法,以及package用法

    定义包头: create or replace package ex is procedure get_user_name(userid in emp.empno%type) : function g ...

  3. MySQL数据库:存储过程Procedure

    一.存储过程: SQL语句需要先编译然后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用它. 存储过程 ...

  4. Java使用JDBC调用Mysql函数和存储过程

    文章目录 前言 一.举例说明 二.主要代码如下 前言 之前使用过mybatis和mybatis plus来调用数据库函数和存储过程,这也是目前使用比较广泛和流行的方法,但是今天遇到一个要求就是在一个项 ...

  5. mysql用函数调用存储过程_mysql 函数 调用 存储过程

    Mysql高级之存储过程 原文: Mysql高级之存储过程 概念类似于函数,就是把一段代码封装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现.在封装的语句体里面,可以用if/else,  ...

  6. 添加mysql 函数库_mysql函数创建

    如何使用MySQL提升权限 前不久网上公开了一个MySQL Func的漏洞,讲的是使用MySQL创建一个自定义的函数,然后通过这个函数来攻击服务器.最早看到相关的报道是在o-otik上,但是公布的是针 ...

  7. mysql添加函数库_创建mysql函数

    如何使用MySQL提升权限 前不久网上公开了一个MySQL Func的漏洞,讲的是使用MySQL创建一个自定义的函数,然后通过这个函数来攻击服务器.最早看到相关的报道是在o-otik上,但是公布的是针 ...

  8. MySQL数据库(31):存储过程 procedure

    存储过程 procedure stored procedure 完成特定功能的SQL语句集,存储在数据库中,经过第一次编译之后再次调用不需要编译(效率较高) 1.存储过程与函数的区别 1.1.相同点 ...

  9. mysql function 与 procedure

    Mysql 的 function 和 procedure 有啥区别呢 ? 网上搜索后说 function 有返回值, procedure 无返回值. 1.return  从function 的语法角度 ...

  10. mysql 5.0创建函数_MySQL5.0中的Function和Procedure

    创建函数(Function) 创建: mysql> CREATE FUNCTION MyFunc (s CHAR(20)) RETURNS CHAR(50) RETURN CONCAT ('He ...

最新文章

  1. 对RPM软件包的查询操作
  2. 《VMware Virtual SAN权威指南(原书第2版)》一3.4 VSAN网络配置之vSphere分布式交换机...
  3. 排查链接是否失效_Linux服务器入侵检测排查方法
  4. NYOJ_5739最大岛屿(河南省第八届acm程序设计大赛)
  5. Mac 编译报错 symbol(s) not found for
  6. 前端学习(3025):vue+element今日头条管理-侧边导航菜单
  7. 动词ing形式的5种用法_英语语法这样学就对了!动词-ing结构的特征和四种形式是?...
  8. PHP中的数组建必须为数字吗,PHP检查数组中缺少的数字
  9. samba 部署和优化
  10. 软件项目需求开发过程实践之软件需求说明书
  11. 学习【阿里巴巴Java开发手册-嵩山版】
  12. 基于51单片机+74LS138译码器+8位共阴数码管时钟设计—按键修改时间
  13. 2021年中式面点师(初级)证考试及中式面点师(初级)模拟考试题
  14. unity android 触屏,Unity 移动端触摸屏操作
  15. 解决导出Excel表格,浏览器不下载
  16. python 去掉空格_Python去除多余空格
  17. 力扣算法学习计划打卡:第七天
  18. PTA平台编程题 Java代码模板
  19. python年份天干地支代码_Python------天干地支纪年及星座计算
  20. 【论文阅读】注意力综述(软注意力)

热门文章

  1. Atitit 项目培训与学校的一些思路总结
  2. Atitit 图像处理 公共模块 矩阵扫描器
  3. paip.提升用户体验-----c++ gcc 命令在notepad++扩展中的配置..
  4. paip.基于HTML gui界面的javascript JS实现SLEEP。。
  5. paip.c#.net 多线程调用控件的问题
  6. paip.Net Framework各个版本的功能不同总结
  7. python: pandas 、dataframe 与hdf5
  8. Julia : 如何在Atom中能用上go to definition?
  9. (转)敲黑板:IT项目出现问题,足以拖垮整个公司
  10. CTA策略:主力连续、全合约模式下回测结果的差异探讨