【MySQL探索之旅】数据库设计以及聚合查询

2024-06-04 4860阅读

【MySQL探索之旅】数据库设计以及聚合查询 第1张

📚博客主页:爱敲代码的小杨.

✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!


小杨近些在学习人工智能方面的知识,发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

【MySQL探索之旅】数据库设计以及聚合查询 第2张

文章目录

  • 1. 数据库设计
    • 1.1 数据库设计基本概念
    • 1.2 数据库设计的步骤
    • 1.3 表设计
      • 1.3.1 一对一
      • 1.3.2 一对多
      • 1.3.3 多对多
      • 2. 聚合查询
        • 2.1 聚合函数
        • 2.2 分组查询
        • 2.3 条件过滤

          1. 数据库设计

          1.1 数据库设计基本概念

          • 数据库设计就是根据业务的具体需求,结合我们所学的 DBMS ,为了这个业务构造最优的数据存储模型。
          • 建立数据库中的表结构以及表与表之间的关联关系的过程。

            1.2 数据库设计的步骤

            1. 需求分析(数据是什么?数据具有哪些属性?数据和属性之间的特点是什么)

            2. 逻辑分析(通过 ER图对数据库进行逻辑建模)

              【MySQL探索之旅】数据库设计以及聚合查询 第3张

            3. 物理设计(根据数据库自身的特点把逻辑设计转换为物理设计)

            4. 维护设计(1. 对新的需求进行建表;2. 表优化)

            1.3 表设计

            1.3.1 一对一

            例如:人 和 身份证 的关系

            一个人只能对应一个身份证号

            【MySQL探索之旅】数据库设计以及聚合查询 第4张

            1.3.2 一对多

            例如: 班级 和 学生 的关系

            一个班级多个学生

            【MySQL探索之旅】数据库设计以及聚合查询 第5张

            1.3.3 多对多

            例如:学生 和 课程 的关系

            一个学生可以选择多个课程

            一个课程可以被多个学生选择

            【MySQL探索之旅】数据库设计以及聚合查询 第6张

            案例:

            1. 创建学生表:学生 id ,姓名

              create table student(
              	id int primary key auto_increment,
              	name varchar(20)
              );
              
            2. 创建课程表:课程表,课程名

              create table course(
              	courseId int primary key auto_increment,
              	courseName varchar(20)
              );
              
            3. 创建关联表:学生和课程之间的关系,需要包含学生id 和课程id 作为外键。

              create table student_course(
              	student_id int, 
               	course_id int,
               	primary key (student_id, course_id), 
               	foreign key (student_id) references student(id), 
               	foreign key (course_id) references course(courseId)
               );
              

            2. 聚合查询

            2.1 聚合函数

            常见的统计总数、计算平局值等操作,可以使用聚合函数来实现,常见的聚合函数有:

            函数说明
            COUNT([DISTINCT] expr)返回查询的数据的数量
            SUM([DISTINCT] expr)返回查询到的数据的总和,忽略非数值
            AVG([DISTINCT] expr)返回查询到的数据的平均值,忽略非数值
            MAX([DISTINCT] expr)返回查询到的数据的最大值,忽略非数值
            MIN([DISTINCT] expr)返回查询到的数据的最小值,忽略非数值

            案例:

            • count:计数

              -- 统计有多少位学生
              select count(*) from student;
              -- 统计学生表有多少个姓名,姓名为 NULL 不会计入结果
              select count(name) from student;
              

              【MySQL探索之旅】数据库设计以及聚合查询 第7张

            • sum:总和

              -- 统计分数的总和
              select sum(score) from score;
              -- 统计分数小于70的总分,如果没有返回null
              select sum(score) from score where score60 and score90;
              

              【MySQL探索之旅】数据库设计以及聚合查询 第8张

            • MIN:最小值

              -- 查询分数的最小值
              select min(score) from score;
              -- 查询分数在60到90之间的最小值
              select min(score) from score where score>60 and score

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]