zoukankan      html  css  js  c++  java
  • 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;
      
  • 相关阅读:
    在IE和Firfox获取keycode
    using global variable in android extends application
    using Broadcast Receivers to listen outgoing call in android note
    help me!virtual keyboard issue
    using iscroll.js and iscroll jquery plugin in android webview to scroll div and ajax load data.
    javascript:jquery.history.js使用方法
    【CSS核心概念】弹性盒子布局
    【Canvas学习笔记】基础篇(二)
    【JS核心概念】数据类型以及判断方法
    【问题记录】ElementUI上传组件使用beforeupload钩子校验失败时的问题处理
  • 原文地址:https://www.cnblogs.com/alittlecooing/p/MySQL-Method.html
Copyright © 2011-2022 走看看