mysql 函数和存储过程区别

  • 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。存储过程,功能强大,可以执行包括修改表等一系列数据库操作;用户定义函数不能用于执行一组修改全局数据库状态的操作。

  • 对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象。函数只能返回一个变量;而存储过程可以返回多个。存储过程的参数可以有IN,OUT,INOUT三种类型,而函数只能有IN类~~存储过程声明时不需要返回类型,而函数声明时需要描述返回类型,且函数体中必须包含一个有效的RETURN语句。

  • 存储过程,可以使用非确定函数,不允许在用户定义函数主体中内置非确定函数。

  • 存储过程一般是作为一个独立的部分来执行( EXECUTE 语句执行),而函数可以作为查询语句的一个部分来调用(SELECT调用),由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。 SQL语句中不可用存储过程,而可以使用函数。

函数格式

-- 定义方法名 传入参数值
create function functionName([parm1 type],[parm2 type],...)
{-- 声明返回变量类型returns type;-- 开始begin/*执行业务处理逻辑*/-- 结束end
}

调用格式

select functionName(1);

mysql 变量赋值的三种方法

mysql中变量不用事前申明,在用的时候直接用“@变量名”使用就可以了

-- 第一种用法set @num=1; 或 set @num:=1; -- 这里要使用变量来保存数据,直接使用@num变量
-- 第二种用法:select @num:=1; 或 select @num:=字段名 from 表名 where ……-- 注意上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值”
-- 第三种用法:select 字段名1,字段名2 into @变量1,@变量2 from 表名 where ......

在函数或存储过程或触发器中,在不能使用set的时候推荐第三种,因为第二种会在执行时返回查询结果,这在函数或触发器中会报 “Not allowed to return a result set from a function”错误。而第三种则不会报错。

mysql 创建函数相关推荐

  1. MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串

    MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音 一.MySQL创建函数 1.语法 CREATE FUNCTION fun_name([paramName type , ...

  2. MySQL创建函数报“ERROR 1418 ”错误,不能创建函数

    MySQL创建函数报ERROR 1418错误,不能创建函数,根据官方提示是说,不能创建函数可能是一个安全设置方面的配置或功能未开启原因,下面我们一起来看. 错误 ERROR 1418 (HY000): ...

  3. mysql创建函数失败_MYSQL创建函数出错如何解决

    在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况.下面就教您一个解决MySQL函数不能创建问题的方法,供您借鉴参考.希望能帮助到大家. 案例一: 目前在项目中,执行创建mysql的函数 ...

  4. MySQL创建函数和存储过程,批量插入大数据

    工作中使用Jmeter压测时,需要大数据量,可以使用MySQL创建函数和存储过程,批量插入大数据 右击新建函数,创建过程 完成后自动创建 在body部分写入过程: DECLARE id INT DEF ...

  5. 在navicat for mysql 创建函数,保存的时候出现1064错误

    在navicat for mysql 创建函数,保存的时候出现1064错误 解决方法:很有可能是mysql语句出现语法错误,仔细检查一下符号是否为英文,是否忘记写符号":"

  6. mysql创建函数1418_Mysql中创建函数报“ERROR 1418 ”的解决方法

    我们在使用mysql数据库开发项目的时候,有时Mysql系统自带的函数不能完全满足我们开发的需要,解决方法是自己创建函数,可以有可能在你创建函数的过程事会报出Error 1418错误,对于报这种错误的 ...

  7. mysql创建反弹函数,MySql创建函数

    首先需要查看一下创建函数的功能是否开启: X:\proper\mysql\bin>mysql -h localhost -u root -p Enter password: ********** ...

  8. mysql创建函数失败_mysql创建函数出现问题?

    大家好,帮我看看下面的mysql的函数有什么问题?一直创建不了. DELIMITER $$ DROP FUNCTION IF EXISTS check_if_exists$$ CREATE FUNCT ...

  9. mysql 创建函数_MySQL函数,存储过程,用户管理

    1. 视图 一张虚拟表,就是将一个经常被使用的查询作为一个虚拟表,开发者查询的时候不需要再次书写SQL,而是直接调用对应的视图就可,调用视图以后MySQL会执行这个查询SQL. # 创建视图 crea ...

  10. Mysql 创建函数

    函数的创建格式 非常类似于存储过程  函数 :function  存储过程:procedure :mysql 数据库提供很多自带的函数,例如我们常用的sum() 求和 ,to_days() 日期转换 ...

最新文章

  1. Jenkins设置svn授权
  2. jfinal多数据源ActiveRecordPlugin
  3. linux 远程控制权限,总结一下linux远程控制方法
  4. Spring.Net的IOC入门
  5. MongoDB工具介绍
  6. java 匿名函数_国外程序员用的火热的Vavr是什么鬼?让函数式编程更简单!
  7. 测试开发新手:从0到1开展性能测试必备的性能测试要点!
  8. JavaScript模块化开发(一)基础知识
  9. Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现
  10. php表决器代码,三人表决器:VHDL源代码
  11. [AHK]设置快捷键快速呼出隐藏XYplorer
  12. 数据结构-树的进阶-串联各科知识
  13. stm32的IIC驱动0.96OLED
  14. Cool Edit Pro
  15. 织梦html网站地图插件,织梦:DEDECMS XML网站地图插件
  16. python爬虫实战三:近十年中国电影票房数据爬取与分析
  17. Python调用纷享销客CRM开放平台API
  18. 「CSDN交易中心」使用指南
  19. B1/gsm功放板下行测试流程
  20. c语言运算符与表达式ppt,C语言基本运算符与表达式.ppt

热门文章

  1. SpringCloud (一) ——认识微服务
  2. 深度学习中的batch的大小对学习效果有何影响?
  3. 咖尔度CALDOO全自动智能咖啡机控制系统设计
  4. Xutils3的使用
  5. 【TensorFlow】逻辑回归原理与实现(超详细)
  6. STEVAL-MKI109V3评估板 PART2 - LPS27HHW传感器接口
  7. Python笔记:文档注释docstrings, 让函数更易读懂
  8. 通过修改Cookie登录后台
  9. c语言 单元测试工具 免费下载,雨田单元测试系统(C语言单元测试) 1.0官方版
  10. ashx 文件的运用