数据库中JOIN怎么用

数据库中JOIN怎么用,第1张

JOIN分为:内连接、相等连接、自然连接、交叉连接,如下:

a、显式的内连接与隐式连接(inner join == join )

显示连接:SELECT from employee join department on employeeDepartmentID = departmentDepartmentID

等价于:

隐式连接:SELECT from employee,department WHERE employeeDepartmentID = departmentDepartmentID

注:当DepartmentID不匹配,就不会往结果表中生成任何数据。

b、相等连接

提供了一种可选的简短符号去表达相等连接,它使用 USING 关键字。

SELECT from employee join department using (DepartmentID)

注:与显式连接不同在于:DepartmentID只显示一列

c、自然连接

比相等连接的进一步特例化。两表做自然连接时,两表中的所有名称相同的列都将被比较,这是隐式的。

自然连接得到的结果表中,两表中名称相同的列只出现一次

select from employee natural join department

注:在 Oracle 里用 JOIN USING 或 NATURAL JOIN 时,如果两表共有的列的名称前加上某表名作为前缀,

则会报编译错误: "ORA-25154: column part of USING clause cannot have qualifier"

或 "ORA-25155: column used in NATURAL join cannot have qualifier"

d、交叉连接(又称笛卡尔连接)

如果 A 和 B 是两个集合,它们的交叉连接就记为: A × B

显示连接:

select from employee cross join department

等价于

隐式连接:

select from employee,department

不使用join *** 作,您可以使用UNION ALL或EXISTS来实现两表关联。UNION ALL可以将两个表的数据合并,而EXISTS可以从一个表中查询数据,并根据另一个表中的条件进行筛选。

当代码开发人员只写join的时候,SQL解析器自动将其默认为内关联,既不是左关联也不是右关联。

左关联必须用Left join,右关联必须用right join。

给表之间设置主外键, 你查询多表的时候, 还是要 JOIN 的啊。

表之间设置主外键,会自动创建一个索引。

所以,理论上来说,你表之间设置了主外键。

这2个表之间关联查询的时候,性能要比 没有主外键的性能要好。

以上就是关于数据库中JOIN怎么用全部的内容,包括:数据库中JOIN怎么用、两表关联不用join的写法是什么、oracle数据库sql语句里只有join是左连接还是右连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10189549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存