【MySQL】内置函数

日期函数

注意:

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 最常用的函数之一。
相关推荐
Codeking__6 小时前
Redis的value类型介绍——list
数据库·redis·缓存
香气袭人知骤暖6 小时前
MVCC为什么不能完全解决幻读问题
数据库·oracle
东方巴黎~Sunsiny6 小时前
mysql大表空间整理注意点
数据库·mysql
難釋懷6 小时前
Redis简单介绍
数据库·redis·缓存
lifejump6 小时前
Pikachu | SQL-inject
数据库·sql
C-20026 小时前
Casdoor 容器部署并实现 JumpServer 对接 CAS
数据库
ChineHe6 小时前
Redis数据类型篇003_详解Lists列表类型及其命令
数据库·redis·缓存
AllData公司负责人7 小时前
AllData数据中台-数据同步平台集成开源项目Seatunnel-Web,完成Mysql到Doris同步流程
数据库·mysql·开源
Mr.Entropy7 小时前
数据库读写分离介绍
数据库
Codeking__7 小时前
Redis的value类型及编码方式介绍——string
数据库·redis·缓存