ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL学习笔记-函数

2020-07-27 15:31:27  阅读:268  来源: 互联网

标签:返回 函数 WHEN 笔记 日期 MySQL NOW SELECT


目录

函数

  1. 字符函数
  2. 数学函数
  3. 日期函数
  4. 流程控制函数

函数

分类:

  • 分组函数:将一组值进行统计,得出一个值。
  • 单行函数:将一个值进行处理,得出一个值。
    调用语句:
select 函数名(实参列表);

分组函数:
分组函数这一块在我的另一篇文章MySQL学习笔记-查询中讲解过,这里不做赘述,有兴趣的同学可以过去看一下。

单行函数:

1. 字符函数

常用字符函数:

  • length:获取字节长度
    SELECT LENGTH('abc张三');
    
  • concat:拼接字符串
  • upper:将小写字符转换成大写
  • lower:将大写字符转换成小写
    SELECT UPPER('ABC'); 
    SELECT LOWER('ABC');
    
    #案例:将姓转大写,名转小写,然后拼接
    SELECT CONCAT(UPPER(last_name),' ',LOWER(first_name)) 姓名
    FROM employees;
    
  • instr:获取字串第一次出现的索引,索引从1开始,若找不到则返回0
    SELECT INSTR('张三丰爱上了三丰的郭襄','杨过');
    
  • substr:截取一段字符串
    SELECT SUBSTR('郭襄爱上了杨过',6);
    SELECT SUBSTR('郭襄爱上了杨过',1,2);
    
  • lpad:左填充
    SELECT LPAD('尹志平爱上了',5,'*');
    
  • rpad:右填充
  • trim:去除前后空格或特殊字符
    SELECT LENGTH(TRIM('         小 龙 女                    ')) 美女;
    SELECT TRIM('a' FROM 'aaaaaaaqqqqqq小qq龙q女qqqqqqqqqqqqqq') 美女;
    

2. 数学函数

常用的数学函数:

  • ceil:
    #向上取整,返回>=该参数的最小整数
    SELECT CEIL(-1.0);
    
  • floor:
    #向下取整,返回<=该参数的最大整数
    SELECT FLOOR(-1.0);
    
  • round:
    #四舍五入,先按绝对值四舍五入,然后加正负号
    SELECT ROUND(-1.56);
    SELECT ROUND(1.537,1);
    
  • rand:
    #随机数,返回0-1之间的小数,不包含1
    SELECT RAND();
    
    #返回50-100  a——b   floor(rand()*(b-a+1)+a)
    SELECT CEIL(RAND()*50+50);
    SELECT FLOOR(RAND()*51+50);
    
  • truncate:
    #截断
    #返回1.9
    SELECT TRUNCATE(1.99,1);
    #返回314
    SELECT TRUNCATE(314.15,0);
    #返回310
    SELECT TRUNCATE(314.15,-1);
    

3. 日期函数

常用的日期函数:

  • now
    #获取当前日期
    SELECT NOW();
    
  • curdate
    #获取时间,没有日期
    SELECT CURTIME();
    
  • year
  • month
  • monthname
  • day
    #获取日期的指定部分
    SELECT YEAR(NOW());
    SELECT MONTH(NOW());
    SELECT MONTHNAME(NOW());
    SELECT DAY(NOW());
    
    SELECT CONCAT(YEAR(NOW()),'年',MONTH(NOW()),'月',DAY(NOW()),'日') 日期;
    
  • datediff
    #判断两个日期的差别天数,前者比后者大,返回正数,小返回负数,相等返回0.
    SELECT DATEDIFF(NOW(),'2022-8-8');
    SELECT DATEDIFF('2017-9-25',NOW());
    

4. 流程控制函数

常用的流程控制函数:

  • if ...
    SELECT IF(100>9,'不错呦','不够大') 备注;
    
  • case when ...
    #语法:
    #CASE 
    #WHEN 条件1 THEN 显示的值1
    #WHEN 条件2 THEN 显示的值2
    #...
    #ELSE 显示的值n
    #END
    
    #类似于:
    #IF(条件1){
    #	语句1;
    #}ELSE IF(条件2){
    #}ELSE{
    #
    #}
    #案例:
    SELECT salary,
    CASE 
    WHEN salary>20000 THEN '购买汽车'
    WHEN salary>10000 THEN '购买手机'
    WHEN salary>5000 THEN '购买pad'
    ELSE '购买棒棒糖'
    END 购买资格
    FROM employees;
    
  • case ... when ...
    #语法: 
    #
    #CASE 字段或表达式
    #WHEN 值1 THEN 显示的值1
    #WHEN 值2 THEN 显示的值2
    #...
    #ELSE 显示的值n
    #END
    #
    #类似于:
    #switch(变量或表达式){
    #
    #	CASE 值1 :语句1;break;
    #	...
    #	DEFAULT:语句n;break;
    #
    #}
    #案例:查询部门和对应的级别
    SELECT department_id,
    CASE department_id
    WHEN 10 THEN 'A'
    WHEN 20 THEN 'B'
    WHEN 30 THEN 'C'
    WHEN 50 THEN 'D'
    END 级别
    FROM employees;
    

标签:返回,函数,WHEN,笔记,日期,MySQL,NOW,SELECT
来源: https://www.cnblogs.com/trentwu/p/MySQL-method.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有