实验三、数据库的简单查询和连接查询实验班级:学号:姓名:日期:12月18日1.实验目的了解SQLServer查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。掌握表的数据简单查询、数据排序和数据联结查询的SQL表达和查询分析操作方法。2.实验内容1)简单查询实验用SQL表达简单查询操作,包括投影、选择条件表达、数据排序和使用临时表等,通过SQLServer查询分析器输入,并显示正确结果。2)连接查询实验用SQL表达连接查询操作,包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等,通过SQLServer查询分析器输入,并显示正确结果。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语句:SELECTDISTINCT学号FROM选课查询结果:图2运行界面图(2)3)求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。T-SQL语句:SELECT学号,成绩FROM选课WHERE课程号='C1'ORDERBY成绩DESC,学号ASC查询结果:图3运行界面图(3)4)求选修课程C1且成绩在80~90之间的学生学号和成绩,将成绩乘以系数0.8输出。T-SQL语句:SELECT学号,成绩*0.8FROM选课WHERE课程号='C1'AND成绩BETWEEN80AND90查询结果:图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语句:SELECTA.课程号,A.课程名,B.先行课FROM课程A,课程BWHEREA.先行课=B.课程号查询结果:图9运行界面图(9)5.实验总结在本次实验中我学会了很多查询问题,了解了SQLServer查询分析器的使用方法,加深了对SQL和Transact-SQL语言的查询语句的理解。掌握表的数据简单查询、数据排序和数据联结查询的SQL表达和查询分析操作方法。