课程    数据库原理与应用
实验名称查询数据库
院系— 计算机―专业班级_姓名__
0202
实验日期2013 11 5
10 29
11
12


实验报告日期2013 1112
1.实验目的
1)    熟悉SQL Server查询分析器环境。
2)    掌握基本的SELEC查询及其相关子句的使用。
3)    掌握复杂的SELEC查询,如多表查询、子查询、连接和联合查询。
2.实验内容
1)    启动SQL Server查询分析器环境。
2)    简单查询操作。该实验包括投影、选择条件表达,数据排序,使用临时表
等。具体完成以下题目,将它们转换为    SQL语句表示,在XSCJ数据库中实现
其数据查询操作。
a)    查询计算机系学生的学号和姓名
b)    查询选修了课程的学生学号
c)    查询选修课程号为‘101’的学号和成绩,并要求对查询结果按成绩的 降序排列,如果成绩相同按学号的升序排列。
d)    查询选修课程号为‘101 '且成绩在80~90之间的学生学号和成绩,并 成绩乘以输出。
e)    查询水利系或计算机系姓陈的学生的信息。
f)    查询缺少了成绩的学生的学号和课程号
g)    KC表中查询学分低于3的课程信息,并按课程号升序排列。
h)    查询全体学生的姓名出生年份和所在系
i)    查询 计算机经济系的所有学生的姓名和性别
j)    查询没有先行课的课程的课程号和课程名
3)    连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、 外连接、内连接、左连接、右连接和自连接等。
a)    查询107号课程不及格的学生信息学号,姓名,
b)    查询学生的学号、姓名、选修的课程号及成绩
c)    查询选修课程号为‘101 '且成绩在90以上的学生学号、姓名和成绩
d)    sql统计每个系的学生人数查询每一门课程的间接先修课(即先修课的先修课)
SELEC■课程名 FROM xs_kc A JOIN xs_kc B Where A.先修课程=B.课程名and先修课程is notnull
e)    用连接查询在XSQK表中查询住在同一寝室的学生,即其相同
SELECT A学号,A.姓名,A. FROM XSQK A JOIN XSQK B ON A.=B. WHERE A.学号!=B.学号
4)    嵌套查询
a)查询与’杨颖’在同一个系学习的学生的信息
select * from XSQK where 所在系 in (select 所在系 from XSQK where
姓名=' 杨颖')
比较: select * from XSQK where    所在系= (select 所在系 from XSQK
where 姓名 =' 杨颖') 的异同
b)查询选修了课程名为' 计算机原理' 的学生的学号和姓名
select 学号 , 姓名 from xsqk where 学号 in(select 学号 from sc where 课程号 in (select 课程号 from kc where 课程名 =' 计算机原理 '))
比较:
select 学号,姓名 from xsqk where 学号 in (select 学号 from xs_kc, kc where xs_kc. 课程号 =kc. 课程号 and 课程名 =' 计算机原理 ')
c)查询选修了课程' 101 '和课程' 102 '的学生的学号
d)查询所有选修了 101 号课程的学生姓名
e)查询没有选修了 1 号课程的学生姓名
f)查询选修了全部课程的学生姓名
h)查询没有人选修的课程号和课程名
i)查询每个学生的课程成绩最高的成绩信息 (sno,cno,grade)
5)数据库的集合查询和统计查询
a)XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排 列。
b)XS_KC表中查询选修了 3门以上课程的学生学号。
c)按学号对不及格的成绩记录进行明细汇总。
e)查询所有课程的总学分数和平均学分数 , 以及最高学分和最低学分
f)计算 101 号课程的学生的平均成绩 , 最高分和最低分
g)*. 查询每个学生的课程成绩最高的成绩信息 (学号,课程号,成绩)
h)*. 查询成绩低于该门课程平均成绩的学生的成绩信息    (学号,课程号 ,
成绩)
i). 查询各系的学生的人数并按人数从多到少排序
j)查询各系的男女生学生总数 , 并按系别 ,升序排列, 女生排在前
k)查询选修了 3 门课程已上的学生的学号和姓名
l)查询每个学生所选课程的平均成绩 , 最高分 , 最低分 , 和选课门数
select
m)查询平均分超过 80 分的学生的学号和平均分
n)查询计算机系中选修了 2 门课程以上的学生的学号
o)查询选修了 101 号课程或 102号课程的学生的学号
3.实验步骤
1)启动 SQL Server 查询分析器环境。
2)简单查询操作。该实验包括投影、选择条件表达,数据排序,使用临时表
等。具体完成以下题目,将它们转换为    SQL语句表示,在XSCJ数据库中实现
其数据查询操作。
a)查询计算机系学生的学号和姓名
b)查询选修了课程的学生学号
c)查询选修课程号为 ‘ 101'的学号和成绩, 并要求对查询结果按成绩的 降序排列,如果成绩相同按学号的升序排列。
d)查询选修课程号为 ‘101'且成绩在 80~90 之间的学生学号和成绩, 并 成绩乘以输出。
e)查询水利系或计算机系姓陈的学生的信息。
f)查询缺少了成绩的学生的学号和课程号
g)KC表中查询学分小于等于3的课程信息,并按课程号升序排列。
h)查询全体学生的姓名 , 出生年份 , 和所在系
i)查询 计算机 , 经济系的所有学生的姓名和性别
j)查询没有先行课的课程的课程号和课程名
3)连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、 外连接、内连接、左连接、右连接和自连接等。
a)查询 107号课程不及格的学生信息 (学号,姓名, )
b)查询学生的学号、姓名、选修的课程号及成绩
c)查询选修课程号为‘ 101'且成绩在 90 以上的学生学号、姓名和成绩
d)查询每一门课程的间接先修课(即先修课的先修课)
e)用连接查询在XSQK表中查询住在同一寝室的学生,即其相同
SELECT A学号,A.姓名,A. FROM XSQK A JOIN XSQK B ON A.=B. WHERE A.学号!=B.学号
4)嵌套查询
a)查询与' 杨颖'在同一个系学习的学生的信息
select * from XSQK where 所在系 in (select 所在系 from XSQK where 姓名 =' 杨颖 ')