文档库 最新最全的文档下载
当前位置:文档库 › 实训13-多表查询——连接查询

实训13-多表查询——连接查询

多表查询——连接查询
学习目标:
* 理解连接查询的基本格式
* 能灵活运用连接查询实现多表查询
* 了解连接查询的分类
工作任务:
1. 查询孙晓龙的 所有选修课的成绩。
2. 查询选修了课程编号为“0101001”的学生的姓名和成绩。
3. 查询选修了“Illustrator平面设计”课程的学生的姓名和课程成绩。
任务1分析:
此查询要用到的数据库为student,用到的表为student和choice。最后要显示的信息为两列,一列是课程编号,一列为课程成绩。虽然这两列在choice表中都有,但是本例中要显示的是名叫孙晓龙的学生的选课信息。
解决这个问题可以将student和choice两表进行内连接操作,然后再筛选出满足条件的记录,即姓名为孙晓龙的学生的选课信息。
实验步骤:
USE student
GO
SELECT cno,grade
FROM student INNER JOIN choice
ON student.sno=choice.sno
WHERE sname='孙晓龙'
任务2分析
根据任务要求,此查询要用到的数据库为student,用到的表为student和choice。最后要显示的信息为两列,一列是学生姓名,一列为课程成绩
解决这个问题可以将student和choice两表进行内连接操作,然后再筛选出满足条件的记录,即课程编号为0101001的课程成绩。

实验步骤:
USE student
GO
SELECT sname AS 姓名,grade AS 成绩
FROM student INNER JOIN choice
ON student.sno=choice.sno
WHERE cno='0101001'
任务3分析
根据任务要求,此查询要用到的数据库为student,用到的表为student、choice和course。最后要显示的信息为两列,一列是学生姓名,一列为课程成绩。学生姓名在student表中,而课程成绩则在choice表中。
解决这个问题可以将student、choice和course三表进行内连接操作,然后再筛选出满足条件的记录,即课程名称为“Illustrator平面设计”的课程成绩。
实验步骤:
USE student
GO
SELECT A.sname AS 姓名,B.grade AS 成绩
FROM student AS A JOIN choice AS B
ON A.sno=B.sno
JOIN course AS C
ON https://www.wendangku.net/doc/5515673534.html,o=https://www.wendangku.net/doc/5515673534.html,o
WHERE https://www.wendangku.net/doc/5515673534.html,ame='Illustrator平面设计'
ORDER BY B.grade DESC

知识说明:
* 连接查询
连接查询是关系型数据库中重要的查询类型之一,通过表间的相关字段,可以追踪各个表之间的逻辑关系,从而实现跨表间的查询
* 连接查询的种类
JOIN关键字的含义
连接类型 连接符号 备注 左外连接 LEFT JOIN 外连接 右外连接 RIGHT JOIN 全外连接 FULL JOIN 交叉连接 CROSS JOIN 交叉连接 内连接 INNER JOIN INNER可省略

* 内连接的种类
等值连接
在连接条件中使用等号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的任何列,包括其中的重复列。
自然连接
自然连接是等值连接的一种特殊情况,即在连接条件中使用等于(=)运算符比较被连接

列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
不等值连接
在连接条件使用除等于运算符以外的其他比较运算符比较被接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。


相关文档