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,三目运算符的作用

相关推荐
cr7xin13 分钟前
缓存查询逻辑及问题解决
数据库·redis·后端·缓存·go
何中应18 分钟前
Oracle数据库安装(Windows)
java·数据库·后端·oracle
遇见你的雩风39 分钟前
【MySQL】--- 视图
数据库·mysql
Thepatterraining1 小时前
大厂架构师揭秘:MySQL缓冲池为什么不用mmap?LRU-K算法详解
数据库·mysql
LB21121 小时前
Redis黑马点评 分布式锁
数据库·redis·分布式
无敌最俊朗@1 小时前
SQlite:电影院售票系统中的主键(单列,复合)约束应用
java·开发语言·数据库
全栈工程师修炼指南1 小时前
DBA | Oracle 数据备份迁移之数据泵 expdp/impdp 工具实战指南
数据库·oracle·dba
迷了璐的航1 小时前
mybatis解决查询中使用group by时出现sql_mode=only_full_group_by
数据库·sql·mybatis
金仓拾光集1 小时前
「安全升级 + 零代码平替」金仓数据库如何实现MongoDB社交动态发布系统的无缝迁移?
数据库·安全·mongodb·kingbase·kingbasees·数据库平替用金仓·金仓数据库
金仓拾光集1 小时前
告别“凭感觉”告警,金仓数据库替换MongoDB让运维更精准
运维·数据库·mongodb·kingbase·数据库平替用金仓·金仓数据库·kingbasees·