14.1 实验目的

(1)掌握多表连接查询的常用方法

(2)了解外连接查询的方法

14.2 预备知识

1.多表连接查询的意义

很多情况下,我们要查询的结果无法从一张表中得到。例如要想知道“参与了某个项目的所有员工姓名”,就必须通过三张表联合查询,单纯从JOB表中只能得到参与项目开发的员工编号以及项目编号,无法得到员工姓名和项目名称。

这时要用连接查询。连接查询是关系数据库中最主要的查询,主要包括内连接、外连接和交叉连接等。通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。

为不同实体创建新的表,然后通过连接进行查询。

内连接的连接查询结果集中仅包含满足条件的行,内连接是SQL Server缺省的连接方式,可以把INNER JOIN简写成JOIN,根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种;交叉连接的连接查询结果集中包含两个表中所有行的组合;外连接的连接查询结果集中既包含那些满足条件的行,还包含其中某个表的全部行,有3种形式的外连接:左外连接、右外连接、全外连接

2内连接与外连接

内连接:

内连接是一种最常用的连接类型。内连接查询实际上是一种任意条件的查询。使用内连接时,如果两个表的相关字段满足连接条件,则从这两个表中提取数据并组合成新的记录,也就是说,在内连接查询中,只有满足条件的元组才能出现在结果关系中。

例如:要查询每个已经选课的学生的情况,查询语句为SELECT * FROM 学生表INNER JOIN 选课表ON 学生表.学号=选课表.学号根据比较方式分为:

1)等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

2)不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、、!。

3)自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。

外连接:

内连接的查询结果都是满足连接条件的元组。但是,有时我们也希望输出那些不满足连接条件的元组的信息。比如,我们想知道每个学生的选课情况,包括已经选课的学生(这部分学生的学号在学生表中有,在选课表中也有,是满足连接条件的),也包括没有选课的学生(这部分学生的学号在学生表中有,但在选课表中没有,不满足连接条件),这时就需要使用外连接。外连接是只限制一张表中的数据必须满足连接条件,而另一张表中的数据可以不满足

mysql查询只能是等式连接_mysql连接查询相关推荐

  1. MySQL获取连接_MySQL 连接查询超全详解

    1 作用 在MySQL中join操作被称为连接,作用是能连接多个表的数据(通过连接条件),从多个表中获取数据合并在一起作为结果集返回给客户端.例如: 表A: id name age 1 A 18 2 ...

  2. mysql 姓刘或姓李_MYSQL数据库查询

    作为测试人员最常用的数据库查询语句,本篇博文做了一个具体的总结,以下只是为了概述查询方法而举的例子,并不一定是最好的查询方式. 红色标记的地方是该查询语句中重点想要表达的查询方法. 一. 新建一个数据 ...

  3. mysql子查询分为几种方法_MYSQL子查询的5种形式

    mysql从4.1版开始支持子查询功能,在此版本前,可以用join写连表查询来进行替代,但不推荐这么写,相当麻烦,mysql子查询的几种常 见写法: 1.select * from xxx where ...

  4. mysql慢查询日志默认在哪里_MySQL 慢查询日志

    慢查询日志概念 MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中查询响应时间超过阈值的语句,具体指响应时间超过 long_query_time 值的 SQL,会 ...

  5. mysql查询出来的数据用连接_mysql – 使用查询从连接的表中检索数据

    我想做的事: 我想检索有关客户的所有数据字段(包括与他相关的表中的所有数据(例如,引用的国家和数据字段的数据字段) 我想将我的查询作为idUser的参数. 这是我的EER图: 我尝试了什么: SELE ...

  6. mysql授权连接_MySQL 连接认证授权步骤

    MySQL 在增加 user 时, 可以使用 INSERT mysql db 或 GRANT 的方式来增加 user, 但是为何使用 grant 增加, 于 user table 的 *priv 权限 ...

  7. kali mysql 远程连接_mysql连接的使用

    登录数据库,并创建数据库student 创建数据库命令create database student 创建两个表student,和score即学生表和成绩表. student表的字段有id,name, ...

  8. mysql一段时间过后 无法连接_MYSQL连接一段时间不操作后出现异常的解决方案

    最近做的网站使用的是MYSQL数据库 发现 果超过8小时应用程序不去访问数据库,数据库就断掉连接 .这时再次访问就会抛出异常,如下所示: com.mysql.jdbc.exceptions.jdbc4 ...

  9. mysql慢查询日志分析工具比较_MySQL慢查询日志总结 日志分析工具mysqldumpslow

    慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志 ...

最新文章

  1. 进程间通信(2) 内存映射FileMap
  2. android点击事件禁用,android-禁用所有视图的触摸事件
  3. linux安全策略与实例pdf,实验一:Linux用户管理与安全策略.pdf
  4. VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
  5. LeetCode Hot100 ---- 动态规划专题
  6. REST端点,可使用Apache Camel进行集成
  7. python tab和空格混用_我的 Python 编码规范
  8. 优秀的SharePoint 2013开发工具有哪些(二)
  9. autojs toast 可以改变字体颜色吗_喃喃札记 | 你真的需要一部pad做笔记吗?
  10. C#使用NPIO读写excle,并生成多个表单
  11. 转载:《TypeScript 中文入门教程》 17、注解
  12. 网页版excel服务器,用excel当数据库,做个简单的网页
  13. android实现截屏分享,Android截屏、保存、分享
  14. 王凯1987计算机系,王凯-专家人物-中国水网
  15. /var/log/journal日志清理
  16. 计算机在医疗设备中的应用,计算机在医疗设备管理中的应用
  17. SQL的多条件查询语句
  18. 编程之美——找符合条件的整数
  19. 基于Simulink融合IMU传感器数据(附源码)
  20. 计算机专业老师新学期工作计划,计算机教师工作计划

热门文章

  1. 使用docker下载并安装mongodb5.0.5
  2. linux 临时去掉cp别名_Linux 命令别名
  3. Springboot+Mysql物流快递在线寄查快递系统
  4. Jsp+Ssm+Mysql在线考试系统
  5. 基于JAVA+SpringMVC+Mybatis+MYSQL的在线作业管理系统
  6. 基于JAVA+SpringBoot+Mybatis+MYSQL的课程在线学习系统
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的家校通管理系统
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的图书馆预约占座管理系统
  9. 数据分析处理——透析表和交叉表
  10. Maven学习(四)-----Maven中央存储库