Oracle之多表查询(select之依旧苦难的工作)

SQL92(语法简单,可读性差)

SQL 92和SQL 99是SQL语句的编写标准

笛卡尔积

直观的感受一下
在这里插入图片描述
笛卡尔积里包含了两张表所有字段匹配的情况,即将两张表合成为一张表
在这里插入图片描述

内连接

等值连接
在这里插入图片描述
不等值连接
在这里插入图片描述
自连接
字面意思,自己与自己进行内连接
在这里插入图片描述
内连接特点

  • 左右两张表,只有满足条件匹配才会被查出,没有匹配则不会被查出来
外连接

左外连接
以左表为基准,坐标的全部信息都会显示,右表不管是否匹配到左表的信息都会进行显示
格式,在where后面=右边加上(+)
在这里插入图片描述
右外连接
以右表为基准,坐标的全部信息都会显示,左表不管是否匹配到右表的信息都会进行显示
格式,在where后面=左边加上(+)
在这里插入图片描述

SQL99(92基础上增加了关键字,可读性增强)

笛卡尔乘积(cross join 代替 “,”)

在这里插入图片描述

内连接([inner] join 代替 “,” on 代替 where)

自然连接(92中没有)
自动选择将两个表中相同名称的字段做等值匹配
在这里插入图片描述

使用using()做等值匹配也可以达到一样的效果
在这里插入图片描述
等值连接
在这里插入图片描述
不等值连接
在这里插入图片描述

外连接(outer join 代替"," 不需要(+),on 代替 where)

左外连接(left outer join)
在这里插入图片描述
右外连接(right outer join)
在这里插入图片描述
满外连接(full outer join)
在这里插入图片描述

三表连接查询

92写法
在这里插入图片描述
99写法
在这里插入图片描述
虽然两者结果相同,但性能是有差异的,主要在于两者所生成中间表的行数差异,92写法会生成许多冗余数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值