mysql数据库交叉连接_【数据库】内连接、外连接、交叉连接

基本概念

关系模型(表)

关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

关系模型的数据结构非常简单:一张扁平的二维表。

元组:二维表中的具有相同数据类型的某一行

属性:二维表中的具有相同数据类型的某一列

笛卡尔积(Cartesian product):又称直积,分别用集合A和集合B的一个元素作第一、第二元素构成有序对,所有这样的有序对的集合称为A和B的笛卡尔积,记作A×B。

其符号化表示为:A×B = { | x∈A∧y∈B}。

易证:若|A| = m,|B| = n,则|AB| = m*n。(|A|表示集合A的模,即 集合A中元素的个数为m个)

例如:

A={a, b}, B={0, 1, 2},则

A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}

B×A={(0, a), (0, b), (1, a), (1, b), (2, a), (2, b)}

表:是实实在在地保存数据的实体,写入的数据都保存在表中

视图:是一个虚拟表,其内容由查询定义。

同真实的表一样,视图包含一系列带有名称的列和行数据;但是,视图并不在数据库中以存储的数据值集形式存在。

行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

候选码:若关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码。

主键:如果在一个关系中,有多个候选码可以选择,则选定其中的一个作为该关系的主键。

它的值用于唯一地标识表中的某一条记录。主关键字是一种唯一关键字。

码:是一个或多个属性的集合。

超码:是一个或多个属性的集合,超码中的这些属性可以让我们在一个实体集中唯一地标识一个实体。

注意:虽然超码可以唯一标识一个实体,但是可能大多数超码中含有多余的属性。所以我们需要候选码。

候选码:是极小的超码集,也就是它的任意真子集都不是超码,而他本身是超码。

主码:是被选中用来在一个关系中区分不同元组的候选码。

我来举个例子吧:

学生表(学号,身份证号,姓名,性别)

超码:(学号,性别)→(姓名)。学号和性别能唯一标识姓名一点问题都没有,但是其实标识姓名,只用学号就能标识了,不需要性别。

候选码:(学号)→(姓名),(身份证号)→(姓名)。学号或身份证号都能唯一标识姓名。

主码:(学号)→(姓名)。这是人为选择的,其实身份证号也能做主码。

连接

所谓"连接",就是两张表根据关联字段(就是ON后面的关联条件),组合成一个数据集。

内连接(inner join):(以左右表内匹配的记录为主)表示只包含匹配的记录。只返回两张表匹配的记录。

外连接(outer join):表示还包含不匹配的记录。

左连接(left join):(以左表所有的记录为主)又称左外连接,返回匹配的记录,以及表A多余的记录。

右连接(right join):(以右表所有的记录为主)又称右外连接,返回匹配的记录,以及表B多余的记录。

全连接(full join):(以两个表所有的记录为主)又称全外连接,返回匹配的记录,以及表A和表B各自的多余记录。

交叉连接(cross join):即 做笛卡尔积运算。

表A和表B不存在关联字段,这时表A(共有n条记录)与表B(共有m条记录)连接后,一对一组合配对,会产生一张包含n*m条记录的新表,返回新表。

89e37d44b8eee00b20924b54c42617c9.png

上图中,表A的记录是123,表B的记录是ABC,颜色表示匹配关系。返回结果中,如果另一张表没有匹配的记录,则用null填充。

例子:

学生表:

3b2ed49f7219dfb70e3cbcff2e5374f9.png

s_id:学生学号

s_name:学生名称

s_class:学生班级

老师表:

016a64a9edc84c3a3ca34889876d8294.png

t_id:老师id

t_class:老师管理的班级

t_name:老师名称

内连接(INNER JOIN)

/* 内连接 */

SELECT * FROM student INNER JOIN teacher ON s_class=t_class

/* 我比较喜欢这种 */

SELECT * FROM student,teacher WHERE s_class=t_class

7cd69710a1579400921c0091ecaf29e0.png

外连接(OUTER JOIN)

左外连接(LEFT JOIN)

/* 左连接 */

SELECT * FROM student LEFT JOIN teacher ON s_class=t_class

0beb318806b7921d5b4cfc6ce5e62e54.png

右外连接(RIGHT JOIN)

/* 右连接 */

SELECT * FROM student RIGHT JOIN teacher ON s_class=t_class

858cabbf9b46ef9159f9d7ad5e5eca9b.png

全外连接(FULL JOIN)

注意:Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+union+右外连接实现。

/* 全连接(不适用于MYSQL) */

SELECT * FROM student FULL JOIN teacher ON s_class=t_class

/* 全连接 */

SELECT * FROM student LEFT JOIN teacher ON s_class=t_class

UNION

SELECT * FROM student RIGHT JOIN teacher ON s_class=t_class

7ec05e58c68c5b1dd681fb2273828dec.png

交叉连接(笛卡尔积)(CROSS JOIN)

/* 交叉连接 */

SELECT * FROM student CROSS JOIN teacher

8e1f5d199ffb0e8ce07ac31b7899753b.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络资产管理系统_固定资产管理系统的三种网络架构方式

随着互联网技术的发展和信息技术的广泛使用,固定资产管理系统在各行业的应用越来越普及,固定资产管理系统作为当今主流的企业固定资产信息化管理模式,能够对企业固定资产进行有效管理并提升企业的管理水平。对于固定资产管理系统的网络结构方…

计算机网络基础:广域网协议相关知识笔记

广域网常指覆盖范围广、数据传输速率较低,以数据通信为目的的数据通信网。广域网主要是通过专用的或交换式的连接把计算机连接起来。广域网传输协议主要包括:PPP(点对点协议)、DDN、ISDN(综合业务数字网)、…

计算机网络基础:TCP/IP协议相关知识笔记​

1、TCP/IP特性逻辑编址:每一块网卡会在出厂时由厂家分配了唯一的永久性物理地址。针对Internet,会为每台连入因特网的计算机分配一个逻辑地址也就是IP地址。路由选择:专门用于定义路由器如何选择网络路径的协议,即IP数据包的路由选…

终于做出来了

1 <!doctype html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>精英大赛2号 </title>6 <meta name"Keywords" content"关键字">7 <meta name"Desp…

ashx连接mysql_ASP.net与SQLite数据库通过js和ashx交互(连接和操作)

ASP.net与SQLite数据库通过js和ashx交互(连接和操作)&#xff1a;废话(也是思路)&#xff1a;用的是VS2010&#xff0c;打算做网站前后台。由于不喜欢前台语言里加些与html和css和js的其他内容&#xff0c;想实现前后台语言的分离&#xff0c;与前后台通过js的ajax实现交互&…

计算机网络:九大命令!解决网络故障新思路

一&#xff1a;ping命令ping是个使用频率极高的实用程序&#xff0c;主要用于确定网络的连通性。这对确定网络是否正确连接&#xff0c;以及网络连接的状况十分有用。简单的说&#xff0c;ping就是一个测试程序&#xff0c;如果ping运行正确&#xff0c;大体上就可以排除网络访…

webpack打包后引用cdn的js_JS逆向:Webpack打包后的代码怎么搞?猿人学爬虫比赛第十六题详细题解...

实战地址http://match.yuanrenxue.com/match/16抓包分析地址栏输入 地址&#xff0c;按下F12并回车&#xff0c;发现数据在这里:查看cookie&#xff0c;无加密相关的字段。请求的接口倒是有个m的加密参数&#xff0c;看来这题的主要目的就是 看看m参数怎么进行加密的吧。切换 I…

计算机网络基础:IP基础知识笔记

1、 IP地址概念IP是用来唯一标识主机地址。IP地址 网络地址 主机地址(又称&#xff1a;主机号和网络号组成)例如IP&#xff1a;192.168.100.168 子网掩码 255.255.255.0 对应的网络地址和主机地址如下&#xff1a;192.168.100.168&#xff08;IP地址&#xff09; 192.168.1.…

bs架构的系统能连接mysql吗_HTTP、BS架构

Django 底层原理快捷键方向键方向键本键如果活动选项是选项按钮或文件则为移动焦点&#xff1b;方向键 Win键(简称Win键)使窗口全屏、最小化、靠左半边、靠右半边(部分版本不支持)&#xff1b;方向键Shift键将连续的文字或文件选中方向键(左右)Ctrl键 在英文单词或中文词语间跳…

离散卷积的计算

本文转自&#xff1a; 离散卷积与自相关----------信号处理系列 http://www.cnblogs.com/einyboy/archive/2012/12/30/2839633.html 一、 定义 离散信号f(n),g(n)的定义如下&#xff1a; N-----为信号f(n)的长度 s(n)----为卷积结果序列,长度为len(f(n))len(g(n))-1 以3个元…

计算机网络基础:Internet常用服务介绍​

1、域名服务Internet中的域名地址和IP地址是等价的&#xff0c;它们之间是通过域名服务完成映射的。实际上DNS是一种分布式地址信息数据库系统&#xff0c;服务器中包含整个数据库的某部分信息&#xff0c;并供客户查询。域名系统采用客户端/服务器模式&#xff0c;整个系统由解…

lamba

lamba /*** lamba*/Testpublic void test5() {Runnable r () -> System.out.println("hello");r.run();}Testpublic void test6() {int num 0;Runnable r new Runnable() {Overridepublic void run() {System.out.println("java");}};r.run();}

c语言深度剖析第三版pdf_入门到入坟,蕴含全网最强知识点3283页笔记、pdf教程,活到老,学到老...

又到了“金九银十”面试求职高峰期&#xff0c;在金三银四时也参与过不少面试&#xff0c;2020都说工作不好找&#xff0c;也是对开发人员的要求变高。前段时间自己有整理了一些Java后端开发面试常问的高频考点问题做成一份PDF文档&#xff08;1000道高频题&#xff09;&#x…

mysql 5.7.23要钱吗_最新mysql 5.7.23安装配置图文教程

2018年最新mysql5.7详细安装与配置&#xff0c;总共分为四步&#xff0c;其中环境变量配置不是必须的。1、安装包下载2、安装过程3、环境变量配置4、连接测试一、官网下载mysql安装包1.前往官网下载&#xff0c;下载链接为&#xff1a;2.选择合适你电脑系统的版本进行安装。如果…

计算机基础:信息安全相关知识笔记

1、信息安全要素机密性&#xff1a;保证信息不暴露给未授权的用户。完整性&#xff1a;得到允许的用户可以修改数据&#xff0c;并且可以判断数据是否被篡改。可用性&#xff1a;拥有授权的用户可以在需要时访问数据。可控性&#xff1a;可控制授权的范围内的信息流向以及行为方…

计算机网络安全基础知识笔记

1、网络安全威胁介绍非法授权访问&#xff1a;没有预先经过同意&#xff0c;就使用网络或相关的计算机资源就是非授权访问。主要有以下几种形式&#xff1a;身份攻击、假冒、非法用户进入网络系统进行违法操作、合法用户以未授权的方式进行操作。信息泄露丢失&#xff1a;主要是…

lambda

例子&#xff1a;