左连接 右连接 union

内连接 外连接 全连接 交叉连接 自身连接:

内连接:有三种写法.

1. select * from A,B where A.id=B.id  这是我们平时用得最多的.(WHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接)WHERE 和INNER JOIN产生的连接关系,没有本质区别,结果也一样。但是!隐性连接随着数据库语言的规范和发展,已经逐渐被淘汰,比较新的数据库语言基本上已经抛弃了隐性连接,全部采用显性连接了。)

2. select * from A join B on A.id=B.id

3. select * from A inner join B on A.id=B.id

 

外连接:

1. 左外连接  left join 或 left outer join  在内连接的基础上,显示左表所有记录

2. 右外连接  right join 或 right outer join   在内连接的基础上,显示右表所有记录

3. 全连接 full join  或 full outer join ,可以带where条件的.   完整外部连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。 

 

 交叉连接(完全连接)  cross join 不带where条件,(不能有on和where)  交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉连接也称作笛卡尔积

 

自身连接:同一个表自己与自己连接.

 

总结:除了交叉连接和内连接第一种写法外,其它连接都是 [...] join 表b on 条件. 这里的on必须的.

where条件是在join on 查询出的记录中再进行查询

 select * from A,B等同于交叉连接.



posted @ 2012-04-06 16:47  pantherbean  阅读(571)  评论(0编辑  收藏  举报