【SQL】sql从0到1——第【2】章:常见函数—速查

一、单行函数

1.字符函数

① Length:获取参数值的字节个数,在utf8下,一个字母占一个字节,一个汉字占三个
  例:
   Select length(name)长度
   From employee;

② Concat:拼接字符串
  例:
   Select concat(last_name,first_name) 姓名
   From employee;

③ Upper:把字符串转换为大写
  Lower : 把字符串转换为小写

例:
   Select upper(‘lily’);
   Select concat(upper(last_name),lower(first_name)) 姓名
   From employee;

④ Substr:截取字符

  Substr(‘这里是原字符串’,a);:截取从索引a处后面的所有字符
  Substr(‘这里是原字符串’,a,n);:截取从索引a处后面的字符长度为n的字符
例:
  Select substr(‘你笑起来真好看’,5,3) ;; 截取从第五个字符到第七个字符

注意:SQL中索引是从1开始的

⑤ Instr(‘原字符串’,’子字符串’):返回子字符串在原字符串中第一次出现的索引,如果找不到返回0)
   例:Instr(‘你笑起来真好看’,’真好看’) ;
⑥ Trim:去除字符串两端的空格
   例:
   Select Trim(‘ 真可爱 ‘);
   Select trim(‘a’ from 'aaaaa 真aaa可爱 ') 去除两端的a
⑦ Lpad:用指定的字符实现左填充指定长度
   例:Select Lpad(‘真好看’,5,’**’);
⑧ Rpad:用指定的字符实现右填充指定长度
   例:Select Rpad(‘真好看’,5,’mn’);
⑨ Replace:用指定字符替换原字符串中指定字符
   例:Select replace(‘你笑起来真好看’,你,’她’);

2.数学函数

① Round(a,b):对a进行b位的四舍五入,若为负数,可先将其绝对值四舍五入,再添加负号
  例:
  Select Round(2.38,1);:2.4
  Select Round(-2.38,1);:-2.4
② Ceil:向上取整,返回≥该参数的最小整数
  例:Select Ceil(2.38);:3
  Floor:向下取整,返回≤该参数的最大整数
  例:Select Floor(2.38);:2
③ Truncate 截断
  例:Select Truncate(2.38,1);:2.3
④ Mod 取余:看被除数,被除数是正数,结果就是正数,被除数为负数,结果就是负数。
  例:Select Mod(100,-3);:1

扫描二维码关注公众号,回复: 13129456 查看本文章

3.日期函数

① Now:返回当前系统日期+时间
   Select Now();
② Curdate:返回当前系统日期,不包含时间
   Select Curdate();
③ Curtime:返回当前时间,不包含日期
   Select Curtime();
④ 获取年(YEAR)、月(MONTH)、日(DAY)、时(HOUR)、分(MINUTE)、秒(SECOND),还可获取月份的英文(MONTHNAME)
  例:
   Select Year(Now());
   Select Month(‘2021-1-25’);
⑤ Str_to_date 将字符通过指定的格式转换成日期
   例:Select Str_to_date(‘1-25-2021’,‘%c-%d-%Y);

指定格式可按如下表示: 


在这里插入图片描述
⑥ Date_format:将日期转换成字符
   例:Select Date_format(‘1-25-2021’,‘%c月-%d日-%年);
 4.其他函数
① Select version();查看版本
② Select Database( );查看当前数据库
③ Select user();查看当前用户
 5.流程控制函数
① if(判断条件,函数2,函数3):条件成立则返回函数2,否则返回函数3
   Select if(2>1,’大于‘,‘小于’)
② Case函数:
1>第一种用法:
      Case 要判断的字段或表达式
      When 常量1 then 要显示的值1或语句1
      When 常量2 then 要显示的值2或语句2
……
      Else 要显示的值n或语句n
      End
例:
   Select salary , department_id ,
   case department_id
    when 30 then salary 1.1
    when 40 then salary
1.2
    else salary
   end as 新工资
    From employee;
2>第二种用法:
      Case
      When 条件1 then 要显示的值1或语句1
      When 条件2 then 要显示的值2或语句2
……
      Else 要显示的值n或语句n
      End
例:
   Select salary , department_id ,
   case
    when salary>17000 then ‘A’
   when salary>10000 then ‘B’
    else ‘C’
   end as 工资级别
   From employee;

二、 分组函数

  即聚合函数、组函数,做统计使用。常见分组函数:Sum求和、Avg平均值、Max最大值、Min最小值、Count计数
   例:Select Sum(salary),Avg(salary),Max(salary),Min(salary)
     From employee;

  • Sum、Avg一般用于处理数值型,Max、Min、Count可处理任何类型 所有分组函数都忽略null值
  • 可以和distinct搭配实现去重:
       例:Select Sum(distinct salary),Count(distinct salary)
    From employee;
  • Count函数详解
       Select Count(salary)From employee;不计数空值
       Select Count(*)From employee;一行中每一个都不为空时才不计数,所以用于统计行数
       Select Count(1)From employee;相当于添加一列全为1的列,这就能统计表中行数了

猜你喜欢

转载自blog.csdn.net/m0_46568930/article/details/113121850