
数据库原理实验三.doc
8页实验三、数据库的简单查询和连接查询实验 班级: 学号: 姓名: 日期:12月18日 1. 实验目的了解SQL Server 查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解掌握表的数据简单查询、数据排序和数据联结查询的SQL表达和查询分析操作方法2. 实验内容1)简单查询实验 用SQL表达简单查询操作,包括投影、选择条件表达、数据排序和使用临时表等,通过SQL Server查询分析器输入,并显示正确结果2)连接查询实验 用SQL表达连接查询操作,包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等,通过SQL Server查询分析器输入,并显示正确结果3. 实验要求1)简单查询实验在学生选课库中,用Transact-SQL语句表示下列操作,并通过查询分析器实现其数据查询操作:1、求数学系学生的学号和姓名 2、求选修了课程的学生学号3、求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列, 如果成绩相同则按学号的升序排列。
4、求选修课程C1且成绩在80~90之间的学生学号和成绩,将成绩乘以系数0.8输出5、求数学系或计算机系姓张的学生的信息6、求缺少了成绩的学生的学号和课程号2)连接查询实验 在学生选课库中,用Transact-SQL语句表示下列数据连接查询操作,并在查询分析器中实验 1、查询每个学生的情况以及他(她)所选修的课程 2、求学生的学号、姓名、选修的课程名及成绩 3、求选修C1课程且成绩为90分以上的学生学号、姓名及成绩 4、查询每一门课的间接先行课(即先行课的先行课)4. 实验步骤及结果:(1)简单查询实验1) 求数学系学生的学号和姓名T-SQL语句:SELECT 学号,姓名 FROM 学生 WHERE 所在系='数学'查询结果:图1 运行界面图(1)2) 求选修了课程的学生学号T-SQL语句:SELECT DISTINCT 学号 FROM 选课查询结果:图2 运行界面图(2)3) 求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列T-SQL语句:SELECT 学号,成绩 FROM 选课 WHERE 课程号='C1'ORDER BY 成绩 DESC,学号 ASC查询结果:图3 运行界面图(3)4) 求选修课程C1且成绩在80~90之间的学生学号和成绩,将成绩乘以系数0.8输出。
T-SQL语句:SELECT 学号,成绩*0.8 FROM 选课WHERE 课程号 = 'C1' AND 成绩 BETWEEN 80 AND 90查询结果:图4 运行界面图(4)5) 求数学系或计算机系姓张的学生的信息T-SQL语句:SELECT * FROM 学生 WHERE 所在系 IN('数学','计算机')AND 姓名 LIKE '张%'查询结果:图5 运行界面图(5)(2)连接查询实验1)查询每个学生的情况以及他所选修的课程Transact-SQL语句:SELECT 学生.*,选课.* FROM 学生,选课WHERE 学生.学号=选课.学号查询结果:图6 运行界面图(6)2) 求学生的学号、姓名、选修的课程名及成绩T-SQL语句:SELECT 学生.学号,姓名,课程名,成绩FROM 学生,课程,选课WHERE 学生.学号=选课.学号 AND 课程.课程号=选课.课程号查询结果:图7 运行界面图(7)3) 求选修C1课程且成绩为90分以上的学生学号、姓名及成绩T-SQL语句:SELECT 学生.学号,姓名,成绩 FROM 学生,选课WHERE 学生.学号=选课.学号 AND 课程号= 'C1' AND 成绩>90查询结果:图8 运行界面图(8)4) 查询每一门课的间接先行课(即先行课的先行课)。
Transact-SQL语句:SELECT A.课程号,A.课程名,B.先行课FROM 课程 A,课程 BWHERE A.先行课=B.课程号查询结果:图9 运行界面图(9)5. 实验总结在本次实验中我学会了很多查询问题,了解了SQL Server 查询分析器的使用方法,加深了对SQL和Transact-SQL语言的查询语句的理解掌握表的数据简单查询、数据排序和数据联结查询的SQL表达和查询分析操作方法 (注:可编辑下载,若有不当之处,请指正,谢谢!) 。












