数据库中的连接关系
今天上午有人问到我一个关于数据库的知识点:“你知道左连接与右连接的区别吗?”
当时,别人问我的时候,我脑袋里很清楚这个问题,就连在大学期间课本上有关这部分的知识也记得非常清楚,不过要用语言描述还真是一时不知道怎么表述,也许是程序媛平时只知道怎么去写,不知道怎么说的缘故吧。所以,当时我也就没有用语言去直接回答这个问题,只是说这个问题我清楚是怎么回事。
后来,上网查了一下这个知识点,发现其实用语言表述也许要比举例说明更来得快吧。可当时,还是没有正面回答别人。
下面就将我学习到的这个知识点记录下来,以便进一步掌握。
表A:
aid adate
1 a1
2 a2
3 a3
表B:
bid bdate
1 b1
2 b2
4 b4
左连接:首先列出A表中的所有数据,然后再加上与A、B匹配的数据
1 a1 b1
2 a2 b2
3 a3 空字符
右连接:首先取出B表中的所有数据,然后再加上与A、B匹配的数据
1 a1 b1
2 a2 b2
4 空字符 b4
注意:左右连接跟两个表A、B相连接,取出id相同的字段数据是不一样的。
select * from A,B where A.aid=B.bid这是仅仅取出匹配的数据:
此时取出的结果是:
1 a1 b1
2 a2 b2
这里顺便说一下union、union all
union:是连接两个表的数据并排除所有重复的数据
union all:不排除重复的数据
如果有写得不恰当的地方,还希望各位大神多指点,小女子会虚心学习的!