数据库技术项目式教程(MySQL)课件 任务8.1使用函数.pptx
使用函数;任务提出;任务分析;(1)数学函数;(2)字符串函数;(2)字符串函数;(3)日期和时间函数;(3)日期和时间函数;(4)控制流程函数;【例1】在School数据库中查询出所有学生学号、学生姓名、课程编号、课程名称、期末成绩,要求期末成绩显示为五级制。
SELECTStudent.Sno,Sname,Course.Cno,Cname,
(CASEWHENEndscore=90THEN优秀
WHENEndscore=80THEN良好
WHENEndscore=70THEN中等
WHENEndscore=60THEN及格
WHENEndscore60THEN‘不及格
END)AS成绩
FROMStudentJOINScoreONStudent.Sno=Score.Sno
JOINCourseONCourse.Cno=Score.Cno;;【例2】CASE的独到用处——行转列功能。
统计每个班级男生人数和女生人数。
;【例2】统计每个班级男生人数和女生人数。
SELECTClassNo,SUM(CASEsexWHEN男THEN1ELSE0END)AS男生人数,SUM(CASEsexWHEN女THEN1ELSE0END)AS女生人数
FROMStudent
GROUPBYClassNo;
;(5)其他常用函数;2.用户自定义函数;(1)创建函数;DELIMITER语句;【例3】在School数据库中创建函数calculate_age,根据输入的出生日期计算年龄。
DELIMITER//
CREATEFUNCTIONcalculate_age(birthdate)RETURNSINT
BEGIN
RETURNTIMESTAMPDIFF(YEAR,birth,CURDATE());
END;
//
DELIMITER;
#使用该函数查询出所有学生的学号、姓名和年龄。
SELECTSno,Sname,calculate_age(birth)asage
FROMStudent;;(2)管理函数;【练习1】创建函数rand_num,根据输入的整数n,返回一个1至n之间的随机整数。;任务总结