MySQL之常用函数

常用函数

字符函数:

  1. concat()拼接字符

    SELECT CONCAT('hello',last_name,first_name) FROM employees;
    
  2. length()获取字节长度

    SELECT LENGTH('hello,郭襄')		//12
    
  3. char_length()获取字符长度

    SELECT CHAR_LENGTH('hello,郭襄')	//8
    
  4. substr(str,起始索引,截取的个数) 截取子串

    ​ substr(str,起始索引) //从起始索引到最后

    ​ mysql起始索引为1,第二个参数为截取字符串的个数

    SELECT SUBSTR('张三丰爱上了郭襄',1,3)	//张三丰
    
    SELECT SUBSTR('张三丰爱上了郭襄',7)	//郭襄
    
  5. instr() 获取字符第一次出现的索引

    SELECT INSTR('三打白骨精','白骨精')   //3
    
  6. trim()去除前后指定字符,默认去空格

    
    
  7. LPAD/RPAD 左填充、右填充

    LPAD、RPAD (str,len,padstr)

    str:目标字符串

    len:结果字符串的长度

    padstr:填充字符串

    如果str的长度没有length那么长,则使用padstr填充;如果str的长度大于length,则截断。

  8. UPPER/LOWER 转大写、转小写

  9. strcmp 比较两个字符大小

​ STRCMP(expr1,expr2)

​ 如果字符串相同,则STRCMP()返回0;如果第一个参数根据当前排序顺序小于 第二个参数,则返回-1,否则返回1。

  1. left/right 截取字串

    LEFT、RIGHT(Str,length);

接收两个参数:

str:一个字符串;

length:想要截取的长度,是一个正整数;

数学函数:

  • ABS 绝对值

  • cell 向上取整

  • foolr 向下取整

  • round 四舍五入,小数点后一位四舍五入

  • truncate 截断

  • mod 取模

日期函数:

  1. now() 获取当前日期包含时间

  2. curdate() 获取当前日期

  3. curtime() 获取当前时间

  4. DATEDIFF(date1,date2) 获取两个日期差

  5. DATE_FORMAT(date,format) 获取指定格式的日期时间

  6. str_to_date(str,format) 按指定的格式解析字符串为日期类型

  7. 在日期中提取年、月、日、时、分、秒

    • year(date);

    • month(date);

    • day(date);

    • hour(date);

    • minute(date);

    • second(date);

流程控制函数:

  1. if函数

    • IF(expr1,expr2,expr3)

      如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。

      SELECT IF(TRUE,'A','B');    -- 输出结果:A
      
      SELECT IF(FALSE,'A','B');   -- 输出结果:B
      
    • IFNULL(expr1,expr2)

      IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。

      SELECT IFNULL(NULL,'B');    -- 输出结果:B
      
      SELECT IFNULL('HELLO','B'); -- 输出结果:HELLO
      
    • NULLIF(expr1,expr2)

      NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。

      SELECT NULLIF('A','A');     -- 输出结果:null
      
      SELECT NULLIF('A','B');     -- 输出结果:A
      
    • ISNULL(expr)

      ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。

      SELECT ISNULL(NULL);        -- 输出结果:1
      
      SELECT ISNULL('HELLO');     -- 输出结果:0
      
  2. case函数

    SELECT salary '原始工资' ,department_id,
    
    CASE department_id
    
    ​	WHEN 30 THEN
    
    ​		salary*1.1WHEN 40 THEN
    
    ​		salary*1.2WHEN 50 THEN
    
    ​		salary*1.3ELSE
    
    ​		salary
    
    END as 新工资
    
    FROM employees;
    

分组函数

说明:分组函数往往用于实现将一组数据经行统计计算,最终得到一个值, 又称为聚合函数或统计函数

  1. sum()/求和

  2. avg()/求平均数

  3. max()/求最大值

  4. min()/求最小值

  5. count()/计算非空字段的个数

补充:

  • 统计结果集的行数 :count(*) count(1) count(字段名)

②搭配distinct实现去重:count(distinct 字段名)

分组查询语法

语法: 执行顺序

select 查询列表 ⑤

from 表名 ①

where 筛选条件 ②

group by 分组列表 ③

having 分组后筛选 ④

order by 排序 ⑥

特点:
  • 查询列表为分组函数和被分组的字段

  • 分组查询中的筛选分为两类:

    位置筛选的基表使用的关键词
    原始表wheregroup by 前
    临时表havinggroup by 后
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值