视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据库联合查询—小知识大攻略
2020-11-09 15:46:40 责编:小采
文档

无论是在学习耿老师视频,还是自考数据库原理,我们都接触到联合查询这部分,但在实践中并没有过多的去应用。现在做项目才真正认识到理论运用到实践的重要性。 一、概念 联合查询是根据每个表之间的逻辑关系从两个或多个表中检索数据 , 而这逻辑关系则是每个

无论是在学习耿老师视频,还是自考数据库原理,我们都接触到联合查询这部分,但在实践中并没有过多的去应用。现在做项目才真正认识到理论运用到实践的重要性。


一、概念


联合查询是根据每个表之间的逻辑关系从两个或多个表中检索数据,而这逻辑关系则是每个表之间共同的列的关联性,这也是关系数据库查询的最主要的特征.

数据表的连接有:

1、内连接

2、外连接

(1)左连接(左边表不)

(2)右连接(右边表不)

(3)全外连接(不受)

3、交叉连接


二、实践


建立两张表,一张学生管理表(T_ManageStudent)和学生信息表(T_StudentInfo)

表1:(学生管理表):


表2:(学生信息表)


1、内连接

两表进行比较,满足连接条件的组合起来作为结果

语句:

方1:
 select dbo.T_ManageStudent.编号 as 编号1,dbo.T_ManageStudent.姓名,
 dbo.T_StudentInfo.编号 as 编号2,dbo.T_StudentInfo.职务
 from T_ManageStudent inner join T_StudentInfo on 
 T_ManageStudent.编号=T_StudentInfo.编号 

方2:
 select a.编号 as 编号1,a.姓名,b.编号 as 编号2,b.职务
 from T_ManageStudent as a inner join T_StudentInfo as b on 
 a.编号=b.编号

结果:

2、外连接


(1)左连接(左边表不)

返回结果集包含T_ManageStudent中所有记录,不仅仅是连接字段匹配的记录。如果T_ManageStudent中某条记录在T_StudentInfo中没有匹配记录,则结果集相应记录有关T_StudentInfo部分为NULLÈ

语句:

方1:
 select dbo.T_ManageStudent.编号 as 编号1,dbo.T_ManageStudent.姓名,
 dbo.T_StudentInfo.编号 as 编号2,dbo.T_StudentInfo.职务 from
 T_ManageStudent left join T_StudentInfo on T_ManageStudent.编号=T_StudentInfo.编号 
方2:
 select a.编号 as 编号1,a.姓名,b.编号 as 编号2,b.职务
 from T_ManageStudent as a left join T_StudentInfo as b on a.编号=b.编号


结果:

(2)右连接(右边表不)


返回结果集包含T_StudentInfo中所有记录,不仅仅是连接字段匹配的记录。如果T_StudentInfot中某条记录在T_ManageStudent中没有匹配记录,则结果集相应记录有关T_ManageStudent部分为NULLÈ

语句:

方1:
 select dbo.T_ManageStudent.编号 as 编号1,dbo.T_ManageStudent.姓名,
 dbo.T_StudentInfo.编号 as 编号2,dbo.T_StudentInfo.职务 from
 T_ManageStudent right join T_StudentInfo on T_ManageStudent.编号=T_StudentInfo.编号 
方2:
 select a.编号 as 编号1,a.姓名,b.编号 as 编号2,b.职务
 from T_ManageStudent as a right join T_StudentInfo as b on a.编号=b.编号


结果:

(3)全外连接(不受)


返回结果集包含T_ManageStudent和T_StudentInfo所有匹配和不匹配的记录

语句:

方1:
 select dbo.T_ManageStudent.编号 as 编号1,dbo.T_ManageStudent.姓名,
 dbo.T_StudentInfo.编号 as 编号2,dbo.T_StudentInfo.职务 from
 T_ManageStudent full join T_StudentInfo on T_ManageStudent.编号=T_StudentInfo.编号 

方2:
 select a.编号 as 编号1,a.姓名,b.编号 as 编号2,b.职务
 from T_ManageStudent as a full join T_StudentInfo as b on a.编号=b.编号


结果:

3、交叉连接


情况1(无where):

交叉连接将差生连接涉及的表的笛卡儿积,第一个表的行乘以第二个表的行等于笛卡儿积结果集的大小

情况2(有where):

同内连接一样

语句:

select T_ManageStudent.编号 as 编号1,T_ManageStudent.姓名,

T_StudentInfo.编号 as 编号2 from T_ManageStudent cross join T_StudentInfo 

结果:

下载本文
显示全文
专题