MySQL函数(一)

一、数学函数
1.ASB(X)
描述:返回X的绝对值
应用:SELECT ABS(-1)

2.MOD(N,M)
描述:模运算。返回N除以M的余数
应用:SELECT MOD(10,3)

3.ROUND(X),(X,D)
描述:保留小数点位数。X代表实际值,D代表小数点位数。默认使用四舍五入
如果D未指定,则默认为0
SELECT ROUND(11.1)
D可以为负数,如果未负数,则对X的最后一位进行四舍五入。
SELECT ROUND(14,-1)

4.TRUNCATE(X,D)
描述:与ROUND(X,D)用法相同。
与ROUND的区别:
如果不需要小数位,必须手动指定D为0。不提供TRUNCATE(X)的写法
只提供四舍五入

二、流程控制函数
1.CASE WHEN THEN ELSE END
语法:
CASE 字段 WHEN 字段的值 THEN 结果 [WHEN 字段的值 THEN 结果 …] [ELSE 结果] END 字段名或者别名
CASE WHEN 条件语句 THEN 结果 [WHEN 条件语句 THEN 结果 …] [ELSE 结果] END 字段名或者别名
描述:这个类似于java中的if语句,并且这个函数大致有三种方式,类似于if(),if() else,if() else if() else;
应用:
只有一个流程分支
SELECT NAME,age, CASE sex WHEN 0 THEN ‘女’ END sex FROM student
SELECT NAME, age, CASE WHEN sex = 0 THEN ‘女’ END sex FROM student

有两个流程分支
SELECT NAME,age, CASE sex WHEN 0 THEN ‘女’ ELSE ‘男’ END sex FROMstudent
SELECT NAME, age, CASE WHEN sex = 0 THEN '女’ELSE ‘男’ END sex FROM student

两个以上流程分支
SELECT NAME,age, CASE sex WHEN 0 THEN ‘女’ WHEN 1 THEN ‘男’ ELSE ‘未知’ END sex FROM student
SELECT NAME, age, CASE WHEN sex = 0 THEN ‘女’ WHEN sex = 1 THEN ‘男’ ELSE ‘未知’ END sex FROM student

2.IF()
语法:IF(条件语句,值1,值2)
描述:这个类似于java中的三元表达式,如果符合条件就返回值1,如果不符合就返回值2
应用:
SELECT IF(10>11,‘y’,‘n’)
SELECT IF(11>10,‘y’,‘n’)

3.IFNULL()
语法:IFNULL(值1,值2)
描述:如果值1不为null就返回值1,如果值1为null就返回值2。
应用:
SELECT IFNULL(2,0)
SELECT IFNULL(NULL,1);

4.NULLIF()
语法:NULLIF(值1,值2)
描述:它是对值1和值2进行比较,如果符合就返回null,如果不符合就返回值1
应用:
SELECT NULLIF(1,1)
SELECT NULLIF(1,2)

三.比较函数
1.BETWEEN AND
语法:值 BETWEEN 最小值 AND 最大值
描述:判断值是否在范围内,如果值大于或者等于最小值,并且小于或者等于最大值,那么结果就会返回1,否则返回0; BETWEEN AND 与 WHERE配合使用可以筛选符合条件的数据
应用:
判断值是否在范围内
SELECT 2 BETWEEN 1 AND 3
SELECT 2 BETWEEN 3 AND 1

与WHERE配合使用
SELECT id, name,age FROM student WHERE id BETWEEN 1 AND 10

2.NOT BETWEEN AND
描述:与BETWEEN AND逻辑和结果取反即可

3.GREATEST()
语法:GREATEST(值1,值2,值3…)
描述:对两个以上参数,返回最大值。
应用:
SELECT GREATEST(1,2,3,4,5);
select GREATEST(val_1,val_2,val_3,val_4) from test

4.LEAST()
语法:LEAST(值1,值2,值3…)
描述:对两个以上参数,返回最小值
应用:
SELECT LEAST(1,2,3,4,5);
select LEAST(val_1,val_2,val_3,val_4) from test

5.IN()
语法:值 IN(值1,值2,值3…)
描述:判断值是否包含在IN中所拥有的参数,如果有则返回1,如果没有则返回0;IN与WHERE配合使用可以筛选出包含IN中参数的数据
应用:
SELECT 1 IN(1,2,3,4,5)
SELECT 6 IN(1,2,3,4,5,6)

与WHERE配合使用
SELECT id,name,age FROM student WHERE id IN(1,2)

6.NOT IN()
描述:与IN()逻辑和结果取反即可

7.IS NULL
描述: 判断值是否为null;与WHERE配合查询条件为null的数据
应用:
SELECT * FROM student WHERE name IS NULL

8.IS NOT NULL
描述:判断值是否不为null;与WHERE配合查询出条件不为null的数据
应用:
SELECT * FROM student WHERE name IS NOT NULL

四.字符串函数
1.CHAR_LENGTH()
语法:CHAR_LENGTH(字段)
描述:返回字符串长度,单位为字符
应用:
CHAR_LENGTH(name)

2.LENGTH()
语法:LENGTH(字段)
描述:返回字符串的长度,单位字节
SELECT LENGTH(‘text’);

3.CONCAT()
语法:CONCAT(值1,值2,值3…)
描述:拼接字符串
应用:
SELECT CONCAT(‘h’,‘e’,‘l’,‘l’,‘o’)

4.CONCAT_WS()
语法:CONCAT_WS(分隔符,值1,值2,值3…)
描述:用分隔符拼接字符串
应用:
SELECT CONCAT_WS(’,’,‘hello’,‘mysql’)

5.ELT()
语法:ELT(第几个元素,值1,值2,值3…)
描述:返回指定的元素
应用:
SELECT ELT(1,‘a’,‘b’)

6.FORMAT()
语法:FORMAT(M,D)
描述:将数字X格式化为’#,###,###.##’,将其舍入为D小数位,然后将结果作为字符串返回。M代表实际值,D代表指定小数点位数。
应用:
SELECT FORMAT(1234.123, 2)

7.INSERT()
语法:INSERT(原字符串,起始位置,结束位置,新字符串);
描述:指定原字符串的起始位置和结束位置,用新字符串代替
应用
SELECT INSERT(‘hello’,1,2,‘ab’)
SELECT INSERT(‘hello’,‘o’)

8.INSTR()
语法:INSTR(字符串,所包含的字符串)
描述:查看包含的字符串在字符串中第一次出现的位置
应用:
SELECT INSTR(‘hello’,‘o’)

9.SUBSTRING()
语法:SUBSTRING(字符串,截取位置)
描述:截取指定位置的字符串
SELECT SUBSTRING(‘hello’,2)

10.LEFT()
语法:LEFT(字符串,指定位置)
描述:从左边开始,截取指定位置的字符串
SELECT LEFT(‘hello’,2)

11.RIGHT()
语法:RIGHT(字符串,指定位置)
描述:从右边开始,截取指定位置的字符串
SELECT RIGHT(‘hello’,2)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值