平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“MySQL数据库内置函数图文教程”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
函数
日期函数


获得年月日:

获得时分秒:

获得时间戳

当前时间

得到日期部分

添加日期或时间

减去日期或时间

两个日期的差值
案例:
新建一个留言表:

插入数据:


- 显示所有留言信息,发布日期只显示日期,不用显示时间

- 请查询在10分钟内发布的帖子

字符串函数

案例:

拿到emp表的ename列的字符集

拼接字符串

得到substring在string中出现的位置,注意下标从1开始。

从参数1里取4个字符。

结合项目来看,显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”

求学生表中学生姓名占用的字节数
注意:length函数得到字符串长度,以字节为单位。如果是多字节字符则计算多个字节数; 如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数 (与字符集编码有关)

将EMP表中所有名字中有S的替换成'上海'

截取EMP表中ename字段的第二个到第三个字符

以首字母小写的方式显示所有员工的姓名


从实现思路看,trim去掉左右两边的空格,ltrim去掉左边的空格,rtrim去掉右边的空格。
数学函数


绝对值

保留4位小数。

结合项目来看,如上图,当数是3.1和3.9时,向上取整就是4。当数是-3.1和-3.9时,向上取整就是-3。所以向上取整就是往大里取整。向下取整同理。

其它函数

user() 查询当前用户

database()显示当前正在采用的数据库

从实现思路看,数据库中如果有密码等信息,最好要加密,能够用md5(),这样就不担心密码泄露了。

md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串

未来要查找该用户时,密码也同样需采用md5摘要才能找到该用户。

password()函数,MySQL数据库采用该函数对用户加密

结合项目来看,ifnull(val1, val2) 如果val1为null,得到val2,否则得到val1的值
总结
在这个场景下,总的来说,mysql内置函数实例适合结合实际项目边做边理解。先抓住核心思路,再逐步补上细节和边界处理,最后效果会更稳定,也更容易复用。
