MySQL:常用函数

常用函数有:聚合函数,日期函数,数值函数,字符串函数,其他函数
1,聚合函数
count() 计数 sum()求和 avg(): 求平均数
2.日期函数
Curdate()日期、curtime()时间、now()日期+时间
group by 分组(分组函数的重要规则,having where 的区别)
3.数值函数
Abs()绝对值、floor()向下取整、ceil()向上取整、…
4.字符串函数
Concat() 字符串连接
5.其他函数
(1)Database()库、user()用户名、version()版本、…
Select database() from dual;

一:聚合函数
1.count() :求满足列条件的总的行数。
练习:
(1)、统计一个班级共有多少学生?

select count(id) from student_score;
Select count(chinese) from student; // 和上面的结果不同,忽略了null。
select count(*) from student;

(2)、统计数学成绩大于90的学生有多少个?

select count(*) from student where math>90;

(3)、统计总分大于250的人数有多少?

select count(*) from student where (chinese+english+math)>250;

表格:
在这里插入图片描述
注意: 除了count(*)以外,其他字段都会忽略NULL值;
2.sum(): 求总和。
练习:
(1)、统计一个班级数学总成绩?

select sum(math) from student;

(2)、统计一个班级语文、英语、数学各科的总成绩

select sum(chinese),sum(english),sum(math) from student;

(3)、统计一个班级语文、英语、数学的成绩总和

select sum(chinese+english+math) from student;

(4)、统计一个班级语文成绩平均分

select sum(chinese)/count(*) from student;  //或用avg

3.avg(): 求平均数。
(1)、求数学平均分

select avg(math) from student;

(2)、求一个班级总分平均分

select avg(chinese+english+math) from student;

4.min() 和 max() 求最大值和最小值。
(1)、求班级数学最高分和最低分

select max(math),min(math) from student;

5.group by 分组。
group by子句的真正作用在于与各种聚合函数配合使用。它用来对查询出来的数据进行分组。
分组的含义是:把该列具有相同值的多条记录当成一组记录处理,最后只输出一条记录。分组函数忽略空值。
练习:
表格: t_order:

   create table t_order(id int primary key,product varchar(20),price float(8,2));
    insert into t_order values(1,'xiaomi', 1000);
    insert into t_order values(2,'xiaomi',1100);
    insert into t_order values(3,'huawei',2200);
    insert into t_order values(4,'apple',8200);

1.对订单表中商品归类后,显示每一类商品的总价

select product,sum(price) from t_order group by product;

2.查询商品总价格大于3000的商品

select product,sum(price) from t_order group by product having sum(price)>100;

注意:
(1)、分组函数的重要规则
如果使用了分组函数,或者使用group by 的查询:出现在select列表 中的字段,要么出现在聚合函数里,要么出现在group by 子句中。
(上面的product出现在了group by中,price出现在了聚合函数中)
group by 子句的字段可以不出现在SELECT列表当中。

(2)、having where 的区别
①、where和having都是用来做条件限定的,
②、where是在分组(group by)前进行条件过滤,
③、having子句是在分组(group by)后进行条件过滤,
④、where子句中不能使用聚合函数,having子句可以使用聚合函数。

⑤、having子句用来对分组后的结果再进行条件过滤
having sum(price)>2000 相当于 拿着 列名为sum(price)去查询。

总结:select 语句条件顺序:
selec * from 表1 left join 表2 on 条件
[where 条件字句]
[group by 字句]
[having 字句]
[order by 字句]
[limit 字句]

二:日期函数
在这里插入图片描述

select curdate() from dual;
select curtime() from dual;
select now() from dual;
注: dual 是虚拟表,为了凑sql语句的格式;

三:数值函数
在这里插入图片描述
select abs(-23) from dual;
select ceil(3.13) from dual;
select floor(4.87) from dual;

四:字符串函数

select concat(‘hello’,‘world’) from dual;
select inset(‘helloworld’,2,3,‘xxxxxx’) from dual;
select lower(‘HELLO MYSQL’)from dual

五:其他函数

select database() from dual;
select version() from dual;
select user() from dual;
select password(‘admin’) from dual;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值