SQL数据库语言基础之SqlServer多表连接查询与INNER JOIN内连接查询

网友投稿 2065 2022-10-11

SQL数据库语言基础之SqlServer多表连接查询与INNER JOIN内连接查询

SQL数据库语言基础之SqlServer多表连接查询与INNER JOIN内连接查询

文章目录

​​一、简单连接查询​​​​二、多表连接查询​​​​三、INNER JOIN 内连接查询​​

一、简单连接查询

1、直接连接:无连接规则连接两表,得到的是两个表的笛卡尔积。

SELECT * FROM STU,COUSELECT * FROM STUSELECT * FROM

注意:这中直接连接一般都不会用,因为连接后的数据是没有规律的,是简单粗暴地结合在一起的,因此很难得到有效信息。

2、有连接规则连接两表:使用WHERE语句设定条件 (1)查询所有学生的学生信息和家庭作业信息(等值连接):

SELECT * FROM STU,HOMEWORKS WHERE STU.SNO=HOMEWORKS.H_SNO

(2)查询所有学生的学生名字和家庭分数(等值连接):

SELECT STU.SNAME,HOMEWORKS.H_SCORE_1,HOMEWORKS.H_SCORE_2,HOMEWORKS.H_SCORE_3FROM STU,HOMEWORKSWHERE STU.SNO=HOMEWORKS.H_SNO

3、表别名简化语句

SELECT a.SNAME,b.H_SCORE_1,b.H_SCORE_2,b.H_SCORE_3FROM STU a,HOMEWORKS bWHERE a.SNO=b.H_SNO

就是直接在FROM的表名后面加上名字,需要注意的是,起完别名后,在SELECT和其他语句中只能用别名了,不能使用原名。 当表名很长或者很复杂的时候,别名是个很好用的方法,可以很好地简化语句。

二、多表连接查询

就是连接多个表,方法和两个表连接类似,只是需要加多个等值条件。1、连接多表实例: 查询 张一 的所有选课及各个选课的成绩:

SELECT S.SNAME, C.C_COURSE_NAME, H.H_SCORE_1, H.H_SCORE_2, H.H_SCORE_3FROM STU S, COU C, HOMEWORKS HWHERE S.SNO=H.H_SNO AND C.CNO=H.H_CNO AND S.SNAME='张一'

2、分析: 需要连接3个表,然后需要确定这3个表的连接条件,即为学号与课程号,分别为其中两个表的主键,通过主键对应的外键进行与另外一个表的连接。并且在WHERE中需要添加一个查询条件,也就是名字为“张一”。

三、INNER JOIN 内连接查询

1、inner join说明 也就是连接查询的典型连接规则,将两个表或两个以上的表以一定的连接条件连接起来,从中检索出满足条件的数据。

2、连接查询实例练习 (1)与使用WHERE的连接规则一样,不过INNER是放在FROM中的:

--直接使用WHERESELECT * FROM STU,HOMEWORKS WHERE STU.SNO=HOMEWORKS.H_SNO AND STU.SNAME='张一'--使用JOIN内连接SELECT *FROM STU INNER JOIN HOMEWORKS ON STU.SNO=HOMEWORKS.H_SNOWHERE STU.SNAME='张一'

(2)还是上面的例子:查询 张一 的所有选课及各个选课的成绩(三表连接,直接使用多个INNER JOIN):

--使用WHERESELECT S.SNAME, C.C_COURSE_NAME, H.H_SCORE_1, H.H_SCORE_2, H.H_SCORE_3FROM STU S, COU C, HOMEWORKS HWHERE S.SNO=H.H_SNO AND C.CNO=H.H_CNO AND S.SNAME='张一'--使用JOIN内连接SELECT S.SNAME,C.C_COURSE_NAME,H.H_SCORE_1,H.H_SCORE_2,H.H_SCORE_3FROM STU S JOIN HOMEWORKS H ON S.SNO=H.H_SNO INNER JOIN COU C ON C.CNO=H.H_CNO WHERE S.SNAME='张一'

3、注意 (1)select … from A join B on …和select … from B join A on …查询结果本质上一样,都是内连接。 (2)inner join 可以简写为 join,也称为内连接。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Chatto:一个轻量级的Swift框架用来构建聊天应用程序(swift 常用框架)
下一篇:ThreadPoolExecutor中的submit()方法详细讲解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~