数值函数
1.ROUND函数又叫轮函数用来四舍五入数字
SELECT ROUND(5.73)
这样我们会得到一个整数
SELECT ROUND(5.73,1)
这样是保留一位小数
2.CEILING(上限函数)
用来返回大于或等于某值的最小整数
SELECT CEILING(5.7)
比如这个就会返回6
3.FLOOR(下限函数)
用来返回小于或等于某数的最大整数
4.ABS
用来计算绝对值的函数
5.RAND()
用来生成0-1区间的随机浮点数。
这些是最常用的函数,如果还想看看其他的数值函数可以去网上查
字符串函数
1.LENGTH得到字符串的字符数
2.UPPER/LOWER将字符串转化成大写和小写字母
3.LTRIM(left trim)左修整/RTRIM--移除字符串左侧或右侧的空白字符或者其他预定义字符
4.TRIM删除所有左右两侧的空格
5.LEFT/RIGHT('String',number)返回字符串左侧或右侧的几个字符
6.SUBSTRING('String',起始位置,长度)获取一个字符串中任意位置的字符,如果不定义长度就会返回起始位置之后的全部字符
7.LOCATE返回第一个字符或者一处阿姊夫匹配的位置
SELECT LOCATE('n','Kindergarten')
第一个参数是你要查找的字符(不分大小写)没有符合条件的也会返回0
我们也可以搜索一个字符串
8.REPLACE(原字符串,要替换的字符串,新的字符串)替换字符串
SELECT REPLACE('Kindergarten','garten','garden')
9.CONCAT(‘String1','String2)串联两个字符串
日期函数
1.NOW()调用当前的日期及时间
2.CURDATE()当前的日期
3.CURTIME()当前时间
4YEAR/MOUNTH/DAY()提取日期的年份,月份,号数
5.HOUR/MINUTE/SECOND()返回时间的时分秒。
6.DAYNAME()返回星期几
7.MONTHNAME()返回字符串式的月份
8.EXTRACT()
SELECT EXTRACT(YEAR/MONTH/DAY FROM NOW())
格式化日期和时间
1.DATE_FROMAT()要用到两个参数一个是日期值一个是格式字符串
SELECT DATA_FORMAT(NOW(),'%M/m %d %Y/y')
当是M时会返回字符串式的月份,m则会返回数字
Y会返回4位数的年份,y会返回两位数
计算日期和时间
1.DATE_ADD()给时间日期值添加日期成分
SELECT DATA_ADD(NOW(),INTERVAL 1 DAY)
这是给日期加上一天的时间,也可以是增加一年,一个小时,一个月等等
如果要减去就直接传入负数就可以了
2.DATEDIFF()返回两个日期的间隔
3.TIME_TO_SEC()返回某个时间与零点的间隔(秒数),要计算两个时间的间隔就分别调用函数后减去就行了
IFNULL/COALESCE函数
1.IFNULL用于如果返回值是空值时,更改返回为自定义
SELECT
order_id,
IFNULL(shipper_id,'Not assigned')
FROM orders
如上当其shipper_id为空的时候就会返回我们自定义的字符串而不是NULL
2.COALESCE它与IFNULL的区别是它可以提供一堆值,如果一个为空就去看下一个是否为空,当提供的都为空的时候才返回自定义的值
IF函数
格式:
IF(条件,符合返回的值,其他返回的值)
如果我们不写if将两段数据分开就要写两个查询再用union连接起来而我们使用if就只用写一段查询就够了
.例子
SELECT
p.product_id,
p.name,
COUNT(*) AS orders,
IF(COUNT(* )>1,'Many times','Once')
FROM products p
JOIN order_items oi USING(product_id)
GROUP BY product_id,name
case运算符
上面我们学了IF函数,但是IF只有一个判别式所以当我们有多个判别式的时候就可以用case
格式:
SELECT
CASE
WHEN 表达式 THEN 为真返回值
WHEN 表达式2 THEN 为真返回值
......
ELSE 返回值
END AS category
FROM orders