【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 最常用的函数之一。
相关推荐
半杯咖啡半行码17 分钟前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略
数据库·qt
Yyyyyy~19 分钟前
[ Mysql ] 库的操作
mysql
小米里的大麦37 分钟前
16 MySQL 事务
数据库·mysql
西柚小萌新38 分钟前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
Titan20241 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
邓工说电2 小时前
智慧断路器安全吗?数据加密、离线保护与合规认证全解读
大数据·数据库·人工智能·智能断路器·炜晔科技
for_ever_love__2 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
adinnet20262 小时前
企业微调大模型(Fine-tuning):先吃透 RAG 还是先训自己的模型
大数据·数据库
上位机妹子3 小时前
EF Core 两种继承映射:每层次一张表(TPH)与每类型一张表(TPT)
数据库·c#·.netcore·ef core
小马同学-3 小时前
Redis消息队列与客户端编程
数据库·redis