北邮数据库实验报告(4)[版]_北邮数据库实验报告
北邮数据库实验报告(4)[版]由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“北邮数据库实验报告”。
数据库实验报告
(四)姓名:学号:班级:
1.简单查询:
SQL语句:
select credit from course where course_name='SQL Server数据库开发技术';(1)查询“数据库开发技术”课程的学分;
或者模糊查询:
select credit from course where course_name like'%数据库开发技术';执行结果:
(2)查询选修了课程编号为“dep04_s004”的学生的学号和成绩,并将成绩按降序输出;
SQL语句:
select student_id,grade from student_course where course_id='dep04_s003' orderby grade desc;执行结果:
SQL语句:
select course_id,grade from student_course where student_id='g9940205';(3)查询学号为“g9940205”的学生选修的课程编号和成绩;
执行结果:
(4)查询选修了课程编号为“dep04_s001”且成绩高于85分的学生的学号和成绩。
SQL语句:
select student_id,grade from student_course where course_id='dep04_s001'and grade>'85';执行结果:
2.在多表连接的查询实验中,用Transact SQL语句完成以下查询操作:(1)查询选修了课程编号为“dep04_s002”且成绩高于85分的学生的学号、姓名和成绩;
SQL语句:
select student.student_id,student_name,grade from student,student_course where student.student_id=student_course.student_id and student_course.course_id='dep04_s002' and student_course.grade>'85';执行结果:
SQL语句:
select student.student_id,student_name,course_name,grade from student,course,student_course where student.student_id=student_course.student_id and student_course.course_id=course.course_id;(2)查询所有学生的学号、姓名、选修的课程名称和成绩;
执行结果:
(3)查询林红同学选修的课程名称、学分和成绩。(考试成绩>=60 否则无学分。)
SQL语句:
select course_name,student_course.credit,grade from student,student_course,course where student_name='林红'
and student.student_id=student_course.student_id and student_course.course_id=course.course_id;
有学分,3.在复杂查询实验中,用Transact SQL语句完成以下查询操作:
SQL语句:
select student.student_id,student_name from student,student_course where student.student_id=student_course.student_id groupby student.student_id,student_name havingcount(student_course.course_id)>=3;(1)查询至少选修了三门课程的学生的学号和姓名;
执行结果:
SQL语句:
selectavg(grade)from student_course where course_id='dep04_b001';(2)查询选修课程号为“dep04_b001”的学生的平均成绩; 执行结果:
(3)查询所有学生的学号和他选修课程的最高成绩,要求他的选修课程中没有成绩为空的。
SQL语句:
select student_id,max(grade)from student_course whereexists(select grade from student_course)groupby student_id;执行结果:
(4)查询严为老师2001/2002学年教的软件开发技术课程的最高成绩及此学生的学号、姓名、班级。
SQL语句:
select student.student_id,student_name,student.cla_id,grade from teacher_course_cla,teacher,course,student,student_course where teacher_course_cla.teacher_id = teacher.teacher_id and teacher.teacher_name ='严为'and teacher_course_cla.course_id = course.course_id and course.course_name ='软件开发技术'and
teacher_course_cla.course_id = student_course.course_id and student_course.student_id = student.student_id and teacher_course_cla.school_year ='2001/2002'and student_course.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_company from book,course where course.book_id=book.book_id and course_name='SQL SERVER数据库开发技术';执行结果:
(6)查询计算机科学系讲授过数据库开发技术的老师姓名和职称。
SQL语句:
select teacher_name,profeion from teacher,course,teacher_course_cla,department where teacher.teacher_id = teacher_course_cla.teacher_id and course.course_id = teacher_course_cla.course_id and department.department_id = teacher.department_id and department.department_name ='计算机科学'and
course.course_name ='SQL Server数据库开发技术';执行结果:
4.在嵌套查询实验中,用Transact SQL语句完成以下查询操作,要求写嵌套查询语句:
SQL语句:
select student_id,student_name from student where student_id in(select student_id from student_course where course_id in(select course_id from course where course_name ='软件开发技术'));(1)查询选修了软件开发技术的学生的学号和姓名;
执行结果:
SQL语句:
select student_id,student_name from student wherenotexists(select student_id from student_course(2)查询没有选修软件开发技术的学生的学号和姓名; where course_id in(select course_id from course where course_name ='软件开发技术'));执行结果:
(3)查询至少选修了学号为“g9940201”的学生所选修的所有课程的学生的学号和姓名。
SQL语句:
select student_id,student_name from student wherenotexists(select*
from student_course student_course1 where student_course1.student_id ='g9940201' andnotexists(select*
from student_course student_course2 where student.student_id=student_course2.student_id and student_course2.course_id = student_course1.course_id));执行结果:
5.建立如下视图:
学生选修课程信息视图,包括以下内容:
对(1)(2)内容用企业管理器和SQL语句方式分别完成。1)学生学号、姓名、所在系、授课老师姓名、课程名称、课程教材名称、出版社、学分、选课成绩
SQL语句:
Createview
view1(student_id,student_name,department_name,teacher_name,course_name, book_name,publish_name,credit,grade)aelectdistinct
student.student_id,student.student_name,department_name,teacher_name,course_name,book_name,publish_company,student_course.credit,student_course.grade from
student,course,department,student_course,teacher,teacher_course_cla,book,cla where
student.student_id=student_course.student_id and student.cla_id=cla.cla_id and cla.department_id=department.department_id and student_course.course_id=course.course_id and course.book_id=book.book_id and teacher.teacher_id=teacher_course_cla.teacher_id and teacher_course_cla.course_id=course.course_id
企业管理器:
Step1:右键视图,选择新建视图。
Step2:添加涉及到的表。
Step3:选择需要显示的列。
Step4:右键视图view1,选择查看前1000行。
执行结果:
SQL语句:
alterview
view1(student_id,student_name,department_name,teacher_name,course_name,book_name,publish_name,credit,grade,cla_id)ASSELECT DISTINCT
student.student_id,student_name,department_name,teacher_name,course_name,book_name,publish_company,student_course.credit,student_course.grade,student.cla_id FROM
student,student_course,course,teacher,teacher_course_cla,book,department,cla WHERE student.student_id=student_course.student_id and student.cla_id=cla.cla_id and cla.department_id=department.department_id and student_course.course_id=course.course_id and course.book_id=book.book_id and teacher.teacher_id=teacher_course_cla.teacher_id and teacher_course_cla.course_id=course.course_id 2)修改以上视图,增加学生所在班级信息。
企业管理器:
勾选cla表中的“所有列”。
执行结果:
SQL语句:
select student_id,grade from view1 where course_name ='计算机基础';3)对以上视图进行相关的查询操作:(1)查询选修了计算机基础的学生的学号和成绩;
执行结果:
SQL语句:
select student_id,student_name,course_name,grade from view1(2)查询所有学生的学号、姓名、选修的课程名称和成绩;
执行结果:
SQL语句:
select student_id,student_name,course_name from view1 where teacher_name ='章红';(3)查询选修了章红老师课程的学生的学号和姓名、课程名称。
执行结果: