• 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表示相关推荐

  1. 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 使用 ...

  2. MySQL多表连接查询——等值连接、非等值连接和自连接

    MySQL多表连接查询 1. 含义: 又称多表查询,当查询的字段来自于多个表时,就会用到连接查询 笛卡尔乘积现象: 表1 有m行,                               表2 有 ...

  3. 数据库编程1 Oracle 过滤 函数 分组 外连接 自连接

    [本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲>数据库编程1 Oracle 过滤 函数 分组 外连接 自连接本文实验基于的数据表:winso ...

  4. MySQL基础---连接查询(等值连接与非等值连接)

    多个表格查询, 笛卡尔乘积现象:表1有m行,表2 有n行.  结果有m * n行 发生原因在于没有有效的连接条件 如何避免:添加有效的连接条件 方法:分类方法 按照年代分类:sql192标准和sql1 ...

  5. 【MySQL】多表查询的分类1:等值连接和非等值连接

    目录 多表查询的分类1:等值连接VS非等值连接 1. 等值连接 2. 非等值连接 多表查询的分类1:等值连接VS非等值连接 1. 等值连接 等值连接指的是,多表查询语句中的连接条件使用的是等号.例如: ...

  6. SQL Server中的自连接和全外连接

                                SQL Server中的自连接和全外连接 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...

  7. 2022/1/22 北京 mysql 多表关联查询,等值连接、非等值连接,外连接,内连接、自连接

    一.笛卡尔积错误 要查询的俩个字段分别在俩张表 employee_id,department_name.所以要多表关联查询 select * from employees; -- 能查询出107条记录 ...

  8. 连接查询之内连接(等值连接、非等值连接和自连接)

    1.等值连接:表连接条件是等值关系,我们称为等值连接. 需求:查询每个员工所在部门名称,显示员工名和部门名: 查看员工表的ename和deptno字段信息: 查看部门表中的deptno和dname字段 ...

  9. 【MySQL】十五、内连接(等值连接,非等值连接,自连接)

    文章目录 1. 内连接 2. 非等值连接 3. 自连接 1. 内连接 内连接最大的特点是:条件是等量关系. 案例:查询每个员工的部门名称,要求显示员工名和部门名. 从emp表中取ename,从dept ...

最新文章

  1. Red Hat Enterprise Linux 5安装图解
  2. 工厂模式、策略者模式、责任链模式综合应用
  3. 转帖:iOS UIWindow UIWindowLevel
  4. Java设计模式(四):工厂设计模式
  5. python 多图一窗口 打乱列表排序
  6. MySQL · 特性分析 · 优化器 MRR BKA
  7. QML与C++混合编程详解
  8. 基于XML和注解的Spring Bean管理
  9. Jenkins环境搭建和部署项目的过程
  10. PTA题---求两个有序序列中位数所体现的思想。
  11. Java I/O(输入输出流)
  12. 今天安家 明天开始在网络的海洋里遨游
  13. IntelliJ IDEA 打包Maven 构建的 Java 项目
  14. 开发的第31天-解析有道单词本xml文件并上传到数据库
  15. 【人类历史】从食物采集者到食物生产者
  16. Class6:初学数据库之MySQL基础操作
  17. 批处理使用WinRAR压缩某类型的文件,一个文件压缩成一个压缩包,压缩后名称与原文件同名,压缩后删除原文件
  18. ZbxTable 2.1 重磅发布!周四直播分享
  19. 评点SAP HR功能及人力资源管理软件
  20. 2021-08-031179 最大的最大公约数

热门文章

  1. 员工信息、工资、部门、出勤管理系统(Java+Web+MySQL)
  2. uglifyjs报错 webpack_vue 解决uglifyjs-webpack-plugin打包出现报错的问题
  3. 【安全咨讯】发早安、晚安图片会被黑客攻击?老谣言“扩容”后再热传
  4. oracle 三步运算符,ORA-01476: 除数为 0
  5. kata kata pacar php,Membantu
  6. 【译】探索 Kotlin 的隐性成本(第三部分)
  7. SSRS 报表 日期类表达式
  8. 国产开源ChatGPT模型对比
  9. 蚂蚁风险大脑亮相ATEC城市峰会:为数字经济时代做好“安全守护”
  10. 2020阿里云镜像导出至本地过程记录