课程 数据库原理与应用
实验名称查询数据库
院系— 计算机―专业班级_姓名__学
号 0202
实验日期2013 年11 月5 日
10 月29日
11
月12日
实验报告日期2013 年11月12日
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 姓名 =' 杨颖 ')
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论