连接查询-外连接(FULL JOIN)、内连接(JOIN)、自身连接

一、表与表之间存在着某种联系,如果一个查询必须在多个表之间完成,则需要用到连接查询

二、连接查询的SQL查询语句

格式:

SELECT A1,A2,...,Am

FROM R1,R2,..,Rn

WHERE F

语义:

对R1、R2等多个表所形成的笛卡尔积通过F条件进行筛选,筛选出符合条件的元组并在SELECT语句中对相应的属性作以显示

三、多表连接查询

SELECT 【ALL|DISTINCT】<目标列表达式1>【,<目标列表达式2>,...】

FROM <表名或视图名1>【,<表名或视图名2>,...】

【WHERE <元组选择条件表达式>】

1、多个表的连接条件在WHERE子句后面与元组选择条件使用AND进行衔接

2、SELECT语句缺少连接条件,就会在多表的广义笛卡尔积上进行查询

3、举例1:查询选修课程号为“003”的学生姓名和成绩

select s.sN,sC.grade
from s,sC
where cNo='003' and s.sNo=sC.sNo

4、举例2:查询选修“高分子材料”课程的学生的学号、姓名、成绩

select s.sNo,sN,grade
from c,s,sC
where c.cNo=sC.cNo and
      s.sNo=sC.sNo and
	  cN='高分子材料'

注意:在多个表中同时存在的同名属性要在SELECT语句中查询的话前面必须加上表名前缀

四、外连接查询

1、在SQL语句中,外连接在FROM子句中指定,其语法规则如下:

FROM  <左关系 > LEFT|RIGHT|FULL 【OUTER】JOIN <右关系> ON <连接条件>

2、介绍:

左外连接:LEFT 【OUTER】 JOIN

右外连接:RIGHT 【OUTER】 JOIN

全外连接:FULL 【OUTER】 JOIN

连接条件可包含对参与连接的关系进行元组选择的条件

3、注意:!!!!

在外连接查询中,连接条件一定是在FROM子句中的ON项的后面的

4、实质:

外连接查询的实质是将连接到的表中的元组一定要显示出来,其它未匹配和其它表或者元组选择条件)到的列置为NULL

5、举例1(反应实质):查询所有学生姓名及选修课称号为“003”的成绩,没有选修该课程的学生,成绩显示为空。

select sN,grade
from s LEFT OUTER JOIN sC on s.sNo=sC.sNo and sC.cNo='003'

错误示例:

select sN,grade
from s LEFT OUTER JOIN sC on s.sNo=sC.sNo
where   cNo='003'

原因:WHERE子句的处理对象是进行左外连接好的新表中的元组,而正确示例中的元组选择条件的处理对象是受着左外连接影响的多个表中的元组

6、内连接查询

(1)常规连接查询也称为内连接查询,在FROM子句中指定

(2)语法规则:

FROM <左关系>【INNERJOIN <右关系> ON <连接条件>

(3)举例:查询选修“高分子材料”课程的学生的学号、姓名和成绩。

select s.sNo,s.sN,sC.grade
from c
join sC on c.cNo=sC.cNo 
join s on s.sNo=sC.sNo 
where c.cN='高分子材料'

五、自身连接查询

1、产生原因

SELECT语句进行查询一次只能去处理同一个表中的一个元组,要想同时处理同一个表中的两个元组就要用到自身连接查询

2、概述

(1)一个表与其自己进行连接

(2)需要对两个表进行重命名

(3)新表名作为表中属性的前缀

3、举例:查询每门课程的间接先修课程号

select first.cNo,second.pC
from c first,c second
where first.pC=second.cNo 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/703350.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

推荐这3个APP,帮助你成长

扇贝阅读 当年考英语四级&#xff0c;扇贝阅读帮了很大的帮&#xff0c;这个应用我推荐给了好多同学使用&#xff0c;大家一致反馈不错。 提供很多原版的英文原著供学习&#xff0c;还自带翻译功能&#xff0c;并且提供单词本&#xff0c;遇到不懂的单词可以纪录到单词本中&am…

车载网络安全指南 网络安全框架(二)

返回总目录->返回总目录<- 目录 一、概述 二、网络安全组织管理 三、网络安全活动 四、支撑保障 一、概述 汽车电子系统网络安全活动框架包含汽车电子系统网络安全活动、组织管理以及支持保障。其中,网络安全管理活动是框架的核心,主要指汽车电子系统生命周期各阶段…

Day 14:2938. 区分黑球和白球

Leetcode 2938. 区分黑球和白球 桌子上有 n 个球&#xff0c;每个球的颜色不是黑色&#xff0c;就是白色。 给你一个长度为 n 、下标从 0 开始的二进制字符串 s&#xff0c;其中 1 和 0 分别代表黑色和白色的球。 在每一步中&#xff0c;你可以选择两个相邻的球并交换它们。 返…

E10:流程明细表表单字段值变化触发事件

效果– //window.WeFormSDK.showMessage("这是一个E10的提示", 3, 2);// 获取表单实例const weFormSdk window.WeFormSDK.getWeFormInstance();// 获取主表字段fieldIdconst bt weFormSdk.convertFieldNameToId("bt");const lcbh weFormSdk.convertFi…

第五讲:51单片机+RA8889驱动控制彩屏 完整源码说明 【 源码v1.2 】

51单片机驱动控制彩屏系列讲座 第一讲&#xff1a;单片机STC89C52RA8889驱动控制彩屏【 源码v1.0 】 第二讲&#xff1a;单片机STC89C52RA8889驱动控制彩屏 代码移植介绍 第三讲&#xff1a;单片机STC89C52RA8889驱动控制彩屏 代码的压缩&#xff08;Keil编译器&#xff09; 第…

C++ 中的负无穷大赋值

1&#xff0c;代码先行 示例&#xff1a; #include<iostream> #include<limits>using namespace std;int main() {float inf_pos numeric_limits<float>::infinity();float inf_neg -1*inf_pos;cout << "inf_pos " << inf_pos &l…

揭秘:消费1000,竟能领回2000?每天还有额外收入?

大家好&#xff0c;我是吴军&#xff0c;今天将为大家揭秘一种令人眼前一亮的商业模式——循环购模式。你可能会问&#xff0c;消费1000元&#xff0c;商家却送出了2000元的“好处”&#xff1f;每天还有钱领&#xff0c;这些钱还能提现&#xff1f;这究竟是怎么一回事&#xf…

[13] CUDA_Opencv联合编译过程

CUDA_Opencv联合编译过程 详细编译过程可见我之前的文章&#xff1a;Win10下OpencvCUDA联合编译详细教程&#xff08;版本455、460、470,亲测可用&#xff01;&#xff01;&#xff01;&#xff09;本文给出Windows\linux下的opencvcuda的编译总结&#xff0c;摘自 <基于GP…

CNS-BL30H系列直流无刷电机驱动器|电机参数配置方法

CNS-BL30H系列直流无刷电机驱动器|电机包含CNS-BL30HB、CNS-BL30HDN、CNS-BL30HSN&#xff0c;采用一驱二设计&#xff0c;可以同时驱动两个小于48V/1000W的直流无刷电机&#xff0c;体积小巧&#xff0c;安装方便&#xff0c;接线快捷&#xff0c;本文重点介绍CNS-BL30H系列直…

23种设计模式之组合模式

组合模式 1、定义 组合模式&#xff1a;组合多个对象形成树状结构以表示具有部分-整体关系的层次结构。组合模式让客户端可以统一对待单个对象和组合对象 2、组合模式结构 Component&#xff08;抽象构件&#xff09;&#xff1a;可以是接口或抽象类&#xff0c;为叶子构件…

时序分解 | Matlab实现SCSSA-VMD融合正余弦和柯西变异的麻雀搜索算法优化变分模态分解时间序列信号分解

时序分解 | Matlab实现SCSSA-VMD融合正余弦和柯西变异的麻雀搜索算法优化变分模态分解时间序列信号分解 目录 时序分解 | Matlab实现SCSSA-VMD融合正余弦和柯西变异的麻雀搜索算法优化变分模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab…

Spring—bean

一、bean的作用域 单例 默认化为&#xff1a;单例&#xff08;singleton&#xff09; SpringBean类&#xff1a; package com.hei.bean; public class SpringBean { public SpringBean(){System.out.println("Springbean的无参数构造方法执行了"); } } spring,xml…

网络安全领域国内外有哪些法律法规?

1. 中国 1.中华人民共和国网络安全法&#xff08;简称网安法&#xff09; 生效时间&#xff1a;2017年6月1日主要内容&#xff1a;规范网络运营行为&#xff0c;维护网络安全&#xff0c;保护国家安全和公共利益&#xff0c;以及保护公民、法人和其他组织的合法权益。 2.中华…

CMA、CNAS软件检测报告如何收费?软件测评中心出具报告需多久?

众所周知&#xff0c;各行各业都需要资质认证&#xff0c;正如教师会有教师资格证&#xff0c;医师会有医师资格证&#xff0c;律师会有律师证&#xff0c;软件产品亦如此。对于软件测试报告来说CMA和CNAS资质认证就是获得行业甚至国家认可的重要依据。 CMA和CNAS软件检测报告…

将对象序列化到文件

ObjectOutputStream可以将一个内存中的Java对象通过序列化的方式写入到磁盘的文件中。被序列化的对象必须要实现Serialzable序列化接口&#xff0c;否则会抛出异常。 创建对象 public class Users implements Serializable {private int userid;private String username;priv…

C++和C语言到底有什么区别?

引言&#xff1a;C和C语言是两种非常常见的编程语言&#xff0c;由于其广泛的应用和灵活性&#xff0c;它们在计算机科学领域内受到了广泛的关注。虽然C是从C语言发展而来的&#xff0c;但是这两种语言在许多方面都有所不同。本文将对C和C语言进行比较和分析&#xff0c;以便更…

C++中的结构体——结构体中const的使用场景

作用&#xff1a;用const来防止误操作 示例 运行结果

2024最新流媒体在线音乐系统网站源码 音乐社区 多语言开心版

本文选自&#xff1a;2024最新流媒体在线音乐系统网站源码 音乐社区 多语言开心版 - 源码1688 应用介绍 简介&#xff1a; 2024最新流媒体在线音乐系统网站源码| 音乐社区 | 多语言 | 开心版 图片&#xff1a;

独立游戏之路:Tap篇 -- 获取OAID提升广告收益

Unity 之 获取手机:OAID、ClientId、GUID 前言一、Oaid 介绍1.1 Oaid 说明1.2 移动安全联盟(MSA)二、站在巨人的肩膀上2.1 本文实现参考2.2 本文实现效果2.3 本文相关插件三、Unity 中获取Oaid3.1 查看实现源码3.2 工程配置3.3 代码实现3.4 场景搭建四、总结前言 在当今的移动…

staruml怎么合并多个Project工程文件

如图现在有两个staruml文件 现在我想要把project2合并到project1里面 步骤如下&#xff1a; 1、首先打开project2 2、如图选择导出Fragment 3、选中自己想导出的模块&#xff08;可以不止一个&#xff09; 4、将其保存在桌面 5、打开project1 6、选择导入 7、选中刚刚…