• MySQL学习笔记-函数


    目录

    函数

    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;
      
  • 相关阅读:
    SSL/TLS
    openssl数字证书常见格式 协议
    Jetty 与 Tomcat 的比较
    Spring Boot 邮件配置
    SSL与TLS的区别以及介绍
    pring Boot 与Spring Cloud版本对应
    iOS initWithFrame、initWithCoder、awakeFromNib的区别解析
    浅析iOS tableview的selectRowAtIndexPath选中无效(默认选中cell无效)
    iOS 多线程NSThread理解与场景示例
    iOS7 UIWebview加载进度条实现
  • 原文地址:https://www.cnblogs.com/alittlecooing/p/MySQL-Method.html
Copyright © 2020-2023  润新知