数据库连接方式讲解

数据库有5种连接方式:内连接、左连接、右连接、全外连接、交叉连接

数据准备:两张表,五班没有学生,学号8的学生cid为7,在class表内没有记录

 

 

 

1、内连接(join,inner join)查询出两张表有关联的数据

select * from student,class where student.cid=class.id;
select * from student join class on student.cid=class.id;

 

2、左连接(left join、left outer join)查出左表所有数据,右表没有对应关联数据就置空

select * from student left join class on student.cid=class.id;

 

 3、右连接(right join,right outer join)查出右表所有数据,左表没有对应关联数据就置空

select * from student right join class on student.cid=class.id;

 

 4、全外连接(FULL OUTER JOIN)

注意:MySQL是不支持全外的连接的,这里给出的写法适合Oracle和DB2。但是可以通过左外和右外求合集来获取全外连接的查询结果。

select * from student left join class on student.cid=class.id
union
select * from student right join class on student.cid=class.id;

 

 

左连接、右连接、全外连接注意:where的条件不要放on后面

 5、交叉连接(CROSS JOIN)

交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积(没有条件的inner join)。

语句1:隐式的交叉连接,没有CROSS JOIN。

语句2:显式的交叉连接,使用CROSS JOIN。

两种返回的结果一致的,如下:

 

 

 

posted @ 2022-05-19 17:48  小侠う  阅读(3462)  评论(0编辑  收藏  举报