MySQL·内置函数

目录

函数

日期函数

案例1:创建一张表,记录生日

案例2:创建一个留言表

案例3:请查询在2分钟内发布的帖子

字符串函数

[案例1: 获取emp表的ename列的字符集](#案例1: 获取emp表的ename列的字符集)

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

案例3:求学生表中学生姓名占用的字节数

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

案例5:截取EMP表中ename字段的第二个到第三个字符

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

数学函数

补充:向上取整与向下取整的理解

其他函数


函数

日期函数

通常日期就是指的年月日,时间就是指的时分秒,下面是使用案例

now() 和 current_timestamp()的使用是一样的

date()可以用来提前时间的左半部分

里面也可以跟函数

date_add() 同理里面也可以跟着函数

有增加自然就有减去 date_sub()

计算两个年份之间相差多少天数,datediff() ,这个就是前者与后者相减,所以可以为负数

案例1:创建一张表,记录生日

首先创建一张表来进行测试

插入两条数据

使用函数进行插入

使用current_time()也可以插入,不过会警告,因为用错了

当然你去使用current_timestamp()时间戳也行,就像编程那边的隐式类型转换,不过实际使用是不建议这样去插入的

案例2:创建一个留言表

同理我们创建一张表进行测试

插入数据

查看数据,只需要看日期的话,可以使用函数

案例3:请查询在2分钟内发布的帖子

使用上一个案例的表做演示

字符串函数

charset:查看字符集

concat:字符拼接函数

instr:查看目标字符在原字符串中的位置,下标从1开始,没找到就返回0

ucase和lcase:转化大小写

left:提前字符,后者跟着提前长度

当然也有right函数

length:显示字符串的长度

ltrim与rtrim:去除左边\右边的空格

通常用在用户进行输入的时候会不小心输入空格,程序员就可以用这个进行去除

案例1: 获取emp表的ename列的字符集

使用上一篇文章使用的表结构进行演示,使用场景:排查错误乱码,通乱码一般是由于编码格式的不同所造成的,所以排除编码错误通常可以解决此类问题

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

找到之前文章中所用的一张表结构

利用concat进行拼接

案例3:求学生表中学生姓名占用的字节数

这里也可以看出来一个中文占3个字节,注意不要和字符数搞错了

注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;

如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数

(与字符集编码有关)

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

还是使用这张员工表

我们把查询结果进行了替换,当然这里指的是查询结果,实际上,原表是没有进行修改的

案例5:截取EMP表中ename字段的第二个到第三个字符

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

第一步:截取左右俩个部分

第二步:将其首字母小写化

第三步:拼接

数学函数

abs:绝对值

bin:转为二进制显示

hex:转为十六进制显示

conv:从一个进制转为另一个进制

format:格式化显示

mod:取模

rand:随机数(0~1浮点数随机)

当然你可以嵌套其他的函数来随机到你想要的数据

ceiling与floor:向上向下取整

补充:向上取整与向下取整的理解

ceiling:向上取整(即向数值变大的方向取整)

这个在银行中就是使用的向上取整

floor:向下取整(即使数值变小的取整)

其他函数

user() 查询当前用户

不过因为还没有配置登入机,没有用户,目前是使用免密码登入的,后序再对这方面进行介绍

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

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

就是对数据进行摘要,数据库中保存密码之类的敏感数据是不能直接进行插入保存的,通常需要对其进行加密操作,这里的md5,虽然不是加密,但是也算是第一个防止数据泄露的防范措施了

创建一张表

一般来说都是像第二种插入的方式

我们查询当然也要进行md5摘要操作

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

通常我们在数据库进行加密操作是用这个函数来进行的,同理它加密出来的也是等长的

ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值

这个很像C++中 a==b? a : b,三目运算符的作用

相关推荐
MAGICIAN...1 天前
【Redis】--持久化机制
数据库·redis·缓存
我真的是大笨蛋1 天前
JVM调优总结
java·jvm·数据库·redis·缓存·性能优化·系统架构
步步为营DotNet1 天前
5-2EFCore性能优化
数据库·性能优化·.net
2501_920047031 天前
Redis-集群
数据库·redis·bootstrap
半夏陌离1 天前
SQL 拓展指南:不同数据库差异对比(MySQL/Oracle/SQL Server 基础区别)
大数据·数据库·sql·mysql·oracle·数据库架构
旋转的油纸伞1 天前
SQL表一共有几种写入方式
数据库·sql
半夏陌离1 天前
SQL 入门指南:排序与分页查询(ORDER BY 多字段排序、LIMIT 分页实战)
java·前端·数据库
isyoungboy1 天前
SQL高效处理海量GPS轨迹数据:人员gps轨迹数据抽稀实战指南
数据库·sql
敬业小码哥1 天前
记一次:mysql的json及json数组使用组合使用
数据库·mysql·json
练小杰1 天前
【Mysql-installer-community-8.0.26.0】Mysql 社区版(8.0.26.0) 在Window 系统的默认安装配置
数据库·sql·mysql·adb·配置文件·mysql安装·关系型数据库