2021-08-18MySQL 第六章过程式数据库对象.23存储函数,触发器

本文详细介绍了MySQL中的存储函数,包括创建、调用、删除及修改,并提供了实例演示。此外,还讲解了触发器的概念、创建和删除触发器的方法,以及触发器在数据完整性方面的应用。最后,简要介绍了事件的创建、修改和删除,强调了事件调度器的作用。
摘要由CSDN通过智能技术生成

6.2 存储函数

6.2.1 创建存储函数

    create function语法如下:

create function 存储过程名([参数...])
returns type
[特征...] 存储函数体
  • 存储函数的定义格式和存储过程相差不大
  • 存储函数不能和已有的存储过程名字相同
  • 存储函数的参数只有名称和类型,不能指定 in、out和inout。returns type子句声明函数返回值的数据类型
  • 存储函数体:所有存储过程中使用的SQL语句在存储函数中也适用,包括流程控制语句、游标等。但是存储函数体中必须包含一个return value语句,value为存储函数的返回值。这是存储过程体中没有的。

例如:创建一个存储函数,返回xs表中学生的人数作为结果

 delimiter $$
 create function num_of_xs()
 returns integer
 begin
return( select count(*) from xs);
end $$
delimiter ;

例如:创建一个存储函数来删除xs_kc表中存在但xs表中不存在的学号。

delimiter $$
 create function delete_xh(xh char(6))
 returns boolean
 begin
 declare stu char(6)
 select 姓名 into stu from xs where 学号=xh;
 if stu is null then
 delete from xs_kc where 学号=xh;
 return true;
 else
 return false;
 end if
 end$$
 delimiter ;

6.2.2 存储函数的调用、删除和修改

1. 存储函数的调用

    存储函数创建完成后,如同系统提供的内置函数(version()函数)、所以调用存储函数的方法也差不多,都是使用select关键字。
    其语法格式如下:

select 存储函数名(参数[,...])

例如:

select num_of_xs();

例如:创建一个存储函数,通过调用存储函数name_of_stu获得学号的姓名,判断姓名是否是王林,是则返回王林的出生日期,不是则返回‘false’

delimiter $$
create function name_of_stu(xh char(6))
returns char(10<
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值