【MySQL】内置函数

文章目录

  • 1. 内置函数
    • 时间函数
    • 时间函数 具体样例
  • 2. 字符串函数
  • 3. 数学函数
    • 向上取整和向下取整
  • 4. 其他函数

1. 内置函数

时间函数

【MySQL】内置函数_第1张图片
【MySQL】内置函数_第2张图片

current_date() 表示 当前日期(年月日)


【MySQL】内置函数_第3张图片

current_time() 表示 当前时间(时分秒)


【MySQL】内置函数_第4张图片

current_timestamp() 表示 当前时间戳(以年月日、时分秒的形式表现出来)


【MySQL】内置函数_第5张图片

now() 表示 获取当前日期时间


【MySQL】内置函数_第6张图片

date(datetime) 在设定的时间中 提取对应的日期


【MySQL】内置函数_第7张图片

将 now函数 放入 date中 ,相当于输入当前 日期时间
可直接输出 当前日期 ,达到 与current_date 相同的效果


【MySQL】内置函数_第8张图片

在日期基础上加(时间或日期)
date_add(date,interval d_value_type) (interval后的数值单位 可以是 year minute second day)
输入 select date_add(‘2023-02-25’,interval 10 day);
表示 在 2023-02-25 日期的基础上 添加 10 天
最终 输出 2023-03-07


【MySQL】内置函数_第9张图片

在日期基础上减去(时间或日期)
date_sub(date,interval d_value_type) interval后的数值单位 可以是 year minute second day

输入 select date_sub(now(), interval 10 minute);
表示 在 当前日期时间 基础上 减去 10分钟
最终 输出 2023-10-27 18:16:39


【MySQL】内置函数_第10张图片

datediff(date1,date2)
计算两个日期之间相差多少天
用date1减去date2 ,返回正天数
若date2大,则返回负天数


时间函数 具体样例

【MySQL】内置函数_第11张图片

创建一张表 tmp,其内部包含 约束为主键 并且自增长 的 id 、 不为空的birthday


【MySQL】内置函数_第12张图片

由于id 为自增长,所以默认从1开始
插入 日期 ‘2001-02-25’ 和 ‘1990-01-01’ 以及 当前日期 都插入到 tmp表中


【MySQL】内置函数_第13张图片

插入当前时间、当前时间戳时,发现都显示为 当前日期

是因为 每个函数 都是带有 对应的日期的,但是在使用函数时 只会显示对应的功能


【MySQL】内置函数_第14张图片

所以为了更清楚的表示想要插入的数据
所以使用 date 提取对应的日期


【MySQL】内置函数_第15张图片

再次创建一张表msg,内部包含 约束为主键 自增长的id 、 不为空的评论内容、评论时间


【MySQL】内置函数_第16张图片

将 数据 插入到 msg表 中


查询 2分钟以内 发布的内容

【MySQL】内置函数_第17张图片

用 msg_time 表示 表中时间
用 curr_time 表示 当前时间
消息可分为 在2分钟以内 和 在2分钟以外

msg_time > curr_time-2 即 msg_time+2 > curr_time 表示表中时间在2分钟以内


【MySQL】内置函数_第18张图片

输入 select content,sendtime from msg where sendtime > date_sub(now(),interval 2 minute);
即可以查找到 在当前时间 2分钟以内的数据内容

2. 字符串函数

【MySQL】内置函数_第19张图片
【MySQL】内置函数_第20张图片

输入 select charset(‘abc’); 发现对应的编码格式为utf8


【MySQL】内置函数_第21张图片

输入 sekect concat(‘a’,‘b’); 将字符a与字符b连接起来,形成ab


【MySQL】内置函数_第22张图片

instr(string,substring) 返回substring 在string中出现的位置,没有返回
判断bc在abc中的位置,abc字符串的起始位置为1,由于第二个字符b处 就检测到bc存在,所以返回b所在位置 2


【MySQL】内置函数_第23张图片

使用 ucase 将abc 字符串 从小写转为大写


【MySQL】内置函数_第24张图片

使用 lcase ,将abc 字符串 从 大写转为 小写


【MySQL】内置函数_第25张图片

left(string,length) 从string字符串的左边起 取length个字符
如:在abcdef字符串中 取4个字符,成为abcd


【MySQL】内置函数_第26张图片

length(string) 求字符串的长度
如:abcde字符串 长度为5


【MySQL】内置函数_第27张图片

处于uft8编码格式下,一个汉字看作三个字节
abc 三个字符各占用一个字节
所以最终返回9个字节


【MySQL】内置函数_第28张图片

将当前表中 名字 带有s的 替换为上海


【MySQL】内置函数_第29张图片

replace (str,search_str,replace_str) 即 将str中的search_str 替换成 replace_str
输入 select replace(ename,‘S’,‘上海’) from emp; 将emp表中的ename 含有S的 全部替换成上海


【MySQL】内置函数_第30张图片

substring(str,postion,length) 即从str的postion开始 取length个字符
输入 select substring(ename,2,2) from emp; 截取emp表中ename字段的第二个到第三个字符
由于字符串下标从1开始,所以第2个字符 就要从2开始,共截取两个字符


【MySQL】内置函数_第31张图片

ltrim(string) 去除左侧的空格


【MySQL】内置函数_第32张图片

rtrim(string) 去除右侧的空格


【MySQL】内置函数_第33张图片

trim(string) 将左侧和右侧的空格都去除

3. 数学函数

【MySQL】内置函数_第34张图片
【MySQL】内置函数_第35张图片

abs(number) 对一个数取绝对值


【MySQL】内置函数_第36张图片

bin(decimal_number) 将一个十进制数 转换为 二进制


【MySQL】内置函数_第37张图片

hex(decimal_number) 转化为 十六进制


【MySQL】内置函数_第38张图片

conv(number,from_base,to_base) 将一个数 从一个进制 转换为 另一个进制
如:将10从10进制 转化为2进制 变为 110


【MySQL】内置函数_第39张图片

format(number,decimal_places) 格式化,保留小数位数
如:2.156保留位小数,通过四舍五入 ,输出 2.16


【MySQL】内置函数_第40张图片

rand() 返回随机浮点数 [ 0.0,1.0 )
虽然rand函数范围是0到1,但可在后面乘以一个数,如乘以10,则表示范围为0到10


【MySQL】内置函数_第41张图片

mod(number,denominator) 取模
如:5%2=1 余1,则输出1


向上取整和向下取整

【MySQL】内置函数_第42张图片

丢弃掉小数点后面的数据的方式 称为 0向取整


【MySQL】内置函数_第43张图片

只要有小数部分,就向变大的方向取整 称为 向上取整


【MySQL】内置函数_第44张图片

ceiling(number) 向上取整
如 输入 5.1 ,进行向上取整,则输出 6


【MySQL】内置函数_第45张图片

只要有小数部分,就向变小的方向取整 称为 向下取整


【MySQL】内置函数_第46张图片

floor(number) 向下取整

如:输入 4.9 进行向下取整,输出4


4. 其他函数

【MySQL】内置函数_第47张图片

输入 select user() 查询当前用户
root为用户名 , localhost为用户主机


【MySQL】内置函数_第48张图片

输入 select database() 查询当前在那个数据库中


【MySQL】内置函数_第49张图片

在数据库中,密码是不能明文保存的,所以不能直接插入
需要借助 md5(str) ,对str字符串进行md5摘要,摘要后得到32位字符串


【MySQL】内置函数_第50张图片

将密码 通过md5 进行插入,显示一个32位字符串


【MySQL】内置函数_第51张图片

输入 select password( 密码) ,mysql 会使用 password 函数 帮助形成 加密后的结果


【MySQL】内置函数_第52张图片

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

你可能感兴趣的:(MySQL,mysql)