《北邮数据库实验报告(共17页).docx》由会员分享,可在线阅读,更多相关《北邮数据库实验报告(共17页).docx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据库实验报告(四)姓名: 学号: 班级: 1. 简单查询:(1) 查询“数据库开发技术”课程的学分;SQL语句:select creditfrom coursewhere course_name=SQL Server数据库开发技术;或者模糊查询:select creditfrom coursewhere course_name like %数据库开发技术;执行结果:(2) 查询选修了课程编号为“dep04_s004”的学生的学号和成绩,并将成绩按降序输出;SQL语句:select student_id,gradefrom student_coursewhere co
2、urse_id=dep04_s003order by grade desc;执行结果:(3) 查询学号为“g”的学生选修的课程编号和成绩;SQL语句:select course_id,gradefrom student_coursewhere student_id=g;执行结果:(4) 查询选修了课程编号为“dep04_s001”且成绩高于85分的学生的学号和成绩。SQL语句:select student_id,gradefrom student_coursewhere course_id=dep04_s001 and grade85;执行结果:2. 在多表连接的查询实验中,用Transact
3、 SQL语句完成以下查询操作:(1)查询选修了课程编号为“dep04_s002”且成绩高于85分的学生的学号、姓名和成绩;SQL语句:select student.student_id,student_name,gradefrom student,student_coursewhere student.student_id=student_course.student_id and student_course.course_id=dep04_s002 and student_course.grade85;执行结果:(2)查询所有学生的学号、姓名、选修的课程名称和成绩;SQL语句:select
4、 student.student_id,student_name,course_name,gradefrom student,course,student_coursewhere student.student_id=student_course.student_id and student_course.course_id=course.course_id;执行结果:(3)查询林红同学选修的课程名称、学分和成绩。(考试成绩60有学分,否则无学分。)SQL语句:select course_name,student_course.credit,gradefrom student,student_
5、course,coursewhere student_name=林红 and student.student_id=student_course.student_idand student_course.course_id=course.course_id;3. 在复杂查询实验中,用Transact SQL语句完成以下查询操作:(1)查询至少选修了三门课程的学生的学号和姓名;SQL语句:select student.student_id,student_namefrom student,student_coursewhere student.student_id=student_course.
6、student_id group by student.student_id,student_name having count(student_course.course_id)=3;执行结果:(2)查询选修课程号为“dep04_b001”的学生的平均成绩;SQL语句:select avg(grade)from student_coursewhere course_id=dep04_b001;执行结果:(3)查询所有学生的学号和他选修课程的最高成绩,要求他的选修课程中没有成绩为空的。SQL语句:select student_id,max(grade)from student_coursewh
7、ere exists(select grade from student_course)group by student_id;执行结果:(4) 查询严为老师2001/2002学年教的软件开发技术课程的最高成绩及此学生的学号、姓名、班级。SQL语句:select student.student_id,student_name,student.class_id,gradefrom teacher_course_class,teacher,course,student,student_coursewhere teacher_course_class.teacher_id = teacher.tea
8、cher_id and teacher.teacher_name = 严为 and teacher_course_class.course_id = course.course_id and course.course_name = 软件开发技术 and teacher_course_class.course_id = student_course.course_id and student_course.student_id = student.student_id and teacher_course_class.school_year = 2001/2002 and student_co
9、urse.grade=all(select grade from student_course,course where student_course.course_id = course.course_id and course.course_name = 软件开发技术);执行结果:(5) 查询数据库开发技术课程用过的教材名称,作者和出版社。SQL语句:select book_name,author,publish_companyfrom book,coursewhere course.book_id=book.book_id and course_name=SQL SERVER数据库开发技
10、术;执行结果:(6) 查询计算机科学系讲授过数据库开发技术的老师姓名和职称。SQL语句:select teacher_name,professionfrom teacher,course,teacher_course_class,departmentwhere teacher.teacher_id = teacher_course_class.teacher_id and course.course_id = teacher_course_class.course_id and department.department_id = teacher.department_id and depar
11、tment.department_name = 计算机科学 and course.course_name = SQL Server数据库开发技术;执行结果:4. 在嵌套查询实验中,用Transact SQL语句完成以下查询操作,要求写嵌套查询语句:(1)查询选修了软件开发技术的学生的学号和姓名;SQL语句:select student_id,student_namefrom studentwhere student_id in (select student_id from student_course where course_id in (select course_id from cou
12、rse where course_name = 软件开发技术);执行结果:(2)查询没有选修软件开发技术的学生的学号和姓名;SQL语句:select student_id,student_namefrom studentwhere not exists(select student_id from student_course where course_id in (select course_id from course where course_name = 软件开发技术);执行结果:(3)查询至少选修了学号为“g”的学生所选修的所有课程的学生的学号和姓名。SQL语句:select stu
13、dent_id,student_namefrom studentwhere not exists(select * from student_course student_course1 where student_course1.student_id = g and not exists (select * from student_course student_course2 where student.student_id=student_course2.student_id and student_course2.course_id = student_course1.course_i
14、d);执行结果:5. 建立如下视图:学生选修课程信息视图,包括以下内容:对(1)(2)内容用企业管理器和SQL语句方式分别完成。1) 学生学号、姓名、所在系、授课老师姓名、课程名称、课程教材名称、出版社、学分、选课成绩SQL语句:Create view view1(student_id,student_name,department_name,teacher_name,course_name, book_name,publish_name,credit,grade)as select distinct student.student_id,student.student_name,depart
15、ment_name,teacher_name, course_name,book_name,publish_company,student_course.credit,student_course.gradefrom student,course,department,student_course,teacher,teacher_course_class,book,classwhere student.student_id=student_course.student_id and student.class_id=class.class_id and class.department_id=
16、department.department_id and student_course.course_id=course.course_id and course.book_id=book.book_id and teacher.teacher_id=teacher_course_class.teacher_id and teacher_course_class.course_id=course.course_id企业管理器:Step1:右键视图,选择新建视图。Step2:添加涉及到的表。Step3:选择需要显示的列。Step4:右键视图view1,选择查看前1000行。执行结果:2)修改以上
17、视图,增加学生所在班级信息。SQL语句:alter view view1(student_id,student_name,department_name,teacher_name,course_name,book_name,publish_name,credit,grade,class_id)AS SELECTDISTINCT student.student_id,student_name,department_name,teacher_name,course_name,book_name,publish_company,student_course.credit,student_course
18、.grade,student.class_idFROM student,student_course,course,teacher,teacher_course_class,book,department,classWHERE student.student_id=student_course.student_id and student.class_id=class.class_id and class.department_id=department.department_id and student_course.course_id=course.course_id and course
19、.book_id=book.book_id and teacher.teacher_id=teacher_course_class.teacher_id and teacher_course_class.course_id=course.course_id企业管理器:勾选class表中的“所有列”。执行结果:3)对以上视图进行相关的查询操作:(1) 查询选修了计算机基础的学生的学号和成绩;SQL语句:select student_id,gradefrom view1where course_name = 计算机基础;执行结果:(2) 查询所有学生的学号、姓名、选修的课程名称和成绩;SQL语句:select student_id,student_name,course_name,gradefrom view1执行结果:(3) 查询选修了章红老师课程的学生的学号和姓名、课程名称。SQL语句:select student_id,student_name,course_namefrom view1where teacher_name = 章红;执行结果:专心-专注-专业