day08数据库的多表查询

一、报表查询

        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

备注:这就是一些自己学习时候找的题只供参考

二、多表设计

          一对一

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

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

          一对多

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

           多对多           

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

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

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

三、内连接查询

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

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

四、左连接和有链接(高频的面试题以我理解每次只要问道数据库就会问道此问题)

        就是以参考的表不同,其他差不多

五、数据库的优化问题

        查看它的执行计划,如果说需要优化的语句可以单独拿出来进行查看这个sql语句为什么运行慢。

        有两种情况,第一种就是你建立了索引但是没有走索引,像这种情况的话就是可以拿出你们公司的sql规范看一看是不是严格的遵守这个规则,比如说就是不要写一些不等于什么的这些符号能用函数就用函数。另一种情况的话就是没有索引,当然这个就非常的好解决建立一个索引就可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值