MySQL系统函数

系统函数:

  • 数学函数

1、abs()    pi()

2、sqrt()  

3、cell()    floor()    round()     truncate()

cell是向上取整,floor是向下取整。

注意:round负数和java里面的四舍五入有所不同

Round还可以指明位数

turncate是截断

4、power()     exp()

5、rand()   

得到0~1之间的随机数

例题:求每个部门平均工资

保留小数点后两位:

  • 字符串函数

1、char_length()     字符串长度

2、concat()   concat_ws      字符串拼接

3、insert()       替换字符串

4、lower()    upper()    大小写转换

5、left()     right()    从左/右截取字符串几个长度

从左边获取5个长度

从右边获取5个长度

6、lpad()   rpad()    从左/右填充什么

一共8个长度,hello占了5个,剩下3个由a从左填充

给的填充的字符串长度>8,只取前3个进行填充

字符串长度已经>8,只取该字符串的前8个,不进行填充

如果取完给的字符串还不够长度,会循环取,直到达到指定长度

右填充:

7、trim()    ltrim()     rtrim()

ltrim():去除左边(前面)的空格

rtrim():去除右边(后面)的空格

trim():去除两边(前、后)的空格,不管中间

8、repeat()    重复字符串

9、space()     空格      replace()       替换

中间用逗号连接

中间用三个空格连接

将字符串的哪个 替换成哪个

10、strcmp()     比较字符串大小(根据ascll码值比较)

11、substring()  截取字符串长度(从1开始)      

  1. locate() 检索字符串出现位置    同position()

  1. reverse()    字符串反转

14、field() 

15、find_in_set()

例题:查询出楼号和门牌号  (sum的格式就是 楼号-门牌号 )

先找出-的位置

再从1位置截到-的位置

发现与预期结果多一个-,所以从-减1截止

也能使用left截取

再截第二部分

substring只给个起始位置就会一直截到末尾

所以直接

  • 日期和时间函数

1、系统当前时间

NOW()   SYSDATE()   年月日时分秒

SELECT CURDATE(); -- 年月日

SELECT CURRENT_DATE(); -- 年月日

SELECT CURRENT_TIME; -- 时分秒

SELECT CURTIME(); -- 时分秒

  1. add()

-- adddate()加上天数

SELECT ADDDATE(NOW(),40);    --当前系统时间加上40天

SELECT ADDDATE('2020-10-19 12:32:45',INTERVAL 5 MINUTE);

 -- 2020-10-19 12:32:45时间  加上5 分钟

SELECT ADDDATE('2020-10-19 12:32:45',5); -- 加5 天

SELECT ADDDATE('2020-10-19 12:32:45',INTERVAL 5 YEAR); -- 5 年

SELECT ADDDATE('2020-10-19 12:32:45',INTERVAL 5 MONTH); -- 5 个月

-- 加上秒,最大到59

SELECT ADDTIME(NOW(),59),NOW();

3、DATEDIFF() 两个时间相差天数

例题:满20年员工信息

写法一:

写法二:

写法三:

4、DATE_FORMAT 日期格式化

2023年07月07日 10点30分33秒

注意Y(4位,如2023)和y(2位,如23)也不一样

秒是一样的

分钟,不是m是i

如d是07号,e是7号

  1. 季度

例题:

1、

2、

select * from employees where quarter(now()) = quarter(hiredate)

3、

可能出现 出生的周和当前时间的周不一样的情况

所以直接找出出生的月日,和当前的年进行拼接

找出是第多少个周

再筛选当前周是不是这个周

6、date_sub

  1. extract  从日期中提取一部分

8、

例题:

  • 条件判断函数

1、

2、ifnull()    当v1不为null时,显示v1;当v1为null时,显示v2

聚合函数不统计null值,所以平均分要高

另一种方法得到:

3、

4、系统信息函数

5、其他函数

保留两位小数  三位一个逗号隔开

把字符串类型转化成整数类型

把字符串类型转换成日期类型

前面楼号和门牌号的例子  按照楼号排序是根据字符串来排序的

想根据数字进行排序

楼号一样的按照门牌号排序

例题:

将当前的年月日 和 随机数取四位 拼接成一个电子邮箱

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值