1. 表的加法(union)

union操作符用于合并两个或多个select语句的结果集。

union内部的select语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条select语句中的列的顺序必须相同。

合并两个表(不保留重复行):

合并两个表(保留重复行):

2.表的联结(join)

交叉联结(cross join笛卡尔积):将表中的每一行都与另一个表中的每一行合并在一起,结果的行数是两张表行数的乘积。

在实际业务中用的比较少原因:结果行数太多了,需要花费大量的运算成本和设备支持;行数太多没有实际价值。

内联结(inner join):查找出同时存在两张表中的数据

左联结(left join):将左侧表中的数据全部取出来,两张表进行左联结的时候会将左侧的表作为主表,主表中的数据会全部读取出来。

去掉两个表中公共部分的数据:

右联结(right join):会将右侧表中的数据全部取出来,两张表进行右联结的时候会将右侧的表作为主表,主表中的数据会全部读取出来。

去掉两个表中公共部分的数据:

全联结(full join):返回左表和右表中的所有行,当某行和另一个表中有匹配的时候,两行进行合并,如果某个表和另一个表中没有匹配的行时,另一个表中对应的值用空值来填充。

3.联结应用案例

查询所有学生的学号、姓名、选课时数、总成绩:

查询平均成绩大于85的所有学生的学号、姓名和平均成绩:

查询学生的选课情况:学号、姓名、课程号、课程名称:

4.case表达式

case表达式可以帮助我们解决复杂的查询问题,相当于一个条件判断函数,判断数据是否满足某个条件;

case when <判断表达式> then <表达式>

when <判断表达式> then <表达式>

else <表达式>

end

查询学生成绩是属于及格还是不及格:

查询每门课程的及格人数和不及格人数:

注意事项:

①else子句可以省略不写,默认为else为空值,建议不要省略;

②end不能省略不写;

③case表达式可以写到sql语句的任意子句中。

使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计各分段人数、课程号和课程名称:

5.sql练习(sqlzoo)

sql join中能否使用case when_SQL(五)——多表查询相关推荐

  1. 在SQL Server中为什么不建议使用Not In子查询

    原文:在SQL Server中为什么不建议使用Not In子查询 在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来 ...

  2. SQL中的外键约束及多表查询

    SQL中的外键约束及多表查询 外键约束 foreign key 实体:数据库中的表,就可以看作一个实体,实体和实体之间有一些关系 比如说做一个网上商城的项目,里面有用户表,商品表,订单表 一对多的关系 ...

  3. 实验五 单表查询(V2.0版)

    实验五 单表查询 [实验目的] 1. 掌握单表的列的查询 2. 掌握单表的行的查询 [实验内容] 1. 实验前准备,SC数据库的创建.   (见参考资料1) 2. 查询的理论基础 命令: 1) Sel ...

  4. SQL JOIN 中 on 与 where 有何区别

    on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录.where 条件是在临时表生成好后,再对临时表进行过滤的条件. left join : 左连接,返回左表中 ...

  5. SQL join中on与where区别

    本文导读: 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户.例如在使用left jion时,on条件是在生成临时表时使用的条件,它不管on中的条件是否 ...

  6. 为什么selection.find在word vba中不返回所有结果?_工作表查询中,内连接Inner join的讲解...

    大家好,我们继续讲解VBA数据库解决方案,今日讲解第56讲内容: 数据表查询中,内连接Inner join的讲解.从这讲开始给大家实例讲解在查询中各种连接方式的应用.为什么到现在才讲解这块内容呢?是的 ...

  7. 【SQL Join】两个字段关联到同一个表,如何使用left join

    Join 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果.我们就需要执行 join. 下面列出了您可以使用的 JOIN 类型,以及它们之间的差异. JOIN: 如果表中有至少一个匹配,则返 ...

  8. sql 如何查询上次的记录_学会SQL并不难,小白学习记录之五(多表查询)

    1.表的加法 加法(union) 将两个表的数据按行合并在一起 两个表中重合部分会删除 union all 会保留重复行 2.表的联结 联结(join) 通过表和表之间的关系,将两个表合并在一起: 交 ...

  9. 图解SQL面试题 (学习笔记) 003多表查询----2

    这里写目录标题 一级目录 二级目录 三级目录 如何比较日期数据 如何交换数据 滴滴面试题:如何找出最小N个数 一级目录 二级目录 三级目录 如何比较日期数据 [题目] 下面是某公司每天的营业额,表名为 ...

最新文章

  1. 重点 (七) : 开发技巧/方法
  2. java file.canexecute_Java File canExecute()用法及代碼示例
  3. 1月6日 作业 穷举
  4. hdu 4350 2012 多校 - 6
  5. VTK:小部件之DistanceWidget
  6. 物联网安全威胁及应对措施
  7. 创建 vxlan 并部署 instance - 每天5分钟玩转 OpenStack(147)
  8. 利用系统错误日志监控磁盘健康状况
  9. 【LOJ6072】苹果树【折半搜索】【矩阵树定理】【二项式反演】
  10. matlab 细化函数,MATLAB图像处理工具箱函数(细化篇).doc
  11. STM32工作笔记0019---新建工程模板-基于固件库-M3
  12. 微信支付,判断是否安装了微信
  13. Output Arcade Utility Tool for Mac(Arcade音色库破解导入工具)
  14. k8s学习: Ingress Nginx
  15. 小D课堂 - 新版本微服务springcloud+Docker教程_5-07 断路器dashboard监控仪表
  16. IP地址及子网划分计算题
  17. 史上最全 ArcGIS 软件安装包分享
  18. 苹果mac下载了dms文件怎么办?
  19. 小程序基础知识整理(组件篇)
  20. JAVA计算机毕业设计房屋租赁管理系统Mybatis+系统+数据库+调试部署

热门文章

  1. 监控硬盘脚本linux,shell脚本实现磁盘监控系统
  2. 计算机可以待机无法关机,win7怎么设置不待机?如何设置自动关机的方法【详解】...
  3. HTML基础知识点(1)
  4. MySQL的chap服务器_chap01 初涉MySQL
  5. python AES使用
  6. c语言实现图片卷积_卷积神经网络(CNN)Python的底层实现——以LeNet为例
  7. python切片输出_Python语言之详解切片
  8. 高精度计算PI值 C语言 思路,高精度计算pi
  9. sql server datetime取年月_快速定位数据库性能问题,RDS推出慢SQL统计分析
  10. 屏幕的宽度_交互规范:响应式让屏幕利用更高,用户体验更佳