mysql笔记整理2.md

SQL 中的聚合函数 (统计次数)

语法:select sum(列名) ,sum(列名) ,…from 表名;
select count() from 表名 统计表中的行数。
select count(列名) from 表名 按具体列来进行统计行数。
select count(
) from 表名 where 条件判断 按具体符合条件的列来进行统计行数。

sum 函数 (求和)

语法:select sum(列名) ,sum(列名) ,…from 表名;
select sum(成绩) from 表名 ; 学生中成绩的总和
select sum(年龄),sum(成绩) from 表名; 学生中年龄和,成绩和
select sum(年龄)+sum(成绩) from 表名; 学生中年龄+成绩总和

函数ifnull

– 年龄为null返回0 否则返回年龄; 成绩为null返回0 否则返回成绩;
select sum(ifnull(年龄,0)+sum(ifnull(成绩,0))) from 学生;

返回的值truncate(截取)2位小数

select truncate(sum(ifnull(年龄,0) + ifnull(成绩, 0)),2) from 学生表;

avg 函数 (平均值)

语法: select avg(列名) from 表名;
select sum(年龄)/count(*) from 表名; 年龄和/总行数(含null)
select sum(年龄)/count(age) from 表名; 年龄和/年龄数(非null)
select avg(年龄) from 表名; 年龄和/年龄数(非null)

max,min 函数 (最大值 最小值)

select max(分数),min(分数) from student; 分数的 最大值,最小值

group by 分组函数(分组求和)

语法:select … from … group by 列名,列名

select 类别, sum(数量) as 数量之和 from 表名 group by 类别

select 商品,sum(价格) from 表名 group by 商品; ## 按商品分组再价格求和
select 商品,sum(价格) from 表名 group by 商品,价格; – 按商品再按价格分组,再价格求和

having 条件判断相当于where having和group by 一起使用

select 商品,sum(价格) from 表名 group by 商品 having 条件; – 满足条件的商品分组求和
============================where 和 having ==============================
一、关于group by 和having一起使用的规则如下所示:
​ group by 列名 having 条件
​ 分组之后加过滤条件。
二、where 和 having 的区别。
1、having 通常与group by 分组结合使用。 where 和分组无关。
2、having 可以书写聚合函数 (聚合函数出现的位置: having 之后)
​ 例如having中的 聚合函数(count,sum,avg,max,min),是不可以出现where条件中。
3、where 是在分组之前进行过滤的。having 是在分组之后进行过滤的。
​ 例句:select product,sum(price) from orders where price > 10
​ group by product having sum(price) >20;
执行顺序 where price>10→按product分组sum(price)求和后→having sum(price)>20

查询小结

查询的执行顺序:
1)from : 表名
2)where :条件过滤
3)group by : 分组
4)having : 分组之后进行过滤。
5)select :执行完毕之后,显示内容。
6)order by : 根据查询的内容进行排序输出.

查询总结:

from 表名
where 条件:
​ 逻辑运算符:and or not
​ 比较运算符:< > <= >= <> =
​ 在…之间:between…and…
​ in():任意的一个条件成立即可
​ is null/is not null
​ 模糊匹配:like % _
group by 列:对列进行分组。
having 条件:
​ 逻辑运算符:and or not
​ 比较运算符:< > <= >= <> =
​ 在…之间:between…and…
​ in(set)
​ is null/is not null
​ 模糊匹配:like % _
​ 聚合函数(sum,avg,max,min,count)
order by desc(降序)/asc(升序,默认)

数据库的备份

语法:mysqldump -u 用户名 -p 数据库名 > 磁盘SQL文件路径

数据库的恢复

恢复数据库,需要手动的先创建数据库:
恢复数据库语法:mysql -u 用户名 -p 导入库名 < 硬盘SQL文件绝对路径

数据库的多表设计

在数据库中,表总共存在三种关系,这三种关系如下描述:真实的数据表之间的关系:
​ 多对多关系、一对多(多对一)、一对一(极少)。
​ (一对一关系就是我们之前学习的Map集合的key-value关系)

猜你喜欢

转载自blog.csdn.net/qq_39223083/article/details/82842797
今日推荐