04.mysql之常用函数、聚合函数

  1. 函数定义
    1.类似Java定义方法
    2.可以带参数
    3.必须有返回值(一行一列) ,重点:java方法可以没有返回值,数据库函数必须要有返回值
    select max(score) from sc;
    4.函数可以嵌套到sql语句中
    注:存储过程则不可以
    5.函数可嵌套调用

一、常用函数

1.日期函数

  1. NOW():获取当前日期和时间
    select now()
  2. DAY():获取日期中的天
  3. MONTH():获取日期中的月
  4. YEAR():获取日期中的年
  5. 日期转换函数DATE_FORMAT()/STR_TO_DATE()
    "YYYY-MM-dd HH:mm:ss" "2020/08/05"

DATE_FORMAT():将日期转换成字符串
STR_TO_DATE():将字符串转换成日期

查询各学生的年龄,只按年份来算
按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一
select sid,sname,sage,
year(now())-year(sage)+(case when convert(
DATE_FORMAT(now(),'%m%d'),signed)
-convert(DATE_FORMAT(sage,'%m%d'),signed)<0
then
-1
else
0
end) as a
from t_student;

select sid,sname,sage,
year(now())-year(sage)+if(convert(
DATE_FORMAT(now(),'%m%d'),signed)
-convert(DATE_FORMAT(sage,'%m%d'),signed)<0,-1,0) as a
from t_student;
查询本月过生日的学生
查询下月过生日的学生
date_add(NOW(), interval 1 MONTH)

2.字符串函数

  1. UPPER()/LOWER():大小写互转
  2. REPLACE():搜索并替换字符串中的子字符串
  3. SUBSTRING():从具有特定长度的位置开始的最一个子字符串
  4. TRIM():去除前后空格
  5. LENGTH():获取字符串长度

3.数字函数
1)FLOOR:向下取整
2)CEIL: 向上取整
3)ROUND:四舍五入
select FLOOR(-3.14), CEIL(-3.14);

二、聚合函数(SUM/COUNT/AVG/MAX/MIN)

  1. SUM():求和。常与GROUP BY一起使用,也可单独使用
  2. AVG():求平均值。常与GROUP BY一起使用,也可单独使用
  3. MAX():求最大值。常与GROUP BY一起使用,也可单独使用
  4. MIN():求最小值。常与GROUP BY一起使用,也可单独使用
  5. COUNT():统计记录的条数。常与GROUP BY一起使用,也可单独使用

三、合并(union)

  1. UNION:将所有的查询结果合并到一起,然后去除掉相同的记录

  2. UNION ALL:将所有的查询结果合并到一起,不会去除掉系统的记录

    前提条件:结果集列数个数相同,列的类型还要相同或是兼容
    使用场景:在项目统计报表模块,用来合并数据

convert:类型转换函数,例如:convert(expr,转换类型)

二进制,同带binary前缀的效果 : BINARY

字符型,可带参数 : CHAR()

日期 : DATE

时间: TIME

日期时间型 : DATETIME

浮点数 : DECIMAL

整数 : SIGNED

无符号整数 : UNSIGNED

三大范式: 原子性 所有分量依赖主键码 主属性不依赖非主属性

第一范式条件:必须不包含重复组的关系,即每一列都是不可拆分的原子项

第二范式条件:关系模式必须满足第一范式,并且所有非主属性都完全依赖于主码。

第三范式的条件:关系模型满足第二范式,所有非主属性对任何候选关键字都不存在传递依赖。即每个属性都跟主键有直接关系而不是间接关系

订单编号 订单日期
商品编号 订单编号 客户编号 商品数量 单价 商品名称 客户姓名

studentInfo
学生编号 学生姓名 年龄 班级 性别 住址编号 选修课程
中国湖南省长沙市天心区XX街道
中国湖南省岳阳市南湖区XX街道
中国湖南省长沙市岳麓区浪琴湾

函数/方法

public int a(){}

public void b(a()){

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值