测牛学堂:软件测试sql基础干货总结之sql表的关联查询(重点内连接)

性格测试 0 28

关联查询

之前介绍的内容都是针对一个表进行操作的。在实际开发中,我们经常会把一些信息拆成多个表,好处是便于维护,缺点就是查询起来比较复杂。

关联查询,就是查询多个表的信息。使用关联查询,两个表之间必须有相同的字段进行关联才可以。

内连接(常用)

连接两个表的时候,取的是两个表中都存在的数据。相当于数学中的取交集。

左连接(了解)

连接两个表时,取的是左边表中的所有数据,如果左表中的数据右表中没有对应的,用null来填充。

关键词:left join

测牛学堂:软件测试sql基础干货总结之sql表的关联查询(重点内连接)

右连接(了解)

连接两个表时,取的是右表中特有的数据,对于左表中不存在的数据,用null填充。

关键词:right join

测牛学堂:软件测试sql基础干货总结之sql表的关联查询(重点内连接)

内连接的详解

语法格式:

select * from 表1 inner join 表2 on 表1.列 = 表2.列

内连接语法2:

select * from 表1,表2 where 表1.列= 表2.列

例1:查询学生信息及学生的成绩

有两个表,一个是学生信息表students,一个是成绩表scores,他们通过学生编号studentNo进行关联

注意:

on后面的条件的字段,一定要写清楚是哪个表的字段,语法是 表名.字段名

select * from students inner join scores on students.studentNo = scores.studentNo

上面的结果是一个新的表,把两个表和成一个新的表返回出来。

写法2:通过where:

select * from students,scores where students.studentNo = scores.studentNo

例2:查询课程信息和课程成绩,课程信息的表是courses,课程成绩是scores

注意:

我们可以通过as 给表起别名,在后面on关联的时候就可以使用别名了。

他们的关联字段是courseNo

select * from courses as cour inner join scores as sco on cour.courseNo = sco.courseNo

例3:查询张三的成绩,要求结果显示姓名,课程号和成绩

注意:

1我们先通过内连接关联两个表获取想要的字段,再通过where去筛选新表

测牛学堂:软件测试sql基础干货总结之sql表的关联查询(重点内连接)

2as起别名,as关键字可以省略

select stu.name,sc.courseNO,sc.ccore from students stu

inner join scores sc

on stu.studentNo = sc.studentNo

where stu.name = '张三'

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。