表boy ,数据如下:

数据库的连接_第1张图片

表girl,数据如下:

数据库的连接_第2张图片

一、内连接 inner join :

问题:用sql查出boy和girl表中家庭完整的家庭ID和用户名?

select boy.hid,boy.name,girl.hid,girl.name from boy inner join girl on boy.hid=girl.hid;

数据库的连接_第3张图片

二、左连接 left join 或者左外连接 left outer join:
问题:用sql查出boy表所有用户对应的另一半?
select boy.hid,boy.name,girl.hid,girl.name from boy left join girl on boy.hid=girl.hid;

数据库的连接_第4张图片

三、右连接right join或者 右外连接 right outer join :
问题:用sql查出girl表所有用户对应的另一半?

select boy.hid,boy.name,girl.hid,girl.name from boy right join girl on boy.hid=girl.hid;

数据库的连接_第5张图片

四、完整的外连接 full join或者full outer join:

完整外连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。
注意:mysql不支持,oracle支持。

select boy.hid,boy.name,girl.hid,girl.name from boy full join girl on boy.hid=girl.hid;

数据库的连接_第6张图片