文档详情

存储函数的创建和调用课件.pptx

发布:2025-04-10约3.57千字共17页下载文档
文本预览下载声明

存储函数的创建和调用

建立和使用存储函数

【任务背景】

存储函数与存储过程的功能类似,任务背景也相似。存储过程实现的功能要

复杂一些,而存储函数实现的功能针对性比较强。存储函数与存储过程有什么区

别和联系呢?该怎样创建和使用存储函数呢?

【任务要求】

本任务将从认识存储函数着手,学习创建、调用、查看、修改和删除存储函

数的方法。重点掌握创建基本的存储函数、创建带变量的存储函数、在存储函数

中调用其他存储过程或存储函数的方法。

认识存储函数

存储函数和存储过程类似,是在数据库中定义一些SQL语句的集合。一旦它

被存储,客户端不需要再重新发布单独的语句,直接调用这些存储函数即可,可

以避免开发人员重复地编写相同的SQL语句。而且,存储函数和存储过程一样,

是在MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输。

创建存储函数

MySQL中创建存储函数的语法格式如下:

CREATEFUNCTIONsp_name([func_parameter[,...]])

RETURNStype

[characteristic...]routine_body

创建存储函数

创建基本的存储函数:

【例1】创建一个存储函数,它返回course表中已开设的专业基础课门数

mysqlDELIMITER$$

CREATEFUNCTIONNUM_OF_COURSE()

RETURNSINTEGER

BEGIN

RETURN(SELECTCOUNT(*)FROMcourseWHEREtype=专业基础课);

END$$

DELIMITER;

创建存储函数

创建带变量的存储函数:

存储函数与存储过程一样,也可以定义和使用变量,

它们可以用来存储临时结果。

创建存储函数

【例2】创建一个存储函数,根据指定的参数KCH来删除在score表中存在但course表中不存在的成绩记录

mysqlDELIMITER$$

CREATEFUNCTIONDELETE_KCH(KCHCHAR(6))

RETURNSCHAR(5)

BEGIN

DECLAREKCMCHAR(6);

SELECTc_nameINTOKCMFROMcourseWHEREc_no=KCH;

IFKCMISNULLTHEN

DELETEFROMscoreWHEREc_no=KCH;

RETURNYES;

ELSE

RETURNNO;

ENDIF;

END$$

DELIMITER;

调用存储函数

使用SELECT关键字调用存储函数

语法格式如下:

SELECTsp_name([func_parameter[,...]])

调用存储函数

【例3】调用存储函数DELETE_KCH()

mysqlSELECTDELETE_KCH(A001);

运行结果如图1所示:

图1【例3】运行结果

调用存储函数

【例3】调用存储函数NUM_OF_COURSE()

mysqlSELECTNUM_OF_COURSE();

运行结果如图2所示:

图2【例4】运行结果

调用存储函数

调用另外一个存储函数或者存储过程

【例5】创建一个存储函数,通过调用存储函数

显示全部
相似文档