ORCL查询

多表查询:使用等值和不等值连接在SELECT 语句中查询多个表中的数据和使用自连接还有使用外连接查询不满足连接条件的数据的多个连接方式。
所谓多表连接就是从多个表中获取数据,在此会产生一个笛卡尔集。
笛卡尔集会在下面条件下产生:省略连接条件,连接条件无效,所有表中的所有行互相连接。
我们为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件。比如同时需要两个表中的数据是可以写连接条件。
笛卡尔集的产生:
在这里插入图片描述

笛卡尔集的解决方法:
在这里插入图片描述

笛卡尔集的对比
未解决时:
在这里插入图片描述
解决之后:
在这里插入图片描述

滚动条同样都是滑到底部的,同样都是查询着一张表,可没给条件的就有着特别多的重复值数据而给了条件的就只有两个表内原本有的数据,笛卡尔集就是把表内的数据重复运行多次,如果表内数据很多那产生笛卡尔集就很有可能把电脑卡死,导致程序不能使用所以数据多的时候一定要注意笛卡尔集的产生。

等值连接:
等值连接就是连接此表在其他表中的外键,当然主键都是唯一的且非空的

在这里插入图片描述
使用别名:
因为很多时候需要查询很多数据,这个时候就需要别名来代替实名,因为表名有时候太长了又加上多这样会给我们的工作带来很大的不便,会产生忘记等等意外,所以这个时候就可以给数据库的表取别名。
在这里插入图片描述
用a或者b来代表表名或者自己随意取有意义的列名,这样对比以前就要好记很多也方便简洁一些。
非等值连接:
关键字BETWEEN加AND
在这里插入图片描述
AND表示包括两边的数值,非等值连接就是连接两个表里面的不同数据。
外连接:
使用外连接可以查询不满足连接条件的数据,外连接的符号是 (+)。
外连接又分为左外连接、右外连接。左外连接的加号在右边,右外连接的加号在左边。
table1.column(+) = table2.column;这个就叫做右外连接
table1.column = table2.column(+);这个就是左外连接
在这里插入图片描述
如图加号在左边,那么它就是右外连接,右外连接就是连接两个表内相同的ID当然是主键连外键的方式。
如果觉得加号在右边就叫左连接加号在左边就叫右连接不习惯的话可以使用另一种方法。
在这里插入图片描述
这一个也是左连接的意思,看英文单词就知道啦。右连接也是一样的写法,只是单词变化一下
把左连接的LEFT改成RIGHT就是右连接的意思了,这个就比加号好理解一点。
内连接: 合并具有同一列的两个以上的表的行, 结果集中不包含一个表与另一个表不匹配的行
外连接: 两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的行 ,这种连接称为左(或右) 外连接。没有匹配的行时, 结果表中相应的列为空(NULL). 外连接的 WHERE 子句条件类似于内部连接, 但连接条件中没有匹配行的表的列后面要加外连接运算符, 即用圆括号括起来的加号(+). 句子,理论需要记住。

猜你喜欢

转载自blog.csdn.net/weixin_44552839/article/details/89364267
今日推荐