• mysql-4-functions


    #进阶4:常见函数(单行函数)
    /*
    将一组逻辑语句封装在方法体中,对外暴露方法名
    语法:
    SELECT 函数名() 【FROM 表名】
    
    分类:
    1、单行函数:concat,length,ifnull等等
    2、分组函数:聚合函数,做统计使用
    
    */
    
    USE myemployees;
    
    #1、单行函数
    #1.1、字符函数
    # length()获取参数值的字节个数
    SELECT Length('john');
    
    #concat()拼接
    SELECT Concat(last_name, ' ', first_name)
    FROM employees;
    
    #upper, lower
    SELECT UPPER('john');
    SELECT LOWER('JOHN');
    
    #substr, substring
    #索引从1开始
    SELECT Substr('what a lovely dog!', 6, 8) AS out_put;  # 从索引6开始的8个字符
    
    #instr
    #子串初始位置在大串中第一次出现的索引
    SELECT Instr('what a lovely dog!', 'dog') AS out_put;
    
    #trim
    #去空格/特殊字符
    SELECT Length(Trim(' aaa ')) AS out_put;
    SELECT Trim('a' FROM 'aaaSSSaaa') AS out_put;
    
    #lpad, rpad
    #左/右边填充,用指定字符填充到指定长度
    SELECT Lpad('aaaa', 10, '*') AS out_put; 
    
    #replace
    #替换全部指定字符
    SELECT Replace('cat dog dog', 'dog', 'cat');
    
    
    #1.2、数学函数
    #round
    #四舍五入
    SELECT Round(-1.5);
    SELECT Round(-1.4, 2);  #小数点后保留2位
    
    #ceil, floor
    #向上/下取整
    SELECT Ceil(1.20);
    SELECT Ceil(-1.2);
    SELECT Floor(-1.2);
    
    #truncate
    #截断,保留指定的位数
    SELECT Truncate(1.6999, 2);
    
    #mod
    #取余: a - (a/b)*b
    SELECT Mod(-10, 3);
    
    
    #1.3、日期函数
    #now
    #当前系统日期+时间
    SELECT Now();
    
    #curdate, curtime
    #当前系统日期/时间
    SELECT Curdate();
    SELECT Curtime();
    #获取指定的部分
    SELECT Year(Now());
    SELECT Month(Now());
    
    #str_to_date
    #将字符转换为指定格式的日期
    SELECT Str_to_date('07-02-2020', '%m-%d-%Y');
    #案例1:查询1992-3-2入职的员工信息
    SELECT *
    FROM employees
    WHERE Date(hiredate) = '1992-04-03';
    
    SELECT *
    FROM employees
    WHERE hiredate = str_to_date('4-3 1992', '%c-%d %Y');
    
    #date_format
    #将日期转换为字符
    SELECT date_format(Now(), '%Y年%m月%d日') AS out_put;
    
    
    #1.4、其他函数
    SELECT VERSION();
    SELECT DATABASE();
    SELECT USER();
    
    #1.5、流程控制函数
    #if函数,实现if-else的效果
    SELECT IF(10>5, '大', '小');
    
    #查询员工是否有奖金,有就列出来
    SELECT last_name, commission_pct, IF(commission_pct IS NULL, 'no commission', commission_pct)
    FROM employees;
    
    #case函数
    /*查询员工的工资,要求:
    部门号=30,显示的工资为1.1倍
    部门号=40,显示的工资为1.2倍
    部门号=50,显示的工资为1.3倍
    其他部门显示原工资
    */
    SELECT salary AS 原始工资, department_id,
    CASE department_id
    WHEN 30 THEN salary*1.1
    WHEN 40 THEN salary*1.2
    WHEN 50 THEN salary*1.3
    ELSE salary
    END AS 新工资
    FROM employees;
    
    #查询员工的工资情况:
    /*如果工资>20000,A级别
    如果工资>15000,B级别
    否则,C级别
    */
    SELECT salary,
    CASE
    WHEN salary > 20000 THEN 'A'
    WHEN salary > 15000 THEN 'B'
    ELSE 'C'
    END AS "rank"
    FROM employees;
    

      

  • 相关阅读:
    1-1 课程简介 & 2-1 IDEA与Eclipse的不同 & 2-3 Intellij IDEA安装
    MyBatis入门
    贪婪法——————贪心算法
    Java排序之直接选择排序
    是时候学一波STL了。。。
    Java提高篇(三一)-----Stack
    Android 经常使用工作命令mmm,mm,m,croot,cgrep,jgrep,resgrep,godir
    【POJ 2750】 Potted Flower(线段树套dp)
    POJ 题目3321 Apple Tree(线段树)
    Android新手入门2016(14)--FragmentTabHost实现选项卡和菜单
  • 原文地址:https://www.cnblogs.com/chaojunwang-ml/p/13261532.html
Copyright © 2020-2023  润新知