实验3 数据库查询实验
一.实验目的
本实验的目的是使学生掌握SQL Server查询分析器的使用方法,加深对SQL和SQL 语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
二.实验内容
1.简单查询操作。该实验包括投影、选择条件表达,数据排序,使用临时表等。
具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现其数据查询操作。
1.求数学系学生的学号和姓名
2.求选修课程的学生学号
3.求选修课程号为‘C1’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。
4.求选修课程号为‘C1’且成绩在80~90之间的学生学号和成绩,并成绩乘以0.8输出。
5.求数学系或计算机系姓张的学生的信息。
6.求缺少了成绩的学生的学号和课程号
2.连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
7.查询每个学生的情况以及他所选修的课程输入学生姓名查询成绩在线查
8.求学生的学号、姓名、选修的课程及成绩
9.求选修课程号为‘C1’且成绩在90以上的学生学号、姓名和成绩
10.查询每一门课程的间接先行课(即先行课的先行课)
3 .嵌套查询操作。实验的主要内容是:在SQL Server查询分析器中使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。
具体完成以下例题。将它们用SQL语句表示,在学生选课中实现其数据嵌套查询操作。
例1 求选修了高等数学的学号和姓名
例2 求C1课程的成绩高于刘晨的学生学号和成绩
例3 求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机系年龄最大者的学生)
例4 求其他系中比计算机系学生年龄都小的学生
例5 求选修了C2课程的学生姓名
例6 求没有选修C2课程的学生姓名
例7 查询选修了全部课程的学生姓名
例8 求至少选修了学号为“95002”的学生所选修全部课程的学生学号和姓名
4.分组、统计、计算和集合的操作
1)分组查询实验。该实验包括分组条件表达、选择组条件表达的方法。
2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。
3)集合查询实验。该实验并操作UNION、交操作INTERSECT和差操作MINUS的实现方法。
具体完成以下例题,将它们用SQL语句表示,在学生选课中实现其数据查询操作。
例1 求学生的总人数
例2 求选修了课程的学生人数
例3 求课程和选修了该课程的学生人数
例4 求选修超过3门课的学生学号
例5 查询计算机科学系的学生及年龄不大于19岁的学生
例6 查询计算机科学系的学生与年龄不大于19岁的学生的交集
例7 查询计算机科学系的学生与年龄不大于19岁的学生的差集
例8 查询选修课程‘C1’的学生集合与选修课程‘C2’的学生集合的交集
例9 查询选修课程‘C1’的学生集合与选修课程‘C2’的学生集合的差集
三.实验方法
将查询需求用SQL语言表示;在SQL Server查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。