mysql 取绝对值_自学MySQL第六天

今天先学习了一些内置的numeric function

第一个ROUND(),顾名思义近似,四舍五入的方式呈现数值,可以选保留几位小数,如图所示:

b21e345d8019afca69077fcbbc301051.png

第二个TRUNCATE(),不用四舍五入,强行取指定位数小数,如图:

2bc11b875e456a8cc2a2825943c5b671.png

第三个CEILING(),返回大于括号内数值的最小整数;与之对应的是FLOOR(),返回小于括号内数值的最大整数;

第四个ABS(),取绝对值;

第五个RAND(),随机生成0~1之间的一个数

虽然肯定还有其它内置函数,但MOSH老师说这些已经是最常见的numeric function啦。想知道更多function可以自行百度。

接下来介绍一些字符串函数 string function

第一个LENGTH(),返回括号内字符串的字符数量;

第二个UPPER()/LOWER(),使括号内的字符串改变成指定大小写;

第三个LTRIM()/RTRIM(),去掉字符左边或右边的空格;

第四个LEFT()/RIGHT(),加数字取字符左边或右边指定位数字符;SUBSTRING()可以取指定位置开始的指定位数的字符,如SUBSTRING('jayden', 2, 3)将返回值'ayd',如果不指定取几位数则会从开始位置取到最后;

第五个LOCATE(),可以定位指定字符在一串字符中的位置,如LOCATE('n', 'jayden')将返回6,如果我们将'n'替换成'jay',将会返回1,返回第一个字幕出现的位置。如果没有指定字符,则会返回0

第六个REPLACE(),替换字符。参数一般是三个,分别是要替换的目标字符串,要替换的内容和替换的内容,如REPLACE('JAYDEN', 'DEN', 'TEN'),将返回JAYTEN,将D换成了T。

第七个CONCAT(),连接字符串,如CONCAT('JAY', 'DEN')将会返回'JAYDEN'。

接下来是date function日期函数

NOW(),可以调用现在的日期和时间;CURDATE(),仅调用日期;CURTIME(),仅调用时间。用YEAR()/MONTH()/DAY()/HOUR()/MIUTE()/SECOND()调用年/月/日/时/分/秒;用DAYNAME()/MONTHNAME可以调出星期名/月名。EXTRACT()作为一个数据库通用函数也很好用,直接EXTRACT(DAY FROM NOW()),也可以调出日信息

可以注意到我们现在用的日期格式都是默认的‘xxxx-xx-xx’,有时候需要显得更加user friendly,可以用函数来format:

主要是DATE_FORMAT()TIME_FORMAT(),后面的参数有很多,需要用到的时候查询。

对日期进行加减操作也有特定的函数

主要是DATE_ADD()和DATE_SUB(),日期+INTERVAL多少时间就可以加上指定的时间啦(可以是负数),使用DATEDIFF()可以算出两个日期之间差了多少日子,不能精确到小时,精确到小时/分/秒的另有函数,如TIME_TO_SEC()等。

MySQL还有其他有用的内置函数

IFNULL()可以将缺失值替换成其他指定字符,如图所示:

fa94923d6ec7cef879df6c442d8c2835.png

还有COALESCE(),可以选择替换的列,若都是缺失值再返回指定字符串,也就是说输出第一个不是缺失值的值,如图:

106848a52b2dd48eb5bef7e45e0b7cd7.png

IF函数

有时候我们想根据所查询的值来决定它的分类,这时可以用IF函数,如图:

1b5a2cd12ba20626f5cf6a5113a4af2b.png

当对比的值符合条件时,输出第二个参数也就是'ACTIVE',当不符合时输出'ARCHIVED',由于今年是2020年,所以这里的order_date的status都是'ARCHIVED'。

CASE 指令

可以看到,IF指令只能对一个值进行比较,若想分多层比较,需要用CASE指令,跟着WHEN,THEN指令,最后以END结束,如图:

c910f22bc536aad92697934f459853d2.png

Creating Views

我们想把调用出来的结果变成一张新表,可以用CREAT VIEW 指令,如图:

9ad7e606cc5100d68e174015af8d59b2.png

这样下次调用就非常方便啦。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值