MySQL数据库学习——自定义函数

一、自定义函数

用户自定义函数(user-definedfunctionUDF)是一种对MySQL扩展的途径,其用法与内置函数相同。

必要条件:1.参数。 2.返回值。

函数可以返回任意类型的值,同样可以接收这些类型的参数。

创建自定义函数

Create function函数名

Returns

{ String | integer| real | decimal}

Routine_body

函数体:

1.     函数体由合法的SQL语句构成

2.     函数体可以是简单的selectinsert语句

3.     函数体如果为复合结构则使用begin…end语句

4.     复合结构可以包含声明,循环,控制结构。

二、创建无参自定义函数

Create function newDate() returns varchar(30)

Return date_format(NOW(),‘%Y%m%d%H点:%i分:%s秒’)

三、创建带参自定义函数

Create function f2num1 smallint unsignednum2 smallint unsigned

Returns float10,2unsigned

Returnnum1+num2/ 2;

四、创建具有复合结构函数体

Delimiter //

将在控制台下的分号(;)作为结束运行标志,修改为以(//)结束

创建函数

Create function adduserusername varchar20))

Returns int unsigned

Begin

Insert testusernamevaluesusername);

Return LAST_INSERT_ID();

End

//

五、删除函数

Drop function [if exits]函数名

存储函数和自定义函数是两种不同的概念。引用\[1\]中提到,存储函数是在数据库中创建的一种函数,它必须有一个return子句用于返回函数值,并且可以通过CREATE FUNCTION语句来创建。而自定义函数是指用户自己定义的函数,可以在程序中使用,但不是在数据库中创建的。引用\[2\]中提到,在MySQL中,存储过程和函数可以使用CREATE PROCEDURE和CREATE FUNCTION语句来创建,而自定义函数则可以直接在程序中定义。存储过程和函数可以通过CALL语句来调用,而自定义函数可以通过函数名来引用。此外,存储过程和函数可以有输出参数,可以返回多个值,而自定义函数通常只能返回一个标量值。根据引用\[3\]中的原则,如果只有一个返回值,通常使用存储函数;如果有多个返回值,通常使用存储过程。 #### 引用[.reference_title] - *1* *3* [Oracle数据库——存储过程和自定义函数](https://blog.csdn.net/hyh17808770899/article/details/106867758)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [八、存储过程与自定义函数](https://blog.csdn.net/qq_52059326/article/details/124399461)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值