MySQL内置函数

文章目录

  • 前言
  • 一、MySQL内置函数
    • 1、日期函数
    • 2、字符串函数
    • 3、数学函数
    • 4、其它函数


前言


一、MySQL内置函数

1、日期函数

MySQL内置函数_第1张图片
*current_函数使用
MySQL内置函数_第2张图片
date函数使用
会返回参数的日期部分。
MySQL内置函数_第3张图片

date_add和date_sub使用
我们看到可以在内置函数中再次调用内置函数。
MySQL内置函数_第4张图片
MySQL内置函数_第5张图片
datediff函数
MySQL内置函数_第6张图片

创建一个记录生日的表
下面我们创建一个表用来记录用户的生日。我们将birthday设为date日期类型。当我们插入数据时,我们看到正常的日期可以插入进行。并且now()函数和current_timerstamp()函数返回的日期时间类型也可以插入进行。但是为什么current_time()函数返回的时间类型也能插入进去呢?而且也得到了正确的日期。这是因为这些函数返回的其实都是日期+时间的类型,只不过这些函数规定了只能显示其中的日期或时间的部分。不过我们在写时还是要规范一点比较好,即把这些函数都放在date函数中进行转换为日期类型。
MySQL内置函数_第7张图片

创建一个留言表
我们先创建一个记录留言的表。
MySQL内置函数_第8张图片
然后我们向表中插入数据,可以看到表中记录了留言时的具体时间。
MySQL内置函数_第9张图片
显示所有留言信息,发布日期只显示日期,不用显示时间
我们可以通过调用date函数来使sendtime只显示日期。
MySQL内置函数_第10张图片

请查询在2分钟内发布的帖子
我们可以通过下面的两种方式来得到2分钟内发布的新留言。
MySQL内置函数_第11张图片

2、字符串函数

MySQL内置函数_第12张图片
charset函数和concat函数
charset函数可以返回字符串的字符集。
concat函数可以连接字符串,而且参数可以为任意多个字符串。
MySQL内置函数_第13张图片

instr函数
instr函数为查找子串函数,会从第一个字符串参数中查找第二个字符串参数。如果找到就返回子串首字符的下标,注意这个下标从1开始。如果没找到就返回0。
MySQL内置函数_第14张图片
ucase函数和lcase函数
ucase函数会将字符串参数中的小写字母全部转变为大写字母。
lcase函数会将字符串参数中的大写字母全部转变为小写字母。
MySQL内置函数_第15张图片

left函数和right函数
left函数会从字符串参数的左边开始取length个字符。而right函数会从字符串参数的右边开始取length个字符。
MySQL内置函数_第16张图片
length函数
length函数会计算字符串参数的长度,需要注意的是length函数的单位为字节,即如果是在utf8字符集下,一个汉字占3个字节,一个字符占1个字节。而要是在gbk字符集下,一个汉字占2个字节。
MySQL内置函数_第17张图片

获取emp表的ename列的字符集
我们看到整数和浮点数为二进制形式,所以未binary。
MySQL内置函数_第18张图片
要求显示student表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”
MySQL内置函数_第19张图片

求学生表中学生姓名占用的字节数
因为math为float类型,所以占用2字节。
注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数算作一个字节,中文表示多个字节数(与字符集编码有关)
MySQL内置函数_第20张图片

将EMP表中所有名字中有S的替换成’上海’
replace函数可以将字符串参数中的子串替换为另一个字符串。
MySQL内置函数_第21张图片

截取EMP表中ename字段的第二个到第三个字符
substring(str,position,length)函数会从str字符串的position位置开始,取length个字符。如果不给length,那么就表示从position位置开始,取所有字符。
MySQL内置函数_第22张图片

以首字母小写的方式显示所有员工的姓名
MySQL内置函数_第23张图片

ltrim()函数和trim()函数和rtrim()函数
ltrim函数会去除字符串参数左边的空格。
rtrim函数会去除字符串参数右边的空格。
trim函数会去除字符串参数两边的空格。
但是这三个函数都不会去除字符串参数中间的空格。
MySQL内置函数_第24张图片

3、数学函数

MySQL内置函数_第25张图片
abs函数
MySQL内置函数_第26张图片

bin函数
bin函数只能将整数转为二进制,如果是小数的话,那么将会只转整数部分。我们看到如果是负数的话,那么会将这个数的补码显示出来,而且如果是负数小数也会只转整数部分,并且显示补码。
MySQL内置函数_第27张图片
hex函数
hex函数将十进制整数转为十六进制。
MySQL内置函数_第28张图片

conv函数
conv(要转换的数字,原来的进制,要转换的进制)。
MySQL内置函数_第29张图片

format函数
fromat函数可以格式化显示小数的小数位数。
MySQL内置函数_第30张图片

mod函数
mod函数可以进行模运算。
MySQL内置函数_第31张图片

rand函数
rand函数会随机返回[0.0,1.0)之间的浮点数。
MySQL内置函数_第32张图片
如果我们想要通过rand函数生成0-100之间的整数,那么我们可以像下面这样。
MySQL内置函数_第33张图片

ceiling函数和floor函数
我们需要先了解向上取整和向下取整。
MySQL内置函数_第34张图片
ceiling函数为向上取整。
MySQL内置函数_第35张图片
floor函数为向下取整。
MySQL内置函数_第36张图片

4、其它函数

user() 函数查询当前用户
MySQL内置函数_第37张图片

database()显示当前正在使用的数据库
MySQL内置函数_第38张图片

md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串
我们在前面学习https协议时知道了密码在数据库中是不能明文保存的,因为会存在安全问题。所以在使用数据库保存密码时,可以将密码进行md5摘要,这样密码在数据库中就是以32位摘要字符串保存了。
我们看到当使用md5摘要后,李四的密码在数据库中就以32位摘要存放了。
MySQL内置函数_第39张图片
不管字符串多长,md5都会形成32位摘要。并且相同字符串形成的摘要相同。
MySQL内置函数_第40张图片
因为数据库中保存的是李四的密码经过md5函数后形成的摘要,所以当检验李四密码是否正确时,也需要对比md5形成的摘要。
MySQL内置函数_第41张图片

password()函数,MySQL数据库使用该函数对用户加密
password()函数的作用和md5摘要的作用类似。都是将用户在数据库存的数据进行加密。

MySQL内置函数_第42张图片

ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值
ifnull函数类似于三目运算符,即如果val1不为null,就返回val1的值,并且不会再判断val2。如果val1为null,那么就返回val2的值。
MySQL内置函数_第43张图片

你可能感兴趣的:(MySQL,mysql,数据库,笔记)