数据库复习——笛卡尔积,等值连接,自连接,非等值连接,外连接的原理并用sql92和sql99表示
- 1.笛卡尔积:
假设两个表做笛卡尔积,就相当于A表中的每一行信息和B表中的所有信息进行映射,所形成的的新表,其他操作就是在此新表基础上进行查询操作。
sql92: select * from A,B
A表 B表
新表(A表和B表进行笛卡尔积):
- 2.等值连接:
在上图的新表上做筛选,选出符合条件的
sql92:select * from A,B where A.学号=B.学号
- 3.非等值连接:
sql92:select * from B,B mm where B.成绩>mm.成绩
- 4.自连接:自己和自己做笛卡尔积
sql92:select * from A mm,A tt where mm.姓名=tt.姓名
- 5.外连接:
利用此语句 select * from A,B where A.成绩=B.成绩 将两个表等值连接了起来,次结果会将A表或B表中不符合的行删除。此时保留不合格的次行信息,便有了左外连接和右外连接和全连接
定义:
左(外)连接,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。
右外连接:与左外连接实现效果相反
全连接:实现左外和右外连接的效果。
现在对表A和表B进行某些字段的增加和数据的更新,得到新的表A和表B
表A 表B
现在进行等值连接: select * from A,B where A.成绩=B.成绩 order by A.学号,B.学号 ,得到:次结果出现了上面红字(5.外连接此处红字)说明的情况
左外连接:sql92:select * from A,B where A.成绩=B.成绩(+) order by A.学号 (+在那边就显示那边的null)
右外连接:sql92 : select * from A,B where A.成绩(+)=B.成绩 order by A.学号
接着把上面的内容用sql99表示:
- 1.笛卡尔积:
select * from A cross join B
- 2.对sql92等值连接的变形
- 2.1 自然连接:
自动使用多表中所有相同字段(不但值相同,名字也要相同)进行连接(两表中有几个相同,就连接合并几个相同字段)
select * from A natural join B
- 2.2 使用using关键字对指定字段进行链接查询,但是必须是同名字段
select * from A inner join B using(学号)
- 2.3 使用on关键字可以直接在其后书写链接条件,没有限制 ,想和那个字段连接都可以。
select * from A inner join B on A.成绩>B.学号
select * from A inner join B on A.成绩=B.学号
- 3.外连接
- 3.1 左外链接 left outer join
select * from A left outer join B on A.成绩=B.成绩 order by A.学号
- 3.2右外链接 right outer join
- 3.3全外链接 full outer join
select * from A full outer join B on A.成绩=B.成绩 order by A.学号
数据库复习——笛卡尔积,等值连接,自连接,非等值连接,外连接的原理并用sql92和sql99表示相关推荐
- Oracle学习笔记(三)。连接查询。等值连接,非等值连接,自连接,LEFT OUTER JOIN,RIGHT JOIN,FULL JOIN,自然连接,内连接 INNERJOIN
文章目录 1. 什么是多表查询 2. 多表链接方式 3. 多表连接语法 3.1 语法结构 3.2 定义连接 3.3 原则 4. 等值连接-内连接 4.1 什么是等值连接 4.2 抉择矩阵 4.3 使用 ...
- MySQL多表连接查询——等值连接、非等值连接和自连接
MySQL多表连接查询 1. 含义: 又称多表查询,当查询的字段来自于多个表时,就会用到连接查询 笛卡尔乘积现象: 表1 有m行, 表2 有 ...
- 数据库编程1 Oracle 过滤 函数 分组 外连接 自连接
[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲>数据库编程1 Oracle 过滤 函数 分组 外连接 自连接本文实验基于的数据表:winso ...
- MySQL基础---连接查询(等值连接与非等值连接)
多个表格查询, 笛卡尔乘积现象:表1有m行,表2 有n行. 结果有m * n行 发生原因在于没有有效的连接条件 如何避免:添加有效的连接条件 方法:分类方法 按照年代分类:sql192标准和sql1 ...
- 【MySQL】多表查询的分类1:等值连接和非等值连接
目录 多表查询的分类1:等值连接VS非等值连接 1. 等值连接 2. 非等值连接 多表查询的分类1:等值连接VS非等值连接 1. 等值连接 等值连接指的是,多表查询语句中的连接条件使用的是等号.例如: ...
- SQL Server中的自连接和全外连接
SQL Server中的自连接和全外连接 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- 2022/1/22 北京 mysql 多表关联查询,等值连接、非等值连接,外连接,内连接、自连接
一.笛卡尔积错误 要查询的俩个字段分别在俩张表 employee_id,department_name.所以要多表关联查询 select * from employees; -- 能查询出107条记录 ...
- 连接查询之内连接(等值连接、非等值连接和自连接)
1.等值连接:表连接条件是等值关系,我们称为等值连接. 需求:查询每个员工所在部门名称,显示员工名和部门名: 查看员工表的ename和deptno字段信息: 查看部门表中的deptno和dname字段 ...
- 【MySQL】十五、内连接(等值连接,非等值连接,自连接)
文章目录 1. 内连接 2. 非等值连接 3. 自连接 1. 内连接 内连接最大的特点是:条件是等量关系. 案例:查询每个员工的部门名称,要求显示员工名和部门名. 从emp表中取ename,从dept ...
最新文章
- Red Hat Enterprise Linux 5安装图解
- 工厂模式、策略者模式、责任链模式综合应用
- 转帖:iOS UIWindow UIWindowLevel
- Java设计模式(四):工厂设计模式
- python 多图一窗口 打乱列表排序
- MySQL · 特性分析 · 优化器 MRR BKA
- QML与C++混合编程详解
- 基于XML和注解的Spring Bean管理
- Jenkins环境搭建和部署项目的过程
- PTA题---求两个有序序列中位数所体现的思想。
- Java I/O(输入输出流)
- 今天安家 明天开始在网络的海洋里遨游
- IntelliJ IDEA 打包Maven 构建的 Java 项目
- 开发的第31天-解析有道单词本xml文件并上传到数据库
- 【人类历史】从食物采集者到食物生产者
- Class6:初学数据库之MySQL基础操作
- 批处理使用WinRAR压缩某类型的文件,一个文件压缩成一个压缩包,压缩后名称与原文件同名,压缩后删除原文件
- ZbxTable 2.1 重磅发布!周四直播分享
- 评点SAP HR功能及人力资源管理软件
- 2021-08-031179 最大的最大公约数
热门文章
- 员工信息、工资、部门、出勤管理系统(Java+Web+MySQL)
- uglifyjs报错 webpack_vue 解决uglifyjs-webpack-plugin打包出现报错的问题
- 【安全咨讯】发早安、晚安图片会被黑客攻击?老谣言“扩容”后再热传
- oracle 三步运算符,ORA-01476: 除数为 0
- kata kata pacar php,Membantu
- 【译】探索 Kotlin 的隐性成本(第三部分)
- SSRS 报表 日期类表达式
- 国产开源ChatGPT模型对比
- 蚂蚁风险大脑亮相ATEC城市峰会:为数字经济时代做好“安全守护”
- 2020阿里云镜像导出至本地过程记录