日期函数

注意:
date获取的是年月日、time是时分秒,时间戳就是二者结合
- 使用测试:
- 创建一张表记录生日并添加当前日期

发现,当创建表的字段指明的日期格式时,实际插入会截断,只插入有效的部分,虽然多个函数都可以使用,但最好使用最匹配的那一个,展示需求
- 创建一个留言表并插入数据

实际应用:查询在一定时间内发布的贴子,以两分钟为例

字符串函数

- 使用测试:
- 获取emp表的ename列的字符集

- 要求显示exam_result表中的信息,显示格式:"XXX的语文是XXX分,数学XXX分,英语XXX分"

- instr使用

两个参数都是字符串格式都需要用单引号 - 求学生表中学生姓名占用的字节数

注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关),utf8字符集下中文代表三个字符数 - 将EMP表中所有名字中有S的替换成'上海'

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

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

也可以采取拼接的方式:
select concat(lcase(substring(ename, 1, 1)),substring(ename,2)) from EMP;
数学函数

注意:
1.bin二进制函数中默认使用整数,当类型不匹配时会发生隐式类型转换
2.rand获取随机数,可以配合fomat格式化使用,再通过缩放,就可以获得任意区间内浮点数或整数的随机值
3.mod负数页正常取模
- 关于取整:

其它函数
- user() 查询当前用户

- md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串,一般用于生成密码,表中查询得到的数据是经过哈希映射之后的加密数据,固定32位不管原字符串长度等于多少

注意:历史命令中有设置,如果触发一些关键字如密码之类的,不会再提供给用户查看历史命令的权利,也就是按上下键不再回显,为了保证数据的隐私性和安全性
- database()显示当前正在使用的数据库
- password()函数,MySQL数据库使用该函数对用户加密

注意:
1.PASSWORD() 已被弃用:
MySQL 5.7 后推荐用 ALTER USER ... IDENTIFIED BY '密码' 直接设置密码(底层自动用更安全的算法加密),不再手动调用 PASSWORD();
2.MD5 不适合加密密码:
MD5 哈希易被暴力破解,敏感场景应使用 BCRYPT、SHA256 等更安全的算法;MD5 的核心价值是快速生成数据的轻量摘要,用于非敏感场景的完整性校验、唯一性标识,避开 "密码加密、高安全校验" 等场景即可合理发挥其优势。 - ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值

IFNULL 的核心场景是将 NULL 替换为有意义的默认值,保证数据展示、计算、逻辑判断的正确性与友好性,是处理 NULL 最常用的函数之一。