![MySQL 8从入门到精通(视频教学版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/737/26542737/b_26542737.jpg)
6.10 综合案例——MySQL函数的使用
本章为读者介绍了大量的MySQL函数,包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统函数、加密函数以及其他函数。读者应该在实践过程中深入了解、掌握这些函数。不同版本的MySQL之间的函数可能会有微小的差别,使用时需要查阅对应版本的参考手册,但大部分函数功能在不同版本的MySQL之间是一致的。接下来,将给出一个使用各种MySQL函数的综合案例。
1.案例目的
使用各种函数操作数据,掌握各种函数的作用和使用方法。
2.案例操作过程
步骤01 使用数学函数RAND()生成3个10以内的随机整数。
RAND()函数生成的随机数在0~1之间,要生成0~10的随机数,RAND()需要乘以10,如果要求是整数,则必须舍去结果的小数部分。在这里使用ROUND()函数的执行过程如下:
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/189.jpg?sign=1739271487-9ulrzSenFRrR5UepA5KfSRvL3nFnNDU4-0-f3b55b8ce1770ee64ee09261cda0b1b3)
步骤02 使用SIN()、COS()、TAN()、COT()函数计算三角函数值,并将计算结果转换成整数值。
在MySQL中,三角函数计算出来的值并不一定是整数值,需要使用数学函数将其转换为整数,可以使用的数学函数有ROUND()、FLOOR()等,执行过程如下:
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/190.jpg?sign=1739271487-XfyT8DJrOSBd6DyKHF65hfCfUIbmo4vr-0-c02b4b55f8c8ff7c6e9d81dfbb2e19ca)
步骤03 创建表,并使用字符串和日期函数对字段值进行操作。
(1)创建表member,其中包含5个字段,分别为AUTO_INCREMENT约束的m_id字段、VARCHAR类型的m_FN字段、VARCHAR类型的m_LN字段、DATETIME类型的m_birth字段和VARCHAR类型的m_info字段。
(2)插入一条记录,m_id值为默认,m_FN值为“Halen”,m_LN值为“Park”,m_birth值为1970-06-29,m_info值为“GoodMan”。
(3)返回m_FN的长度,返回第1条记录中的人的全名,将m_info字段值转换成小写字母。将m_info的值反向输出。
(4)计算第1条记录中人的年龄,并计算m_birth字段中的值在那一年中的位置,按照“Saturday 4th October 1997”格式输出时间值。
(5)插入一条新的记录,m_FN值为“Samuel”,m_LN值为“Green”,m_birth值为系统当前时间,m_info为空。使用LAST_INSERT_ID()查看最后插入的ID值。
操作过程如下:
(1)创建表member,输入语句如下:
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/191.jpg?sign=1739271487-KRlGiStEZk6MPQrBvmpVyYJZE2JaQNdX-0-97e0d080e122089256e6eff07fd77b6a)
(2)插入一条记录,输入语句如下:
INSERT INTO member VALUES (NULL, 'Halen ', 'Park', '1970-06-29', 'GoodMan ');
使用SELECT语句查看插入结果:
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/192.jpg?sign=1739271487-71LmZkEZ3jx2QBvcBP061jmCuDSr2mIu-0-93bb90bcace1b3ead55c5d673add2780)
(3)返回m_FN的长度,返回第1条记录中人的全名,将m_info字段值转换成小写字母,将m_info的值反向输出:
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/196.jpg?sign=1739271487-JWqJaWNDncsbNGjcH5UJjDYOPydNMtOr-0-0054b7b3cd3cc09474c335af23c5ec5c)
执行结果如下:
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/193.jpg?sign=1739271487-3yiI0YkAQ8jH8sEGgS5nBLz4gYJrvmYk-0-c32d7dca8c4d3e766460eb548cfd2f36)
(4)计算第1条记录中人的年龄,并计算m_birth字段中的值在那一年中的位置,按照“Saturday 4th October 1997”格式输出时间值。
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/194.jpg?sign=1739271487-tNUxEL4ffZrAGsUJvpkTaxmkvqFYUC8N-0-3907e79d9a68ce911b68c20352402c5d)
语句执行结果如下:
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/195.jpg?sign=1739271487-YWDZDJSDb3pM7yBTAHpitCaHcucUUQAZ-0-f601716c56b1cfe07b23282ff4c2688b)
(5)插入一条新的记录,m_FN值为“Samuel”,m_LN值为“Green”,m_birth值为系统当前时间,m_info为空。
mysql>INSERT INTO member VALUES (NULL, 'Samuel', 'Green', NOW(),NULL);
使用SELECT语句查看插入结果:
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/197.jpg?sign=1739271487-RZfAp0hkH5hjHtAVy8JyLFeX4uSvNXKX-0-9e7f054f6798a58895e85a7c5a60f1f1)
可以看到,表中现在有两条记录,接下来使用LAST_INSERT_ID()函数查看最后插入的ID值,输入语句如下:
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/198.jpg?sign=1739271487-4w7pq9Cak7PrGMb73wDfBd1pm0cy7ItX-0-092b070f749c401fa176a26bd22384dd)
最后插入的为第二条记录,其ID值为2,因此返回值为2。
步骤04 使用CASE进行条件判断,如果m_birth小于2000年就显示“old”,如果m_birth大于2000年就显示“young”,输入语句如下:
![](https://epubservercos.yuewen.com/76103A/15056702904172406/epubprivate/OEBPS/Images/199.jpg?sign=1739271487-2ZGmn8QItuPTBwiuByA134GtxGM5qeWh-0-1d298ed16154dd6db224b91fa999685c)