实验四:多表查询及数据库设计

1.实验目的

1)熟悉SQL Server 2005查询分析器环境。
2)掌握基本的SELECT查询及其相关子句的使用。
3)掌握复杂的SELECT查询,如多表查询、子查询、连接和联合查询。

2.实验内容

1)启动SQL Server 2005 查询分析器环境。
2)涉及多表的简单查询。
3)涉及多表的复杂查询。

3. 实验过程

3.1多表的简单查询

1)在KC表中查询学分高于3的课程信息,并按课程号升序排列。

SELECT *
FROM KC
WHERE 学分>'3'
ORDER BY 课程号 ASC

在这里插入图片描述
2)在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列。

SELECT 学号,AVG(成绩) AS 平均分
FROM XS_KC
GROUP BY 学号
ORDER BY 平均分 DESC

在这里插入图片描述
3)在XS_KC表中查询选修了3门以下课程的学生学号。

SELECT 学号
FROM XS_KC
GROUP BY 学号 HAVING(COUNT(*)<=3)

在这里插入图片描述
4)按学号对不及格的成绩记录进行明细汇总。

SELECT 学号,成绩
FROM XS_KC
WHERE(成绩<=60)
ORDER BY 学号 DESC

在这里插入图片描述
5)分别用嵌套查询和连接查询,求107号课程不及格的学生信息。

SELECT XS_KC.学号,成绩,姓名,出生日期
FROM XS_KC,XSQK
WHERE XS_KC.学号=(SELECT 学号 
            FROM XS_KC 
            WHERE 课程号='107' AND  成绩<='60' ) 

在这里插入图片描述
6)用连接查询在XSQK表中查询住在同一寝室的学生,即其联系电话相同

SELECT Y.姓名,X.联系电话 AS 联系
FROM XSQK AS X,XSQK AS Y
WHERE X.联系电话=Y.联系电话 AND X.姓名!=Y.姓名

在这里插入图片描述
7)查询XSQK表中所有的系名。

SELECT DISTINCT 所在系 
FROM XSQK

在这里插入图片描述
8)查询有多少同学选修了课程。

SELECT DISTINCT 学号 
FROM XS_KC

在这里插入图片描述
9)查询有多少同学没有选课。

SELECT 学号 
FROM XSQK
WHERE (NOT EXISTS(SELECT *
                  FROM XS_KC
                  WHERE XSQK.学号=XS_KC.学号 ))

在这里插入图片描述
10)查询与杨颖同一个系的同学姓名。

SELECT 姓名,所在系 
FROM XSQK
WHERE 所在系=(SELECT 所在系 FROM XSQK WHERE 姓名='杨颖')

在这里插入图片描述
11)查询选修了课程的学生的姓名、课程名与成绩。

SELECT 姓名,课程号,成绩 
FROM XSQK,XS_KC
WHERE (EXISTS(SELECT *
                  FROM XS_KC
                  WHERE XSQK.学号=XS_KC.学号 ))

在这里插入图片描述
12)统计每门课程的选课人数和最高分。

SELECT 课程号,COUNT(课程号) AS 选课人数,MAX(成绩) AS 最高分
FROM XS_KC
GROUP BY 课程号

在这里插入图片描述
13)统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列。

SELECT 学号,COUNT(课程号) AS 选课门数,SUM(成绩) AS 考试总成绩
FROM XS_KC
GROUP BY 学号
ORDER BY 选课门数 DESC

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值