总结:内连接就是两个表的交集 ,左外连接就是左边表加两表交集 ,右外连接就是右边表加两表交集
一、外连接
1.左连接 left join 或 left outer join
SQL语句:select * from student left join score on student.Num=score.Stu_id;
2.右连接 right join 或 right outer join
SQL语句:select * from student right join score on student.Num=score.Stu_id;
3.完全外连接 full join 或 full outer join
SQL语句:select * from student full join score on student.Num=score.Stu_id;
通过上面这三种方法就可以把不同的表连接到一起,变成一张大表,之后的查询操作就简单一些了。
交叉连接查询,这种查询方式基本不会使用,原因就是这种查询方式得到的是两个表的乘积(笛卡儿集)
语法就是select * from a,b;则尽量不使用此语句,产生的结果过于繁琐。
内连接查询,可以有效的去除笛卡尔集现象
内连接查询分为两类:
二、内连接
join 或 inner join
SQL语句:select * from student inner join score on student.Num=score.Stu_id;
此时的语句就相当于:select * from student,score where student.ID=course.ID;
内连接查询分为两类:
隐式内连接
select * from A,B where 条件 隐式连接使用别名:
select * from A 别名1,B 别名2 where 别名1.xx=别名2.xx;
显示内连接
select * from A inner join B on 条件 (inner可以省略) 显示连接使用别名:
select * from A 别名1 inner join B 别名2 on 别名1.xx=别名2.xx
举例:
三、交叉连接
cross join,没有where指定查询条件的子句的交叉联接将产生两表的笛卡尔积。
SQL语句:select * from student cross join score;