文档库 最新最全的文档下载
当前位置:文档库 › 数据库复杂查询

数据库复杂查询

实验四数据库的复杂查询

一、实验目的

1.掌握SQL Server查询分析器的使用方法.

2.加深对SQL语言的查询语句的理解。

3.熟练掌握多个数据表的数据查询的操作方法。

二、相关知识

数据库中数据的复杂查询包括连接、投影、选择条件表达式

三、实验内容

在学生选课库中,用Transact-SQL语句实现下列简单数据查询操作。

1)查询成绩在60-85之间的学生的学号和姓名。

select学号,姓名

from学生

where exists(select*from选课

where学号=学生.学号and成绩>60 and成绩<85)

2)查询选修课程号为‘C1’且成绩非空的学生学号和成绩,成绩按150分制输出(每个成绩乘以系数1.5),并且给已经乘以系数的成绩定义一个别名。

select学号,成绩*1.5 as分制

from选课

where课程号is not null and课程号='C03'

3)查询有选课记录的所有学生的学号,用DISTINCT限制结果中学号不重复。

select distinct 学号

from 选课

4)查询选修课程‘C1’的学生学号和成绩,结果按成绩的升序排列,如果成绩相同则按学号的降序排列。

select学号,成绩

from选课

where课程号='C03'

group by学号,成绩

order by学号desc

2. select学号,成绩

from选课

where课程号='C03'

order by 成绩,学号desc

5)查询选修课程号为‘C2’且成绩优秀(85分以上)的学生学号、姓名和成绩

select 学生.学号,姓名,成绩

from 学生 inner join 选课 on 课程号='c04' and 成绩>=85

and 学生.学号=选课.学号

6)查询选修了数据库原理的学生的基本信息(学号、姓名、性别、年龄、电话、系编号)。select 学生.学号,姓名,性别,出生日期,电话,所在系

from 学生,选课,课程

where 学生.学号=选课.学号 and 选课.课程号=课程.课程号 and 课程名='数据库原理'

7)查询‘C1’课程的成绩高于70的学生姓名。

select 姓名

from 学生,选课

where 学生.学号=选课.学号 and 课程号='c04' and 成绩>=70

8) 查找选修了课程号为‘c1’课程的学生情况(学号、姓名、性别、年龄)。

select 学生.学号,姓名,性别,出生日期

from 学生 join 选课 on

学生.学号=选课.学号 and 课程号='c01'

9)查找未选修‘C语言程序设计’的学生情况(学号、姓名、性别、年龄)

select 学生.学号,姓名,性别,出生日期

from 学生

where not exists

(select *

from 选课 cross join 课程

where 学生.学号=选课.学号 and 课程名='C语言程序设计')

10)查找课程号‘C3’的成绩不低于课程号‘C1’的最低成绩的学生的学号和姓名。

四、实验步骤

将题目中得查询需求转换为Transact-SQL语句;输入查询分析器的输入区中执行,查看结果区中的查询结果,直至正确为止。

五、实验要求

1. 认真完成以上题目,遇到问题和错误,按错误提示分析原因,在查错和改错中加深对Transact-SQL语句语义和规则的了解。

2.读懂语句,预测结果,并与实际运行的结果相对照。

相关文档