最近在复习sql语句,对三种链接方式进行如下总结:
先建两个表,student表和score表
select * from student;
student表数据如下:
select * from score;
score表数据如下:
可以看到students表中stu_id为16048008的记录对应score表没有数据;
1.内连接:INNER JOIN----显示两表的交集
select * from student inner join score on student.sid = score.stu_id;
从表中可以看出student表中sid=16048008,sid=16048009,sid=160480010在score表中没有对应数据,所以内连接的结果不显示这三名学生
2.左连接:LEFT JOIN---左表在join左侧,显示左表所有数据,右表没有对应的数据用NULL补齐,多了的数据删除
左表:student 右表:score
select * from student left join score on student.sid = score.stu_id;
从结果可以看出sid=16048008,sid=16048009,sid=160480010在score表中没有数据的部分用NULL代替
3.右连接:RIGHT JOIN---右表显示在join右边,显示右表所有数据,左表没有对应的数据用NULL对齐,多了的数据删除
左表:student 右表:score
select * from student right join score on student.sid = score.stu_id;
score表中没有的数据student表也不显示