一、实验目的
- 观察查询结果, 体会 SELECT 语句实际应用;
- 要求学生能够在查询分析器中使用 SELECT 语句进行基本查询;
- 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
二、实验准备
- 成功建立了基本表;
- 了解简单 SELECT 语句的用法;
- 熟悉查询分析器中的 SQL 脚本运行环境。
三、实验要求
- 完成所要求的全部查询;
- 注意操作结果的截图与保存,供撰写实验报告使用。
四、实验内容
所有的查询全部用 Transact-SQL 语句实现。此部分查询包括投影、选择条件表达、数据排序、使用临时表等。
对 EDUC 数据库实现以下查询: (可根据数据表中的数据,对要求中的条件作出调整!)
- 查询“计算机应用”专业的学生学号和姓名;
- 查询选修了课程的学生学号;
- 查询选修课程 0001 且成绩在 80-90 之间的学生学号和成绩,并将成绩乘以系数 0.75 输出;
- 查询“计算机应用”和“数学”专业的姓“张”的学生的信息;
- 查询“0001”课程的成绩高于张三的学生学号、姓名和成绩;
- 查询没有选修“0002”课程的学生姓名;
- 查询每一门课的间接先修课。
五、实验步骤
--查询“计算机应用”专业的学生学号和姓名
select Sno,Sname from class,student where class.ClsNO=student.ClsNO and class.Specialty='计算机应用'
--查询选修了课程的学生学号
select Sno from sc where Sno is not null
--查询选修课程 0001 且成绩在 80-90 之间的学生学号和成绩,并将成绩乘以系数 0.75 输出
select Sno,Score*0.75 from sc where Cno='0001' and Score between 80 and 90
--查询“计算机应用”和“数学”专业的姓“张”的学生的信息
select * from student,class where Sname like '张%' and student.ClsNO=class.ClsNO and (Specialty='计算机应用'or Specialty='数学')
--查询“0001”课程的成绩高于张三的学生学号、姓名和成绩
select sc.Sno,Score
from student,sc
where sc.Cno='0001' and
student.Sno=sc.Sno and
student.Sname!='张三' and
Score > (select Score
from student,sc
where Sname='张三' and student.Sno=sc.Sno and Cno='0001')
--查询没有选修“0002”课程的学生姓名
select distinct Sname from student,sc where student.Sno=sc.Sno and Cno!='0002'
--查询每一门课的间接先修课
select course1.cno,course2.cpno
from course course1,course course2
where course1.cpno=course2.cno