mysql内连接,外连接,自然连接总结

2023-05-26  本文已影响0人  编程人生

1.UNION 和 UNION ALL 的区别

UNION ALL 关键字和  UNION 关键字的属性类似,它可以实现查询结果的合并,但不同的是UNION ALL 关键字 不会去掉合并结果中重复的数据。

2.关于笛卡尔积

在数据库中,使用这个概念表示两个表中每一行数据的所有组合。

select 查询字段 from 表1 cross join 表2

内连接:简单说就是返回两个表关联字段相符的记录,也就是返回两个表的交集。

select 查询字段

from 表1

[inner] join 表2 on 连接条件

[inner] join 表3 on 连接条件

.....

where 条件查询;

外连接: 外连接可以返回没有关联的数据,返回结果不仅包含符合条件的数据,而且包含左表或右表或两个表中的所有数据。

左外连接:查询结果中不仅显示左表满足条件的数据,还显示不满足条件的数据(左表的数据全部显示),而右表只保留满足条件的数据,不满足条件的显示为空。

select 查询条件 from 1 left [outer] join 表 2 on 表1.关键字 = 表2.关键字 where 查询条件;

右外连接:查询条件不仅显示右表满足条件的数据,还显示不满足条件的数据(右表的数据全部显示),而左表只保留满足条件的数据,不满足条件的显示为空。

自然连接: Mysql 还有一种自然连接,不需要指定连接字段,表与表之间列名和数据类型相同的字段会自动匹配。自然连接默认按内连接的方式进行查询。

其语法格式如下: select 查询字段 from 表1 [别名] nature join 表2 [别名];

自然连接也可以指定左连接或右连接的方式进行查询,语法格式如下

select 查询字段 from 表1 【别名】 nature 【left|right】 join on 表2 别名;

嵌套查询

1.子查询作为查询条件

在复杂的查询中,子查询往往作为查询条件来使用,它可以嵌套select 语句中。子查询可以在where 关键字 后作为 查询条件 或在from 关键字 后作为 作为表来使用。

2.子查询作为表

上一篇下一篇

猜你喜欢

热点阅读