赞
踩
数据库连接查询可以进行多表联查,可以同时展示多个表的数据,方便进行查阅。那么连接查询分为多种方式,我们可以根据要求筛选合适的方式进行查询。下面我们来讲解一下怎么进行多表联查。
首先连接查询大致分为3种形式,分别为:
内连接,外连接,交叉连接
(1)内连接
内连接,找的是两个表里共有数据(即交集),关键字是inner join on,inner join连接两个表,on是连接字段,如下所示,这两张表分别为b1表,b2表。
b1:(学号,年龄)
b2:(学号,成绩)
通过上边这俩表可以看出来,b1表里边有1,2,3号学生,b2表里边有1,2,4号学生,那么内连接是查询两个表里边共有的部分,查询结果应该是1,2号学生。
如下:
规则形式
不规则形式
内连接的不规则形式,可以用逗号连接两张表,连接条件用where表示
(2)外连接
外连接分为:左外,右外,全外
1)左外:left join on 左外连接是以左表为主,右表为辅,主表有的数据,辅表没有,则辅表用空补齐主表。如下:
2)右外:right join on 右外连接是以右表为主,左表为辅,主表有的数据,辅表没有,则辅表用空补齐主表。如下
3)全外:左外+union+右外 全外是互为主表,即并集。
(3)交叉连接
交叉连接的关键字是:cross join。交叉连接是查看两个表的组合有多少个,完全匹配。
例1:
查询参加考试的学生的信息
分析:
题目要求是“找参加考试的学生的信息”,所以只要成绩表里有成绩的人,都是参加考试的人。展示的字段分别来源于两个表。
stud.sid是表示sid是哪个表的,因为stud表里有sid
score表里也有sid,所以如果前边没有标明表的话,会报错
例2:
哪个学生,哪门课,考了多少分
分析:
上边这个例子涉及到了3个表,当多表连接时,中间表就尤为重要了,它起到承上启下的作用,那么我们这个例子用的中间表是成绩表(score),因为成绩表里有学号(sid),学号来源于学生表,起承上作用;成绩表中还有课程号(cid),课程号来源于课程表(course),启下作用。
例3:
查询90分以上的姓名,课程,成绩
例4:
查询姓名,课程,成绩,并按照成绩升序排序
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。