《第11章函数电子课件 MySQL数据库管理与应用.pptx》由会员分享,可在线阅读,更多相关《第11章函数电子课件 MySQL数据库管理与应用.pptx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第11章函数电子课件 MySQL数据库管理与应用第11章 函数主要内容11.1 函数概述11.2 创建函数11.3 调用函数11.4 查看函数11.5 修改函数11.6 删除函数11.7 MySQL系统函数11.8 本章小结11.1 函数概述函数又称为存储函数,是一种常见的数据库对象。函数和存储过程共同被称之为存储程序,它们之间有很多相似的地方。函数与存储过程一样,都是由声明式的SQL语句和过程式的SQL语句组成,并且可以被应用程序和SQL语句调用。11.1 函数概述它们之间有以下四点区别:在MySQL中,函数实现的功能对针对性较强,而存储过程实现的功能通常情况下更复杂。函数和存储过程一样可以
2、没有参数,但是如果函数有参数的话,只能有IN模式的输入参数,没有输出参数,因为函数自身就是输出参数,而存储过程既有输入参数又有输出参数。函数中必须包含一条RETURN语句,只能返回一个值或者一个结果集,而存储过程中不允许包含RETURN语句,可以返回一个或多个结果,或者没有返回结果只是完成了某个功能。函数不能用CALL语句来调用,可以作为语句的一部分来使用,而存储过程一般是作为一个独立的部分来执行,可以通过CALL语句来调用。11.2 创建函数11.2.1 使用命令创建函数语法格式:CREATE FUNCTION IF NOT EXISTS func_name(func_parameter,.
3、)RETURNS type characteristic.routine_body11.2 创建函数11.2.1 使用命令创建函数characteristic:指定存储过程的特性,有以下5个取值。LANGUAGE SQLNOT DETERMINISTICCONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA SQL SECURITYDEFINER|INVOKER COMMENT string11.2 创建函数11.2.1 使用命令创建函数【例11.1】创建一个函数,根据学生学号返回该学生的选课数量。在MySQL命令行客户端输入命令:DELIMI
4、TER /CREATE FUNCTION count_num(p_sno CHAR(11)RETURNS INTBEGIN DECLARE v_num INT;SELECT COUNT(*)INTO v_num FROM score WHERE sno=p_sno;RETURN v_num;END /DELIMITER ;11.2 创建函数11.2.1 使用命令创建函数【例11.2】创建一个函数,根据给定的课程号查找并返回该课程名称,如果没有找到该课程则返回“没有该门课程信息”。在MySQL命令行客户端输入命令:DELIMITER /CREATE FUNCTION fun_find(p_cno
5、 CHAR(3)RETURNS VARCHAR(20)BEGIN DECLARE v_cname VARCHAR(10);SELECT cname INTO v_cname FROM course WHERE cno=p_cno;IF v_cname IS NULL THEN RETURN 没有该门课程信息;ELSE RETURN v_cname;END IF;END/DELIMITER ;11.2 创建函数11.2.2 使用图形化工具创建函数打开Workbench工具,连接到MySQL服务器。选中“Schemas”标签,打开“jwgl”数据库,找到“Functions”选项,右键单击“Cre
6、ate Functions.”菜单项,或者直接单击工具栏的 图标,出现如图所示界面。在该界面中填写相应的函数语句(注意:在该界面中不需要输入DELIMITER语句),然后单击“Apply”,此时出现查看存储过程的SQL脚本的界面。确认无误后单击右下角的“Apply”,在出现的界面中单击“Finish”,此时函数创建成功。11.3 调用函数11.3.1 使用命令调用函数语法格式:SELECT func_name(func_parameter,.)【例11.4】调用函数count_num和fun_find。在MySQL命令行客户端输入命令:SELECT count_num(20190101001)
7、;SELECT sno,count_num(sno)FROM student;SELECT fun_find(101),fun_find(111);11.3 调用函数11.3.2 使用图形化工具调用函数打开WorkBench工具,连接到MySQL服务器。选 中“Schemas”标 签,打 开“jwgl”数 据 库 下 的“Functions”选 项,找 到 想 要 调 用 的 函 数 名 称,如count_num,单击其右侧的 图标,此时出现调用函数的界面,如图所示。11.3 调用函数11.3.2 使用图形化工具调用函数在上图中输入参数20190101001后,单击“Execute”,出现下图
8、所示界面。11.4 查看函数11.4.1 使用命令查看函数使用命令查看函数和查看存储过程一样,也有三种方式:通过SHOW STATUS语句查看函数的状态、通过SHOW CREATE语句查看函数当前的定义语句、从routines表中查看函数的相关信息。11.4 查看函数11.4.1 使用命令查看函数【例11.4】查看自定义函数count_num。在MySQL命令行客户端输入命令:SHOW FUNCTION STATUS LIKE count_numGSHOW CREATE FUNCTION count_num GSELECT*FROM information_schema.routinesWHE
9、RE routine_name=count_num AND routine_type=FUNCTION G11.4 查看函数11.4.2 使用图形化工具查看函数打开WorkBench工具,连接到MySQL服务器。选中“Schemas”标签下的“jwgl”数据库,单击其右边的 图标,或者单击工具栏的 图标,进入如图1所示界面。单击“Functions”标签,可以看到操作jwgl数据库的所有函数的特性信息,如图2所示。11.5 修改函数11.5.1 使用命令修改函数语法格式:ALTER FUNCTION func_name characteristic使用ALTER FUNCTION语句可以修改函
10、数的特性,但不能修改函数的参数和函数体的定义语句。如果想修改函数的参数或者函数体的定义语句,则需要先删除再新建一个函数。11.5 修改函数11.5.2 使用图形化工具修改函数打开WorkBench工具,连接到MySQL服务器。在“Functions”下找到想要修改的函数名称,单击其右侧的 图标,或者右键单击要修改的函数,在出现的子菜单中找到“Alter Function”并单击,此时出现修改函数的界面,如图所示。修改完成后单击“Apply”,出现修改后的函数的脚本,在该界面中再次单击“Apply”和“Finish”,即可完成修改操作。11.6 删除函数11.6.1 使用命令删除函数语法格式:D
11、ROP PROCEDURE|FUNCTION IF EXISTS func_name【例11.5】删除函数count_num。在MySQL命令行客户端输入命令:DROP FUNCTION count_num;11.6 删除函数11.6.2 使用图形化工具删除函数打开Workbench工具,连接到MySQL服务器。打开“Functions”可以看到当前数据库下所有的函数,选中你想要删除的函数名称,右键单击“Drop Function”选项,弹出如图所示界面在该弹出的对话框中,“Review SQL”选项可以看到删除该函数的SQL代码,然后再单击“Execute”即可完成删除操作;或者在所示界面中
12、单击“Drop Now”选项,即可直接删除该存储过程。11.7 MySQL系统函数MySQL提供了很多功能强大的内置函数,我们称之为MySQL系统函数。这些系统函数可以帮助用户更加方便快捷地处理表中的数据,熟悉掌握它们,可以极大地提高用户对数据库的管理效率。MySQL系统函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数和其他特殊函数。11.7 MySQL系统函数11.7.1 数学函数数学函数主要用来处理数字,包括整型、浮点型数据等。ABS(x)函数CEIL(x)函数、CEILING(x)函数和FLOOR(x)函数RAND()函数和RAND(x)函数TRUNCA
13、TE(x,y)函数ROUND(x)函数和ROUND(x,y)函数11.7 MySQL系统函数11.7.2 字符串函数字符串函数主要用来处理数据库中的字符串。CONCAT(s1,s2,.)函数和CONCAT_WS(x,s1,s2,.)函数INSERT(s1,x,len,s2)函数LEFT(s,n)函数和RIGHT(s,n)函数TRIM(s)函数、LTRIM(s)函数和RTRIM(s)函数SUBSTRING(s,n,len)函数REVERSE(s)函数REPLACE(s,s1,s2)函数11.7 MySQL系统函数11.7.3 日期和时间函数日期和时间函数主要用来日期和时间进行处理。CURDATE
14、()函数和CURRENT_DATE()函数CURTIME()函数和CURRENT_TIME()函数NOW()函数和SYSDATE()函数YEAR(d)函数和MONTH(d)函数DATEDIFF(d1,d2)函数DATE_FORMAT(d,f)函数11.7 MySQL系统函数11.7.4 其他特殊函数IFNULL(v1,v2)函数IF(expr,v1,v2)函数VERSION()函数和DATABASE()函数USER()函数和CURRENT_USER()函数FORMAT(x,n)函数11.8 本章小结本章详细介绍了MySQL中用户自定义函数的管理操作,包括 创建函数、查看函数、删除函数和调用函数。函数的管理和 存储过程的管理是比较相似的,大家可以通过比较函数和存 储过程的相似点、区别来学习这两章内容。本章末尾介绍了常用的MySQL系统函数,熟练掌握这些函数 可以极大提高用户对数据库的管理效率。