1.作用 2.主要函数 函数名称 格式 说明 curdate() curdate() 查询当前日期 curtime() curtime() 查询当前时间 now() now() 查询当前日期时间 month() month('日期') 查询日期中的月份 dayname() dayname('日期') 查询日期对应星期几 time_to_sec() time_to_sec('时间') 将时间转化为秒数 sec_to_time() sec_to_time('秒数') 将秒数转化为时间 date_format() date_format('时间','指定格式') 将日志转化为指定格式 3.示例 1.作用 : 2.主要函数 函数名称 格式 说明 length() length(str) 返回字符串的长度 concat() concat(str1,str2,'...') 将字符串连接起来 lower() lower(str) 将字符转化为小写 upper() upper(str) 将字符为大写 left() left(str,len) 返回str的左端len个字符 right() right(str,len) 返回str的右端len个字符 substring() substring(str,pos,len) 返回str位置pos起len个字符,pos从1开始计数 trim() trim(str) 去掉字符串两边的空格 replace() replace(str,new_str,old_str) 将str中的old_str替换为new_str reverse() reverse(str) 将字符串进行翻转 3.示例 1.作用 2.包含函数 函数名称 格式 说明 count() count(字段) 统计数据的总记录数 sum() sum(字段) 统计字段值的总和 max() max(字段) 统计字段值中的最大值 min() min(字段) 统计字段值中的最小值 avg() avg(字段) 统计字段值中的平均值 3.示例 1.作用 2.主要函数 函数名称 格式 说明 round() round(n,d) 四舍五入,n表示原数,d表示小数位数,默认为0 rand() rand() 生成值为0~1.0之间的浮点数 abs() abs(n) 求n的绝对值 sqrt() sqrt(n) 求n的二次方根 mod() mod(a,b) 就a/b后的余数 ceil() ceil(n) n为小数时,则向上取整数 floor() floor(n) n为小数时,则向下取整数 sign() sign(n) 返回n的符号,n为正数返回1,零返回0 ,负数返回-1 3.示例 1.作用 2.主要函数 函数名称 格式 说明 if() if(expr1,expr2,expr3) expr1的值为True,则返回expr2 ,若为false ,则返回expr3 ifnull ifnull(expr1,expr2) 如果expr1不为空,直接返回expr1 ,反之返回expr2 . nullif nullif(expr1,expr2) 如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。 case case value when compare_value then result when compare_calue then result else result end 将case后面的value和每个where子句后面的compare_value进行比较 ,如果一旦和某个when子句后面的compare_value相等,则返回相应then后面的result ;如果不相等,则返回else子句后面的值 ;没有else则返回null . 3.示例日期函数
select curdate() #查询结果: 2022-05-07 (为今天的日期)
select curtime() #查询结果: 18:32:40 (为当前时刻)
select now() #查询结果: 2022-05-07 18:34:05 (相当于curdate和curtime两个函数的结合)
select month('2022-05-07') #查询结果: 5
select dayname('2022-05-07'); #查询结果:Saturday
select time_to_sec('18:39:00') #查询结果:67140
select sec_to_time(11002) #查询结果 :03:03:22
select date_format(now(),'%m-%d-%Y') #查询结果:05-07-2022
字符串函数
select length('张三') ; #查询结果:6
select length('san') ; #查询结果:3
select concat('ab','cd','ef') ; #查询结果:abcdef
select lower('ZHANGsan') ; #查询结果:zhangsan
select upper('zhangSAN') ; #查询结果:ZHANGSAN
select left('zhangsan',3) ; #查询结果:zha
select right('zhangsan',3) ; #查询结果:san
select substring('zhangsan',2,5) ; #查询结果:hangs
select trim(' zhangsan ') ; #查询结果:zhangsan
select replace('zhangsan','zhang','li') ; #查询结果:lisan
select reverse('zhangsan') ; #查询结果:nasgnahz
聚合函数
select count(*) 总记录数 from students ; #查询总条数
select sum(age) 总年龄 from students ; # 查询年龄之和
select max(age) 最大年龄 from students ; #查询最大年龄
select min(age) 最小年龄 from students ; #查询最小年龄
select avg(age) 平均年龄 from students ; #查询平均年龄
数值函数
select round(3.67,1) ; #返回结果 : 3.7
select rand() ; #返回结果 :0.58350814933281 ,每运行一次,结果都会发生变化
select abs(-3) ; #返回结果 : 3
select sqrt(9) ; #返回结果 : 3
select mod(5,2) ; #返回结果 :1
select ceil(4.1) ; # 返回结果 : 5
select floor(4.9) ; # 返回结果 :4
select sign(-3) ; # 返回结果 :-1
select sign(3) ; # 返回结果 :1
条件判断函数
select name,if(age>35,'中年','青年') from students # 返回结果 :大于35岁的会显示中年,否则为青年
select name,IFNULL(code,10000) from students # 返回结果 :code字段若为null,则使用10000代替,否则显示原值 。
select nullif('ABC','ABC') #返回结果 :null
select nullif('ABC','AB') #返回结果 :'ABC'
select studentNo, case
when avg(score)<60 then '不及格'
when avg(score)<70 then '及格'
when avg(score)<85 then '良'
ELSE '优秀' end '成绩情况'
from scores GROUP BY studentNo #返回结果 :根据统计到每个学生的平均成绩和分数进行比对,在不同的区间内显示不同的值 。