mysql-多表
聚合函数
# 1.聚合函数的使用 所有数据当作一组 # 求所有手机的价格的总和 SELECT SUM(price) FROM `product`; # 求所有华为手机的价格的总和 SELECT SUM(price) FROM `product` WHERE brand = '华为'; # 求所有华为手机的平均价格 SELECT AVG(price) FROM `product` WHERE brand = '华为'; # 求手机的最高价格 SELECT MAX(price) FROM `product`; SELECT MIN(price) FROM `product`; # 1.求华为手机的个数 SELECT COUNT(*) FROM `product` WHERE brand = '华为'; SELECT COUNT(*) FROM `product` WHERE brand = '苹果'; SELECT COUNT(url) FROM `product` WHERE brand = '苹果'; SELECT COUNT(price) FROM `product`; SELECT COUNT(DISTINCT price) FROM `product`; #多个相同的价格只计算入一个 # 2. GROUP BY 分组: 华为、苹果、小米、vivo各自一组 SELECT brand , AVG(price),COUNT(*),AVG(score) FROM `product` GROUP BY brand; # 3. 在上条的基础上加上:平均价格>2000d的手机 HAVING的使用 SELECT brand , AVG(price) avgprice ,COUNT(*),AVG(score) FROM `product` GROUP BY brand HAVING avgprice > 2000 ; # 分组后查结果用having,它作用于GGROUP BY,分组前查询结果用WHERE,WHERE作用于表 # 4.评分大于7.5的手机的平均价格 SELECT AVG(price) FROM `product` WHERE score > 7.5; # 5.求所有手机 评分7.5以上,然后按照品牌分类,求出各自的平均价格 SELECT brand,AVG(price) FROM `product` WHERE score > 7.5 GROUP BY brand;
多表查询
我们如果是希望在查询到产品时,显示对应的品牌的相关信息,因为数据是存放在两张表中,所以这个时候就需要进行多表查询。
如果我们直接通过查询语句希望在多张表中查询到数据,这个时候是什么效果呢?
例如:现在又两张表
1 |
|
可见,在这样子进行多表查询时,其数据量是两表数量的乘积,笛卡尔乘积。
1 |
|
真实开发中,常用连接 join的方式,进行多表之间的连接 sql-join
- 左连接
- 右连接
- 内连接
- 全连接
具体语句可参考 菜鸟教程
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 亚东`s blog!
评论