zoukankan      html  css  js  c++  java
  • 三:函数


    函数
      1.单行函数
        常用函数:
          concat
          length 获取字节长度,在utf8中中文字节长度为3英文字母为1
          ifnull
          upper 全变大写
          lower 全变小写
          substr 截取字符串 索引从1开始,截取从在指定字符长度的字符
          instr 返回子串第一次出现的索引,如果找不到返回0
          trim 去掉前后的字符(默认空格)例如 SELECT TRIM('a' FROM 'aaaaaaaa刘aaaa德华aaaaaa');
          lpad 用指定的字符来做左填充并且指定长度
          rpad 用指定的字符来做右填充并且指定长度
          replace替换字符串中所有的

        数学函数:
          round 四舍五入
          ceil 向上取整:返回>=该参数的最小整数
          floor 向下取整:返回<=该参数的最大整数
          truncate截断
          mod 取余被除数为正就是正,为负就是负。 mod(a,b) = a-a/b*b
        日期函数

          SELECT DATEDIFF('1998-10-18' , '2020-12-14'); 时间的差值
          select now(): 返回当前系统日期加上时间
          select curdate(); 返回当前系统日期,不包含时间
          select time(); 返回当前时间不包含日期
          可以获取指定的不封,年月日,小时,分钟,秒 select year(now());
          select str_to_date('1998-2-3', '%Y-%c-%d'): 将日期格式的字符转换成指定格式的日期
            例如:select * from employees where hiredate = str_to_date('4-3 1992', '%c-%d %Y'); 由于有时需要用户输入字符串的数据,而且还不可能按照一定的格式,所以就可以使用这种方式
          select dateformat(now(), '%y年/%m月/%d日') :将日期转换成字符

        流程控制函数
          select if(10<5, '大', '小');
          case 要判断的字段或者表达式, when 常量1 then 要显示的值1或者语句1;

          # case函数的使用一:switch case的效果

          # case 要判断的字段或者表达式,
          # when 常量1 then 要显示的值1或者语句1;
          # when 常量2 then 要显示的值2或者语句2;
          # else 要显示的语句n
          # end
          SELECT gender,`first_name`,
          CASE first_name
          WHEN 'jone' THEN "man"
          ELSE "girl"
          END AS testCase
          FROM `employees`;
          # case函数的使用二: 类似于java中的多重if
          # case
          # when 条件1 then 要显示的值1
          # when 条件2 then 要显示的值2
          # else 要显示的值n
          # end

          # 案例 如果工资<200 显示A级别,如果<1500 显示B级别

      2.分组函数

        1.功能:用作统计使用,又称聚合函数或统计函数或组函数

        2.分类:

          sum 求和,avg 平均值,max最大值,min最小值,count 计算个数

    # 1.语法
    SELECT SUM(salary) AS 求和 FROM `salaries`;
    SELECT AVG(salary) AS 平均值 FROM `salaries`;
    SELECT MIN(salary) AS 最小值 FROM `salaries`;
    SELECT MAX(salary) AS 最大值 FROM `salaries`;
    SELECT COUNT(salary) AS 总个数 FROM `salaries`;
    SELECT SUM(salary) AS 求和,AVG(salary) AS 平均值,MIN(salary) AS 最小值 FROM `salaries`;
    使用方式

        3.参数支持那些类型:

          sum 和 avg 只支持数值型(null不参与运算)

          max 和min 由于,字符型也是可以排序的,所以支持字符型,当然日期型也是可以的(null会被忽略)

          count 计数是计算非空值的个数。

        4.和distinct搭配使用

          SELECT SUM(DISTINCT salary) AS 求和 FROM `salaries`;

        5. count 函数详细介绍

          select count(*) from employees; 统计总共有多少行

          select count(1) from employees; 相当于加了一列1然后统计有多少1

          效率: myisam  存储引擎下, count (*) 小率高

             INNOB  都一样

          select count(*) from employees where salary>5000;   # 和 where筛选一起用

        

  • 相关阅读:
    uva12436 回头再做一次
    Redhat中网络启动错误解决办法( Failed to start LSB: Bring up/down networking RTNETLINK answers: File exists)
    LNMP环境搭建Wordpress博客
    LNMP环境搭建Wordpress博客
    LAMP环境搭建一个Discuz论坛
    LAMP环境搭建一个Discuz论坛
    常见的SQL语句
    常见的SQL语句
    Linux系统中安装软件的几种方式
    Linux系统中安装软件的几种方式
  • 原文地址:https://www.cnblogs.com/BookMiki/p/14135581.html
Copyright © 2011-2022 走看看