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

相关推荐
C吴新科4 分钟前
MySQL入门操作详解
mysql
Ai 编码助手3 小时前
MySQL中distinct与group by之间的性能进行比较
数据库·mysql
陈燚_重生之又为程序员3 小时前
基于梧桐数据库的实时数据分析解决方案
数据库·数据挖掘·数据分析
caridle3 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
白云如幻3 小时前
MySQL排序查询
数据库·mysql
萧鼎3 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
^velpro^3 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋33 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
荒川之神3 小时前
ORACLE _11G_R2_ASM 常用命令
数据库·oracle
IT培训中心-竺老师3 小时前
Oracle 23AI创建示例库
数据库·oracle