实验九 查询数据库.doc
文本预览下载声明
实验九 查询数据库
学号:20121020023 姓名: 张东旭 专业:信息管理与信息系统
实验时间:2013年10月23日 实验地点:文汇楼机房3201
1.实验目的
熟悉SQL Server 2000查询分析器环境。
掌握基本的SELECT查询及其相关子句的使用。
掌握复杂的SELECT查询,如多表查询、子查询、连接和联合查询。
2.实验内容
启动SQL Server 2000 查询分析器环境。
涉及多表的简单查询。
涉及多表的复杂查询。
3. 实验步骤
启动SQL Server查询分析器,打开“SQL查询分析器”窗口。
在“SQL查询分析器”窗口中选择要操作的数据库,如“XSCJ”数据库。
在KC表中查询学分低于3的课程信息,并按课程号升序排列。
在查询命令窗口中输入以下SQL查询命令并执行:(截图)
SELECT * FROM KC
WHERE KC.学分3
ORDER BY 课程号
在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列。(截图)
SELECT 学号,平均分=AVG(成绩) FROM XS_KC
GROUP BY 学号
ORDER BY 平均分 DESC
在XS_KC表中查询选修了3门以上课程的学生学号。(截图)
SELECT 学号 FROM XS_KC
GROUP BY 学号
HAVING COUNT(*)3
按学号对不及格的成绩记录进行明细汇总。(截图)
SELECT 学号,课程号,成绩 FROM XS_KC
WHERE 成绩60
ORDER BY 学号
COMPUTE COUNT(成绩)
BY 学号
分别用子查询和连接查询,求107号课程不及格的学生信息。(截图)
用子查询:
SELECT 学号,姓名,联系电话 FROM XSQK
WHERE 学号 IN
( SELECT 学号
FROM XS_KC
WHERE 课程号=’107’AND 成绩60)
用连接查询:
SELECT XSQK.学号,姓名,联系电话 FROM XSQK
JOIN XS_KC ON XSQK.学号=XS_KC.学号
WHERE课程号=’107’AND 成绩60
用连接查询在XSQK表中查询住在同一寝室的学生,即其联系电话相同(截图)
SELECT A.学号,A.姓名,A.联系电话 FROM XSQK A JOIN XSQK B
ON A.联系电话=B.联系电话 WHERE A.学号!=B.学号
请自已完成以下的查询: (写出代码,运行并截图)
查询XSQK表中所有的系名。
select distinct 所在系 from XSQK
查询有多少同学选修了课程。
select count(distinct 学号) as 选修课程人数 from XS_KC
查询有多少同学没有选课。
select count(distinct 学号) as 无选修课程人数 from XSQK where not 学号 in (select distinct 学号 from XS_KC)
查询与杨颖同一个系的同学姓名。
select 姓名 from XSQK where 所在系=
(select 所在系 from XSQK where 姓名=杨颖)
查询选修了课程的学生的姓名、课程名与成绩。
select XSQK.姓名,KC.课程名,XS_KC.成绩 from XSQK,KC,XS_KC
where XSQK.学号=XS_KC.学号 and XS_KC.课程号=KC.课程号 and XSQK.学号 in (select distinct 学号 from XS_KC)
统计每门课程的选课人数和最高分。
select XS_KC.课程号,count(*) as 选课人数,max(成绩) as 最高分
from KC,XS_KC
where KC.课程号=XS_KC.课程号
group by XS_KC.课程号
统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列。
select XSQK.姓名,count(课程号) as 选课门数,sum(成绩) as 总成绩
from XSQK,XS_KC
where XSQK.学号= XS_KC.学号
group by XSQK.姓名
4、实验中的问题及解决情况
5、实验总结
(1)记录做实验过程中的体会
(2)提出对该实验的意见和改进建议
显示全部