实验四 数据库的查询实验Word文档格式.docx
- 文档编号:18063217
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:22
- 大小:795.98KB
实验四 数据库的查询实验Word文档格式.docx
《实验四 数据库的查询实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验四 数据库的查询实验Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
(5)查询数据库开发技术课程用过的教材名称,作者和出版社。
(6)查询计算机科学系讲授过数据库开发技术的老师姓名和职称。
4.在嵌套查询实验中,用TransactSQL语句完成以下查询操作,要求写嵌套查询语句:
(1)查询选修了电磁波工程的学生的学号和姓名;
(2)查询没有选修电磁波工程的学生的学号和姓名;
(3)查询至少选修了学号为“g*******”的学生所选修的所有课程的学生的学号和姓名。
5.建立如下视图:
学生选修课程信息视图,包括以下内容:
1)学生学号、姓名、所在系、授课老师姓名、课程名称、课程教材名称、出版社、学分、选课成绩
2)修改以上视图,增加学生所在班级信息。
对以上内容用企业管理器和SQL语句方式分别完成。
3)对以上视图进行相关的查询操作:
(1)查询选修了计算机基础的学生的学号和成绩;
(2)查询所有学生的学号、姓名、选修的课程名称和成绩;
(3)查询选修了乔红老师课程的学生的学号和姓名、课程名称。
6完成实验报告,包括实验内容、SQL语句、实验结果等。
二、实验步骤
1、简单查询
(1)查询班号为g00401班的学生的学号和姓名;
代码如下:
selectstudent_id,student_name
fromstudent
whereclass_id='
g00401'
;
运行结果如下:
查询结果为空,即不存在班号为g00401的学生
(2)查询“数据库开发技术”课程的学分;
selectcredit
fromcourse
wherecourse_name='
SQLServer数据库开发'
注:
本题给出的课程名与关系表中的属性名不一致,也可以直接用模糊查询
selectcredit
wherecourse_namelike'
%数据库开发'
(3)查询选修了课程编号为“dep04_s003”的学生的学号和成绩,并将成绩按降序输出;
selectstudent_id,grade
fromstudent_course
wherecourse_id='
dep04_s003'
orderbygradedesc;
(4)查询学号为“g9940205”的学生选修的课程编号和成绩;
selectcourse_id,grade
wherestudent_id='
g9940205'
(5)查询选修了课程编号为“dep04_s001”且成绩高于85分的学生的学号和成绩。
dep04_s001'
andgrade>
'
85'
2、在多表连接的查询实验中,用TransactSQL语句完成以下查询操作:
(1)、查询选修了课程编号为“dep04_s002”且成绩高于85分的学生的学号、姓名和成绩;
selectstudent.student_id,student_name,grade
fromstudent,student_course
wherestudent.student_id=student_course.student_id
andstudent_course.course_id='
dep04_s002'
andstudent_course.grade>
(2)、查询所有学生的学号、姓名、选修的课程名称和成绩;
selectstudent.student_id,student_name,course_name,grade
fromstudent,course,student_course
andstudent_course.course_id=course.course_id;
(3)、查询计算机科学系林红同学选修的课程名称、学分和成绩。
selectcourse_name,student_course.credit,grade
fromstudent,student_course,course
wherestudent_name='
林红'
andstudent.student_id=student_course.student_id
3、在复杂查询实验中,用TransactSQL语句完成以下查询操作:
(1)查询至少选修了三门课程的学生的学号和姓名;
selectstudent.student_id,student_name
groupbystudent.student_id,student_name
havingcount(student_course.course_id)>
=3;
(2)、查询选修课程号为“dep04_b001”的学生的平均成绩;
selectavg(grade)
dep04_b001'
运行结果:
(3)、查询所有学生的学号和他选修课程的最高成绩,要求他的选修课程中没有成绩为空的。
selectstudent_id,max(grade)
whereexists(selectgrade
fromstudent_course)
groupbystudent_id;
selectstudent.student_id,student_name,student.class_id,grade
fromteacher_course_class,teacher,course,student,student_course
whereteacher_course_class.teacher_id=teacher.teacher_idand
teacher.teacher_name='
严为'
and
teacher_course_class.course_id=course.course_idand
course.course_name='
软件开发技术'
teacher_course_class.course_id=student_course.course_idand
student_course.student_id=student.student_idand
teacher_course_class.school_year='
2001/2002'
student_course.grade>
=all(selectgrade
fromstudent_course,course
wherestudent_course.course_id=course.course_idand
);
(5)、查询数据库开发技术课程用过的教材名称,作者和出版社。
selectbook_name,author,publish_name
frombook,course
wherecourse.book_id=book.book_id
andcourse_name='
SQLSERVER数据库开发'
(6)、查询计算机科学系讲授过数据库开发技术的老师姓名和职称。
selectteacher_name,profession
fromteacher,course,teacher_course_class,department
whereteacher.teacher_id=teacher_course_class.teacher_idand
course.course_id=teacher_course_class.course_idand
department.department_id=teacher.department_idand
department.department_name='
计算机科学'
course.course_name='
4、在嵌套查询实验中,用TransactSQL语句完成以下查询操作,要求写嵌套查询语句:
(1)、查询选修了电磁波工程的学生的学号和姓名;
wherestudent_id=(selectstudent_id
fromstudent_course
wherecourse_id=(selectcourse_id
fromcourse
wherecourse_name='
电磁波工程'
));
即查询结果为空。
(2)、查询没有选修电磁波工程的学生的学号和姓名;
wherenotexists(selectstudent_id
fromcourse
wherecourse_name='
(3)、查询至少选修了学号为“g9940201”的学生所选修的所有课程的学生的学号和姓名。
wherenotexists
(select*
fromstudent_coursestudent_course1
wherestudent_course1.student_id='
g9940201'
andnotexists
(select*
fromstudent_coursestudent_course2
wherestudent.student_id=student_course2.student_id
andstudent_course2.course_id=student_course1.course_id));
5、建立如下视图:
(1)用企业管理器创建视图
具体操作步骤如下:
点击完成后的创建结果如下:
打开创建的视图如下:
其行数和student_course表一致,均为44行。
(2)用企业管理器修改以上视图,增加学生所在班级信息。
具体操作步骤如下:
如上图所示,在class_id前打勾。
修改结果如下:
(3)用SQL语句创建视图
代码如下;
Createviewst_course1(student_id,student_name,department_name,teacher_name,course_name,
book_name,publish_name,credit,grade)
asselectdistinctstudent.student_id,student.student_name,department_name,teacher_name,
course_name,book_name,publish_name,student_course.credit,student_course.grade
fromstudent,course,department,student_course,teacher,teacher_course_class,book,class
where
student.student_id=student_course.student_id
andstudent.class_id=class.class_id
andclass.department_id=department.department_id
andstudent_course.course_id=course.course_id
andcourse.book_id=book.book_id
andteacher.teacher_id=teacher_course_class.teacher_id
andteacher_course_class.course_id=course.course_id
运行结果与用企业管理器法相同:
(区别于企业管理器法创建的视图,此处将视图名定为st_course1)
打开视图st_course1,如下:
(4)用SQL语句修改视图
alterviewst_course1(student_id,student_name,department_name,teacher_name,course_name,book_name,publish_name,credit,grade,class_id)
ASSELECTDISTINCTstudent.student_id,student_name,department_name,teacher_name,course_name,book_name,publish_name,student_course.credit,student_course.grade,student.class_id
FROM
student,student_course,course,teacher,teacher_course_class,book,department,class
WHEREstudent.student_id=student_course.student_id
与企业管理法相比,两者得到的结果完全相同
(6)对以上视图进行相关的查询操作:
A、查询选修了计算机基础的学生的学号和成绩;
selectstudent_id,grade
fromst_course1
wherecourse_name='
计算机基础'
运行结果如下:
B、查询所有学生的学号、姓名、选修的课程名称和成绩;
代码入下:
selectstudent_id,student_name,course_name,grade
运行结果;
C、查询选修了乔红老师课程的学生的学号和姓名、课程名称。
代码如下:
selectstudent_id,student_name,course_name
whereteacher_name='
乔红'
查询结果为空
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验四 数据库的查询实验 实验 数据库 查询