【热闻】12)自定义函数
时间:2023-05-30 02:10:54
来源:博客园
1、创建自定义函数语法:
create function 函数名(参数1,参数2,...) returns 返回值数据类型begin 函数体 return 语句;end;
要注意:
1)、自定义函数是数据库的对象,创建时,需要指定该函数属于哪个数据库;
(资料图)
2)、同一个数据库内,自定义函数不能和已有的函数名重名;
3)、函数必须指定返回值数据类型,且与return语句返回值类型相匹配;
2、函数创建和调用:
1)无参函数类型:
创建函数:行号自动加一;
#无参类型create function row_no_fn() returns intbegin set @row_no = @row_no + 1; return @row_no;end;
接着我们调用函数;
set @row_no = 0;select row_no_fn() 行号,student_name 姓名, student_no 学号 from student;
2)有参数类型:
创建函数:给定学号,给出姓名;
#有参数类型:create function get_name_fn(stu_no int) returns char(20)begin declare stu_name char(20); select student_name into stu_name from student where student_no = stu_no; return stu_name;end;
调用函数:
set @fn_no = "2023003";select get_name_fn("2023003"),get_name_fn(@fn_no);
要注意:
1)、先写参数名 再写参数类型,逗号隔开;
2)、在函数中,不允许出现有结果集产生的语句;所以使用select into语句,还要确保select 的结果集是单行的,赋值给单个变量;;
3)、声明变量名或参数名不能和表明或字段名重名;
3、函数维护:
查看函数:
1)查看当前数据库中所有自定义函数信息:
show function status\Gshow function status like "模式‘\G
此处的模式可以见下例:
show function status like "%\_fn"\G
2)查看指定数据库所有自定义函数名
select 自定义函数名 from mysql.proc where db="数据库名" and type = "function";
此处我们可以查看我们自定义的两个函数:
不过,貌似8.0版本之后的mysql 数据库下的proc表 被删除了???
通过查阅资料,我们发现可以从information_schema数据库下的 parameters表和 routines 表结合看;
可以查看information_schema数据库下的parameters表:通过specific_name = ’自定义函数名‘ :
select * from parameters where specific_name = "get_name_fn"\G
结合routines表,也是通过specific_name = ’自定义函数名‘;此表很详细了;
select * from routines where specific_name = "get_name_fn"\G
3)查看指定函数名的详细信息:
show create function 函数名\G
show create function get_name_fn\G
删除函数:
drop function 函数名
drop function row_no_fn;
标签:
- 【热闻】12)自定义函数
- 当前观点:“东软系”公司再闯港交所!3年亏了7个亿 中金独家保荐
- Coupang将进入印度市场,海外版图再扩张|世界视点
- Mysteel晚餐:铁矿石到港量增加,吕梁4.3米焦炉9月底前关停_世界观点
- 会计事务所会计分录(事务所费用会计分录)_天天信息
- 本田计划到2030年将软件员工人数增至一万人
- 实干争先 奋斗有我——我们的村运顺利开展_世界报资讯
- 【全球热闻】gdp是什么意思(幽森是什么意思)
- 景嘉微5月29日大宗交易成交8977.50万元
- MediaTek与NVIDIA携手合作,为汽车行业提供全产品方案
- 教育部等十八部门:探索利用人工智能等技术手段弥补优质教育教学资源不足_精选
- 正宗红烧带鱼国宴_正宗红烧带鱼
- Bentley View是什么软件
- 用户骑车为手机充电:小米推出米家动感单车自发电版,1799 元|速读
- 最新资讯:辛巴达欢乐城堡_关于辛巴达欢乐城堡的介绍
- 全球视讯!名臣健康现大宗交易,专业人士猜测其业绩或消息积极|大涨解读
- 原尚股份(603813):5月29日技术指标出现观望信号-“黑三兵”
- 快看:李子园: 销售有所下滑主要系一季度春节销售错位有关,公司目前新市场按公司计划推进中
- 期待首秀!神十六有航天飞行工程师和载荷专家|全球微头条
- 中国队包揽世乒赛五金 总教练:奥运会前重要练兵|今日最新
- 【速看料】图片报道2
- 梦洁股份遭大股东砸场子
- 搭建心中“最美的家”_天天热推荐
- 环球微速讯:早高峰路上,他们突然停车飞奔……
- 分封与封建的区别_分封 全球热点
- 当大数据融入新生活 智慧生活从概念照进现实
- 全球观速讯丨汽车三大件是什么哪个品牌好(汽车三大件是什么)
- 环球快消息!Stein:独行侠仍想留下欧文 对签换拉塞尔没有兴趣 除非浓眉加入
- 莲蓉馅怎么做到可以湿润软糯(莲蓉馅的做法及配方)
- 山东高质量建设宜居宜业和美乡村 每日动态
x
广告
x
广告