对于基本表的连接操作,我们已经学习过很多次了,数据库视频中学习过,数据库书中学习过,新闻发布系统中学习过,但是今天在用的时候,忽然觉得好生疏,现在跟着我的博客来回顾一下吧。
将几个表中的字段连接起来,进行查询,这就是连接操作。
连接类型决定了如何处理连接条件中不匹配的元组。
其中内连接是等值连接,外连接分为了左连接、右连接、完全外连接三种。
连接条件决定了俩个关系中哪些元组应该匹配,以及连接结果中出现哪些属性。
其中,natrual表示自然连接。on表示等值连接操作。using中a1、a2等表示公共属性。
俩个表,分别为ScoreEntity和StudentBindPaperTypeEntity,现在要查询俩个表中都有的studentID中的数据。
select * from ScoreEntity as b inner join StudentBindPaperTypeEntity as s ON b.StudentId=s.StudentId
需要说明的是,查询的结果中含有b.StudentId=s.StudentId的重复列。于是,这样就查询到了所需要的信息,我们可以在这个信息上进行自己想要的增删改查啦。
select * from ScoreEntity as b left join StudentBindPaperTypeEntity as s ON b.StudentId=s.StudentId
需要说明的是,左连接是按照b.StudentId来遍历s.studentId,所有,结果就少不了b表有值,但是s表却为null。
右连接的道理和左连接的道理类似,只不过是以右面的表来遍历左边的表,结果会出现右边的表有值,而左边的表却是null的现象啦。
select * from ScoreEntity as b full outer join StudentBindPaperTypeEntity as s ON b.StudentId=s.StudentId
这个表的结果大家一定想到了,完全外连接是首先按照左边的表进行遍历,然后按照右边的表进行遍历,这样的结果一定会出现同一行中,左面的表有值,而右边的表是null,右面的表有值,而左面的表是null的现象啦。
在实际中,这些连接要和其他的sql语句一起拼接使用,关于sql语句,一定要熟练掌握,这些都是很基本的东东,一定要熟练运用哦。