MySQL数据库应用技术与实战电子教案 单元6 MySQL函数_第1页
MySQL数据库应用技术与实战电子教案 单元6 MySQL函数_第2页
MySQL数据库应用技术与实战电子教案 单元6 MySQL函数_第3页
MySQL数据库应用技术与实战电子教案 单元6 MySQL函数_第4页
MySQL数据库应用技术与实战电子教案 单元6 MySQL函数_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单元6MySQL函数课程名称:MYSQL数据库应用课程类别:必修适用专业:计算机技术类相关专业总学时:64学时(其中理论31学时,实践33学时)总学分:4.0学分本章学时:4学时(其中理论2学时,实践2学时)学情分析:学生已完成单元五的学习,掌握了视图和索引的创建与管理,能够利用视图简化查询、利用索引提升查询效率。在前面的单元中,学生已经接触过MD5()加密函数、聚合函数等少量函数,对“函数”的概念有了初步感知,但对MySQL系统提供的大量内置函数缺乏系统认识。在实际项目中,数据处理(如格式化日期、截取字符串、四舍五入计算等)都离不开函数。本单元将系统学习数学函数、字符串函数、日期和时间函数以及系统信息函数四大类常用函数。函数种类较多、语法相近,学生容易出现混淆,需要分类对比、结合任务练习。材料清单《MYSQL数据库应用技术与实战(微课版)》教材。配套PPT。代码及SQL脚本。引导性提问。探究性问题。拓展性问题。教学目标与基本要求教学目标先掌握常用数学函数和字符串函数的使用方法,然后掌握常用日期和时间函数的使用方法,最后了解常用的系统信息函数,能够在查询和业务处理中灵活运用各类函数。基本要求掌握常用数学函数的使用方法掌握常用字符串函数的使用方法掌握常用日期和时间函数的使用方法掌握常用系统信息函数的使用方法问题引导性提问引导性提问需要教师根据教材内容和学生实际水平,提出问题,启发引导学生思考和解决问题,帮助学生理解掌握知识,提升专业实践能力。在查询学生成绩时,平均分可能是一个很长的小数,如何让平均分只保留两位小数显示?为了保护学生隐私,在显示学生姓名时想把中间的字用“*”代替,可以用什么函数实现?根据学生的出生日期计算年龄,可以用什么日期函数?探究性问题探究性问题需要教师深入钻研教材的基础上精心设计,在提问的角度或者在引导性提问的基础上,从重点、难点问题切入,进行插入式提问。或者是对引导式提问中尚未涉及但在课文中又是重要的问题加以设问。LENGTH()和CHAR_LENGTH()都可以统计字符数量,它们有什么区别?在统计中文时结果一样吗?ROUND()、CEIL()、FLOOR()、TRUNCATE()都可以对数值进行近似处理,它们的舍入规则有什么区别?DATEDIFF()和TIMESTAMPDIFF()在计算日期差值时有什么不同?NOW()和CURDATE()返回的结果有什么不同?分别适用于什么场景?拓展性问题拓展性问题需要教师深刻理解教材的意义、学生的学习动态后,根据学生学习层次,提出切实可行的关乎实际的可操作问题。亦可以提供拓展资料供学生研习探讨,完成拓展性问题。字符串函数CONCAT()和CONCAT_WS()在拼接字符串时有什么区别?在项目中,通常如何利用DATE_FORMAT()函数格式化日期输出?请举例说明。系统信息函数USER()、DATABASE()、VERSION()在数据库连接管理和运维中有哪些实际应用?主要知识点、重点与难点主要知识点数学函数(ABS/CEIL/FLOOR/ROUND/TRUNCATE等)字符串函数(LENGTH/CHAR_LENGTH/UPPER/SUBSTRING/REPLACE/TRIM等)日期和时间函数(NOW/DATEDIFF/ADDATE/DAYOFWEEK/DATE_FORMAT等)系统信息函数(VERSION/USER/DATABASE/CHARSET等)重点ROUND、CEIL、FLOOR、TRUNCATE等数学函数的舍入规则LENGTH与CHAR_LENGTH的区别SUBSTRING截取字符串、REPLACE替换、TRIM去除空格等常用字符串函数NOW、DATEDIFF、DATE_FORMAT等日期和时间函数的用法VERSION、USER、DATABASE等系统信息函数的使用难点LENGTH与CHAR_LENGTH在中文环境下的区别ROUND、CEIL、FLOOR、TRUNCATE舍入规则的区分DATEDIFF计算日期差与DATE_FORMAT格式化日期的应用函数与查询语句、其他函数的嵌套使用教学过程设计第一次课(4课时:理论2学时+实践2学时)理论教学(2课时,80分钟)第1课时数学函数与字符串函数(40分钟)1.课堂导入(5分钟)回顾单元四中使用的AVG()等聚合函数。提问:“统计平均分后,结果可能是85.3333……这样的长小数,如何让结果只显示两位小数?学生的姓名如何实现部分隐藏?”引出本课主题——MySQL内置函数,函数可以在查询语句中直接对数据进行加工处理。2.数学函数(15分钟)讲解常用数学函数及其作用:(1)ABS(x):求x的绝对值。示例:SELECTABS(-5);结果为5。(2)CEIL(x):向上取整,返回不小于x的最小整数。示例:SELECTCEIL(3.2);结果为4。(3)FLOOR(x):向下取整,返回不大于x的最大整数。示例:SELECTFLOOR(3.8);结果为3。(4)ROUND(x):四舍五入取整。ROUND(x,d):四舍五入保留d位小数。示例:SELECTROUND(3.14159,2);结果为3.14。(5)TRUNCATE(x,d):直接截断,保留d位小数,不进行四舍五入。示例:SELECTTRUNCATE(3.14159,2);结果为3.14;SELECTTRUNCATE(3.149,2);结果仍为3.14。(6)MOD(x,y):求x除以y的余数,等价于x%y。示例:SELECTMOD(10,3);结果为1。逐一演示每个函数的执行结果,重点对比ROUND与TRUNCATE的舍入区别、CEIL与FLOOR的取整方向。结合成绩统计场景:SELECTROUND(AVG(score),2)FROMstuscore;保留平均分两位小数。3.字符串函数(15分钟)讲解常用字符串函数及其作用:(1)LENGTH(str):返回字符串的字节长度。在UTF-8字符集下,一个汉字占3个字节。示例:SELECTLENGTH(‘MySQL’);结果为5;SELECTLENGTH(‘数据库’);结果为9。(2)CHAR_LENGTH(str):返回字符串的字符个数。示例:SELECTCHAR_LENGTH(‘数据库’);结果为3。强调:统计字符个数时应使用CHAR_LENGTH,字节长度使用LENGTH。(3)UPPER(str)/LOWER(str):将字符串转换为大写/小写。示例:SELECTUPPER(‘mysql’);结果为MYSQL。(4)SUBSTRING(str,pos,len):从str的第pos个字符开始截取长度为len的子串。示例:SELECTSUBSTRING(‘MySQL数据库’,6,2);结果为‘数据’。(5)REPLACE(str,from,to):将str中所有from替换为to。示例:SELECTREPLACE(‘MySQL数据库’,‘MySQL’,‘Mysql’);(6)TRIM(str):去除字符串两端的空格。示例:SELECTTRIM(‘MySQL’);结果为MySQL。(7)CONCAT(str1,str2,...):拼接多个字符串。示例:SELECTCONCAT(‘MySQL’,‘数据库’);结果为‘MySQL数据库’。逐一演示,结合学生姓名隐藏场景:SELECTCONCAT(SUBSTRING(stuName,1,1),‘*’,SUBSTRING(stuName,3,1))FROMstuinfo;将姓名第二个字替换为“*”。4.课堂小结(5分钟)总结本课核心知识:数学函数中ABS取绝对值、CEIL向上取整、FLOOR向下取整、ROUND四舍五入(可指定小数位)、TRUNCATE直接截断、MOD取余;字符串函数中LENGTH按字节统计、CHAR_LENGTH按字符统计、SUBSTRING截取、REPLACE替换、TRIM去空格、CONCAT拼接。强调:统计中文字符个数使用CHAR_LENGTH,统计占用字节数量,则使用LENGTH。第2课时日期和时间函数与系统信息函数(40分钟)1.复习导入(5分钟)快速回顾数学函数和字符串函数。提问:“学生档案信息表中有出生日期字段,如何计算每个学生的年龄?如何查询本周有哪些日期?如何把日期显示成‘2026年08月21日’这样的格式?”引出本课主题——日期和时间函数。2.日期和时间函数(20分钟)讲解常用日期和时间函数及其作用:(1)NOW():返回当前日期和时间,格式为YYYY-MM-DDHH:MM:SS。示例:SELECTNOW();(2)CURDATE():返回当前日期,格式为YYYY-MM-DD。CURTIME():返回当前时间,格式为HH:MM:SS。(3)YEAR(date)/MONTH(date)/DAY(date):分别提取日期中的年、月、日。示例:SELECTYEAR(NOW());(4)DATEDIFF(date1,date2):返回两个日期相差的天数(date1减date2)。示例:SELECTDATEDIFF(NOW(),‘2026-09-01’);计算距离9月1日还有多少天。(5)ADDATE(date,n)/DATE_ADD(date,INTERVALn单位):在日期上增加指定时间。示例:SELECTADDATE(‘2026-08-21’,10);结果为2026-08-31。(6)DAYOFWEEK(date):返回日期是星期几(1为星期日,7为星期六)。(7)DATE_FORMAT(date,format):按指定格式输出日期。示例:SELECTDATE_FORMAT(NOW(),‘%Y年%m月%d日’);结果为‘2026年08月21日’。结合年龄计算场景:SELECTstuName,YEAR(NOW())-YEAR(birthDate)AS年龄FROMstudetail;使用当前年份减去出生年份计算年龄。演示DATE_FORMAT的常用格式符:%Y四位年份、%y两位年份、%m两位月份、%d两位日期、%H/%h时、%i分、%s秒。3.系统信息函数(10分钟)讲解常用系统信息函数及其作用:(1)VERSION():返回MySQL服务器的版本号。示例:SELECTVERSION();返回如8.0.36。(2)USER():返回当前登录的用户名和主机名。示例:SELECTUSER();返回如root@localhost。(3)DATABASE():返回当前使用的数据库名称。示例:SELECTDATABASE();未选择数据库时返回NULL。(4)CHARSET(str):返回字符串使用的字符集。示例:SELECTCHARSET(‘MySQL’);返回utf8mb4等。逐一演示,说明系统信息函数在运维和调试中的用途:查看服务器版本判断是否支持新特性、确认当前连接用户、确认当前所在数据库等。4.课堂小结(5分钟)总结本课核心知识:日期和时间函数中NOW/CURDATE获取当前日期时间、YEAR/MONTH/DAY提取日期部分、DATEDIFF计算日期差、ADDATE日期加运算、DAYOFWEEK判断星期、DATE_FORMAT格式化日期输出;系统信息函数VERSION/USER/DATABASE/CHARSET用于获取服务器和连接环境信息。下节课将在实践课中综合运用这些函数完成任务书练习。实践教学(2课时,80分钟)1.任务导入(5分钟)明确本节课的实践任务:完成任务书6.1~6.4,包括使用ROUND函数保留平均分两位小数、使用字符串函数隐藏学生姓名第二个字、使用日期函数计算学生年龄、使用VERSION函数检测MySQL版本。四个任务分别对应本单元四大类函数。2.任务书6.1演示与实操:ROUND保留平均分两位小数(20分钟)演示任务:查询各科目的平均分并保留两位小数——SELECTsubject,ROUND(AVG(score),2)AS平均分FROMstuscoreGROUPBYsubject;对比演示不加ROUND的结果,让学生观察小数位数的差异;再演示TRUNCATE(AVG(score),2)与ROUND的区别,加深对两种函数舍入规则的理解。学生自主完成任务,巡回指导,重点关注:ROUND第二参数(保留小数位数)的使用、与GROUPBY和聚合函数的配合。要求截图保存执行结果。3.任务书6.2演示与实操:字符串函数隐藏学生姓名第二个字(20分钟)演示任务:查询学生信息时隐藏姓名第二个字——SELECTCONCAT(SUBSTRING(stuName,1,1),‘*’,SUBSTRING(stuName,3,CHAR_LENGTH(stuName)-2))AS姓名FROMstuinfo;用“*”替换第二个字,其余字符保留。讲解实现思路:SUBSTRING取第一个字、SUBSTRING从第3个字符取剩余部分、CONCAT拼接并插入“*”;说明为什么要用CHAR_LENGTH而不是LENGTH。学生自主完成任务,巡回指导,重点关注:SUBSTRING的起始位置和长度参数、CONCAT拼接顺序。要求截图保存执行结果。4.任务书6.3演示与实操:日期函数计算学生年龄(20分钟)演示任务:根据学生出生日期计算年龄——SELECTstuNo,stuName,birthDate,YEAR(NOW())-YEAR(birthDate)AS年龄FROMstudetail;讲解计算逻辑:用当前年份减去出生年份得到年龄;说明该方法未考虑月份,若要精确计算可结合DATE_FORMAT或TIMESTAMPDIFF函数:SELECTTIMESTAMPDIFF(YEAR,birthDate,NOW())AS精确年龄FROMstudetail;演示DATE_FORMAT格式化日期:SELECTDATE_FORMAT(NOW(),‘%Y年%m月%d日’);观察输出格式。学生自主完成任务,巡回指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论