DQL语句(四) -- 常见函数

一、概述

  功能:类似一 java 中的方法

  好处:提高重用性和隐藏实现细节

  调用:select 函数名(实参列表);

 

二、单行函数

1、字符函数

  concat:连接

  substr:截取子串

  upper:变大写

  lower:变小写

  replace:替换

  length:获取字节长度

  trim:去除前后空格

  lpad:左填充

  rlad:右填充

  instr:获取字串第一次出现的位置

2、数学函数

  ceil:向上取整

  round:四舍五入

  mod:取模

  floor:向下取整

  truncate:截断

  rand:获取随机数,返回0-1之间的小数

3、日期函数

  now:返回当前日期 + 时间

  curdate:返回当前日期

  curtime:返回当前时间

  year:返回当前日期的年

  month:月

  monthname:以英文形式返回月

  day:日

  hour:小时

  minute:分钟

  second:秒

  str_to_data:将字符串转换成指定的日期格式

  date_format:将日期格式化成字符

  datediff返回两个日期相差的天数

4、其他函数(系统函数)

  version:当前数据库服务器的版本

  database:当前打开的数据库

  user:当前用户

  password('字符'):返回该字符的密码形式

  MD5('字符')

5、流程控制函数

  ①if (条件表达式, 表达式1, 表达式2):如果条件表达式成立,返回表达式1,否则返回表达式2

  ②case

  情况一:

  case 变量或表达式或字段

  when 常量1 then 值1

  when 常量2 then 值2

  ...

  else 值n

  end

 

  情况一:

  case 

  when 条件1 then 值1

  when 条件2 then 值2

  ...

  else 值n

  end

 

三、分组函数

1、分类

  max:最大值

  min:最小值

  sum:和

  avg:平均值

  count:计算个数

2、特点

  ①语法

    select max(字段) from 表名;

  ②支持的类型

    sun 和 avg 一般用于处理数值型

    max、min、count 可以处理任何数据类型

  ③以上分组函数都忽略 null

  ④都可以搭配 distinct 使用

  ⑤count 函数

    count(字段):统计该字段非空值的个数

    count(*):统计结果集的行数

    count(1):统计结果集的行数

  效率上:

  MyISAM 存储引擎,count(*)效率最高

  InnoDB存储引擎,

  count(*)和count(1)效率高于count(字段)

  ⑥和分组函数一同查询的字段你,要求是 group by 后出现的字段

    只有 group by 后出现的字段才能和分组函数实现一一对应的关系,结果集才是一个比较规则的结果

 

posted @ 2018-06-22 14:07  昱晟  阅读(203)  评论(0编辑  收藏  举报