1基本连接
2内连接 inner join,inner可省略,与基本连接相似,只是表现不同,实现效果一样。只是等值连接放在on语序块中。
如下图,结果相同
3左外连接,第一个表是主表(外连接相对于内连接:左外连接,右外连接,全连接)
内连接自动消除任何不匹配的行,外连接有主从表之分,返回from主表中的所有行和从表中所匹配的行。
左外连接,outer可省略
查询结果返回主表中所有行以及和从表相匹配的行,不匹配的行填null
与内连接不同,限定条件放在on子句和where子句中查询结果不同。
放在0n子句中,返回匹配行和所有主表中的行,空的地方填充null。总之返回主表中所有行。
放在where子句中,先执行上半部分,再执行where.如下图。
4右外连接(right join),第一个表是从表,右边的表是主表。(左右表互换,实现左右连接互相转换)
5全连接(full outer join)注意左右表位置不同显示结果的排序方式不同,先列出左表中信息。
6交叉连接cross join(无where子句,返回两个表的笛卡尔积)
不加条件的交叉连接和基本连接作用相似。(下面两图结果一致)
7自连接(同一个表实现连接)
8联合查询(有无all在于是否显示重复行)注意:两个结果集有相同数目的目标列,且数据内容尽量保持一致。对应列的数据类型要一致。
9使用子查询(包含在其他查询的where子句中)
10嵌套子查询
11xml查询
12 for xml子句(raw,auto,explicit,path模式)
13 exists关键字查询(判断子查询是否有结果,true/flase)可以使用再where子句中或数据库编程中。
14交查询intersect(两个查询结果集求交)
15差查询intersect(两个查询结果集求交)