子查询,联结查询,组合查询练习

首先是子查询

子查询理解起来较简单,就是在一个数据查询里面加上一个设置条件,然后里面加上另外一个表的查询结果。
例如作业中的题,有三个表


image

比如我想要从成绩表中知道张三的语文成绩,光从score表中是没法知道是哪一个的,这时候子查询就可以查出


image

这里通过将另外两表里的id链接起来,查询到了对应的数据

接下来是联结查询

联结查询就像数学里面的求交集一样,把条件相同的数据放在一起,又或者把其中一个表吻合的数据放入另一个表
具体用法:比如我要通过科目的id来连接表score和表subject
那么就这样


image

这样id相匹配的部分就连接了起来
还有外联结
外联结是以其中一张表为主,另一张表匹配的进行连接,不匹配的部分显示为null
这里为了演示,在score表里面添加了一段新的记录


image

再使用左外联结
image

右外联结也是一样的用法和意义

组合查询

组合查询用于将不同的查询语句以一个结果返回,在每个select语句中间使用union来连接
如查询语文成绩的平均分和所有成绩的平均分


image

可以看到结果一次性的展示出来了

他们之间,我个人认为,联结查询的代码较简单,写起来字数少,而且在数据量较大时,因为联结查询只会查询一次,所以比查询多次的子查询要快一些,但是子查询的代码更直观,更易控制条件,所以需要在实际运用中进行取舍。
组合查询的不好一点是,因为用一个表表示了两次或多次查询的结果,很多不同条件的数据放在一起不利于整理

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 5,004评论 0 7
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 12,387评论 5 116
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,959评论 0 9
  • 导读: 首先先明确XML 是一种用于标准结构化文档交换的数据格式(另一种JSON),你可以在 XML 教程 中找到...
    饮杯梦回酒阅读 5,359评论 0 11
  • 姓名:楼灵芝 单位:杭州熙林服饰 【日精进打卡第34天】 【知~学习】 《六项精进》背诵3遍,共159遍; 《大学...
    心镜_8ef4阅读 1,324评论 0 0

友情链接更多精彩内容