一:内连接
交叉连接:
交叉连接(Cross Join),又称“笛卡尔连接(Cartesian Join)”又称“交乘(Product)”,他是所有类型的内连接的基础。
SQL语句:
select *from 表名1 cross join 表名2
等价于:
select *from 表名1,表名2
相等连接:
SQL语句:
select *from 表名1 join 表名2 on 表名1.字段名=表名2.字段名
可以给表起别名,则SQL语句为:
select *from 表名1 别名1 join 表名2 别名2 on 别名1.字段名=别名2.字段名
自然连接:
自然连接(Natural join)是一种特殊的内连接,它要求相连接的两张表的连接依据列必须是相同的字段。(有些版本中sql server不支持自然连接)
SQL语句:
select *from 表名1 natural join 表名
二:多表连接查询
如果查询的信息来源于多张表,则可以通过两两相连的方式建立多表连接查询
SQL语句:
select *from 表名1 join 表名2 on 表名1.字段名=表名2.字段名 join 表名3 on 表名2.字段名=表名3.字段名
三:外连接查询
在内连接中,只有满足连接条件的记录才能出现在查询结果中,但在实际应用中,如果希望不满足连接条件的记录也在查询结果中出现,这时候就要用到外连接查询。
左外查询:
左外连接的结果包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为null。
sql语句:
select *from 左表 left join 右表 on 左表.字段名=右表.字段名
右外查询:
右外连接的结果包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于左表的列值为null。
select *from 左表 right join 右表 on 左表.字段名=右表.字段名