当前位置:网站首页 > 技术博客 > 正文

数据库外连接和内连接的区别



大家好,又见面了,我是你们的朋友全栈君。

1. 自然连接(*natural join)*

自然连接不用指定连接列,也不能使用ON语句,它默认比较两张表里相同的列,

显示结果如下:

2. 内连接(inner join和自然连接区别之处在于内连接可以自定义两张表的不同列字段。 内连接有两种形式:显式和隐式。 例:以下语句执行结果相同。

①隐式的内连接,没有INNER JOIN,形成的中间表为两个表的笛卡尔积。

namecodecodecode

② 显示的内连接,一般称为内连接,有INNER JOIN,形成的中间表为两个表经过ON条件过滤后的笛卡尔积。

namecodecodecode

3.外连接(outer join) ①左外连接(left outer join):返回指定左表的全部行+右表对应的行,如果左表中在右表中没有与其相匹配的行,则在查询结果集中显示为空值。 例:namecodecodecode 查询结果如下:

②右外连接(right outer join):与左外连接类似,是左外连接的反向连接。

namecodecodecode

②全外连接(full outer join):把左右两表进行自然连接,左表在右表没有的显示NULL,右表在左表没有的显示NULL。(MYSQL不支持全外连接,适用于Oracle和DB2。)

在MySQL中,可通过求左外连接与右外连接的合集来实现全外连接。 例:

namecode codecodenamecode codecode

4.交叉连接(cross join:相当与笛卡尔积,左表和右表组合。 SELECT student.,score. FROM student CROSS JOIN score ON score.=student.;

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/178803.html原文链接:https://javaforall.cn

版权声明


相关文章:

  • 服务器监控源码2024-12-03 13:29:59
  • linux autologin2024-12-03 13:29:59
  • visualc2010安装教程2024-12-03 13:29:59
  • 跳表结构的实现2024-12-03 13:29:59
  • 王码五笔输入法86版的字根全面吗?2024-12-03 13:29:59
  • verilog条件编译范例2024-12-03 13:29:59
  • idea maven 本地仓库2024-12-03 13:29:59
  • clash怎么开全局代理安卓2024-12-03 13:29:59
  • python pywin322024-12-03 13:29:59
  • js常用数据类型2024-12-03 13:29:59