ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

day08数据库多表查询

2021-11-30 13:58:00  阅读:149  来源: 互联网

标签:customer day08 多表 chinese 数据库 查询 student id select


1.报表查询

        count       个数

        sun          总数

        avg          平均值

        max         最大值

        min          最小值  

统计班级里边有多少学生

select count(*)from student;

统计总成绩大于250分的人数

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

统计班级里边各科总成绩

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

统计所有科目的总成绩

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

统计一下语文平均成绩

select sum(chinese)/count(*) from student;

select avg(chinese) from student;

统计一下班级语文最高分和最低分

select max(chinese) from student;

select min(chinese) from student;

报表查询订单根据名称合并后,总价格>10000的商品

select * from orders group by product having sum(price) >7000

2.多表设计

        一对一

                一张表的一条记录只能与另外一张表的一条记录进行对应,反之亦然

                有时候,为了业务,或者避免一张表中数据量过大,过复杂,在开发中会进行一对一方式来设计表

        一对多

                指的是一个实体的某个数据与另外一个实体的多个数据有关联关系, 一对多的关系在设计的时候,需要设计表的外键

 

         多对多           

                一个实体的数据对应另外一个实体的多个数据,另外实体的数据也同样对应当前实体的多个数据。

                一个学生可以有多个老师,一个老师可以教多个学生

                解决方案:创建一个中间表,专门用来维护多表之间的对应关系,通常是能够唯一标识出数据的字段(主键)

 3.内连接查询

        内连接,inner join on 查询两张表,设定条件,将两张表中对应的数据查询出来

不会产生笛卡尔积,不会产生临时表,性能高

select * from customer c inner join orders o on c.id=o.customer_id;

select * from customer,orders where customer.id=orders.customer_id;

select * from customer c,orders o where c.id=o.customer_id;

4.左连接查询

        左外连接  left join   on 设定条件,将两张表对应的数据查询出来,同时将左表自己没有关联的数据也查询出来

        注意:join前面是左,后面是右

select * from customer c left join orders o on c.id=o.customer_id;

5.右连接查询

        右外连接 right join  on 设定条件,将两张表对应的数据查询出来,同时将右表自己没有关联的所有数据查询出来

select * from customer c right join orders o on c.id=o.customer_id;

标签:customer,day08,多表,chinese,数据库,查询,student,id,select
来源: https://blog.csdn.net/weixin_57795113/article/details/121629846

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有