数据库上机实验_第1页
数据库上机实验_第2页
数据库上机实验_第3页
免费预览已结束,剩余8页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、附录C上机实验C.1第4章上机实验下列实验均使用 SQL Server的SSMS工具实现。1 .用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A):数据库名为:学生数据库主要数据文件的逻辑文件名为:Students_data,存放在D:Data文件夹下(若 D:盘中无此文件夹,请先建立此文件夹,然后再创建数据库。),初始大小为:5MB, 增长方式为自动增长,每次增加1MB。日志文件的逻辑文件名字为:Students_log,也存放在D:Data文件夹下,初始大小为:2MB,增长方式为自动增长,每次增加10%。2 选用已建立的“学生数据库”,写出创建满足表 C-1到4-4条

2、件的表的SQL语句,并执行所写代码。(注:“说明”部分不作为表定义内容)表C-1 Student 表结构列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主键Sname姓名普通编码定长字符串,长度为10非空Ssex性别普通编码定长字符串,长度为2取值范围:男,女Sage年龄微整型(tinyint)取值范围:15-45Sdept所在系普通编码不定长字符串,长度为20默认值为“计算机系”Sid身份证号普通编码定长字符串,长度为10取值不重Sdate入学日期日期默认为系统当前日期表C-2 Course表结构列名说明数据类型约束Cno课程号普通编码定长字符串,长度为10主键Cname课程名普通

3、编码不定长字符串,长度为 20非空Credit学时数整型取值大于0Semester学分小整型表C-3 SC表结构列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主键,引用Student的外键Cno课程号普通编码定长字符串,长度为10主键,引用 Course的外键Grade成绩小整型取值范围为0-100表C-4 Teacher表结构列名说明数据类型约束Tno教师号普通编码定长字符串,长度为8非空Tname教师名普通编码定长字符串,长度为10非空Salary工资定点小数,小数点前 4位,小数点后2位3. 写出实现如下功能的SQL语句,并执行所写代码,查看执行结果。(1) 在Teacher

4、表中添加一个职称列,列名为:Title,类型为nchar(4)。(2) 为Teacher表中的Title列增加取值范围约束,取值范围为:教授,副教授,讲师。(3) 将Course表中Credit列的类型改为:tinyint。(4)删除Student表中的Sid和Sdate列。(5) 为Teacher表添加主键约束,其主键为:Tno。C.2第5章上机实验本实验均在SQL Server的SSMS工具中实现。首先在已创建的“学生数据库”中创建本 章表5-15-3所示的Student、Course和SC表,并插入表5-45-6所示数据,然后编写实 现如下操作的SQL语句,执行所写的语句,并查看执行结果

5、。1. 查询SC表中的全部数据。2. 查询计算机系学生的姓名和年龄。3. 查询成绩在7080分的学生的学号、课程号和成绩。4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.查询计算机系年龄在 1820岁的男生姓名和年龄。查询 C001 课程的最高分。查询计算机系学生的最大年龄和最小年龄。统计每个系的学生人数。统计每门课程的选课人数和最高成绩。统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。列出总成绩超过 200 的学生的学号和总成绩。查询选了 C002 课程的学生姓名和所在系。查询考试成绩 80 分以上的学生姓名、课程号和成绩,

6、并按成绩降序排列结果。查询与 VB 在同一学期开设的课程的课程名和开课学期。查询与李勇年龄相同的学生的姓名、所在系和年龄。查询哪些课程没有学生选修,列出课程号和课程名。 查询每个学生的选课情况,包括未选课的学生,列出学生的学号、姓名、选的课程号。查询计算机系哪些学生没有选课,列出学生姓名。查询计算机系年龄最大的三个学生的姓名和年龄。列出VB ”课程考试成绩前三名的学生的学号、姓名、所在系和VB成绩。查询选课门数最多的前 2位学生,列出学号和选课门数。查询计算机系学生姓名、年龄和年龄情况,其中年龄情况为:如果年龄小于18,则显示“偏小;”如果年龄在 18-22,则显示“合适”;如果年龄大于 22

7、 ,则显示“偏大”。统计每门课程的选课人数, 包括有人选的课程和没有人选的课程, 列出课程号, 选课人 数及选课情况, 其中选课情况为: 如果此门课程的选课人数超过 100 人,则显示“人多”; 如果此门课程的选课人数在 40100,则显示“一般”;如果此门课程的选课人数在 140 ,则显示“人少”;如果此门课程没有人选,则显示“无人选” 。23. 查询计算机系选了 VB 课程的学生姓名、所在系和考试成绩,并将结果保存到新表 VB_Grade 中。24. 统计每个系的女生人数,并将结果保存到新表 Girls 中。25. 用子查询实现如下查询:(1 )查询选了 “C001 ”课程的学生姓名和所在

8、系。( 2 )查询通信工程系成绩 80 分以上的学生的学号和姓名。( 3)查询计算机系考试成绩最高的学生的姓名。( 4)查询年龄最大的男生的姓名、所在系和年龄。26. 查询 C001 课程的考试成绩高于该课程平均成绩的学生的学号和成绩。27. 查询计算机系学生考试成绩高于计算机系学生平均成绩的学生的姓名、考试的课程名和考试成绩。28. 查询 VB 课程考试成绩高于 VB 平均成绩的学生姓名和 VB 成绩。29. 查询没选 VB 的学生姓名和所在系。30. 查询每个学期学分最高的课程信息,列出开课学期、课程名和学分。31. 查询每门课程考试成绩最高的学生信息, 列出课程号、 学生姓名和最高成绩,

9、 结果按课 程号升序排序,不包括没考试的课程。32. 创建一个新表,表名为 test,其结构为(C0L1, COL 2, COL 3),其中,COL1 :整型,允许空值。C0L2 :普通编码定长字符型,长度为 10,不允许空值。C0L3 :普通编码定长字符型,长度为 10,允许空值。 试写出按行插入如下数据的语句(空白处表示是空值) 。COL1COL2COL3B11B2C22B333.利用23题建立的VB_Grade表,将信息管理系选了VB课程的学生姓名、所在系和考试成绩插入到VB_Grade表中。34. 将所有选修C001课程的学生的成绩加 10分。35. 将计算机系所有学生的“计算机文化学

10、”的考试成绩加10分。36. 修改VB ”课程的考试成绩,如果是通信工程系的学生,则增加10分;如果是信息管理系的学生则增加5分,其他系的学生不加分。37. 删除成绩小于50分的学生的选课记录。38. 删除计算机系 VB考试成绩不及格学生的 VB选课记录。39. 删除VB ”考试成绩最低的学生的VB修课记录。40. 删除没人选的课程的基本信息。C.3第6章上机实验下列实验均使用 SQL Server的SSMS工具实现。利用第 4章上机实验创建的“学生数据库”中Student、Course和SC表,完成下列实验。1. 写出实现下列操作的 SQL语句,并执行所写代码。(1 )在Student表上为

11、Sname列建立一个聚集索引,索引名为:IdxSno。(提示:若执行创建索引的代码,请先删除该表的主键约束)(2 )在Course表上为Cname列建立一个唯一的非聚集索引,索引名为:IdxCN(3 )在SC表上为Sno和Cno建立一个组合的聚集索引,索引名为:IdxSnoCno。(提 示:若执行创建索引的代码,请先删除该表的主键约束)( 4)删除 Sname 列上建立的 IdxSno 索引。2. 写出创建满足下述要求的视图的 SQL 语句,并执行所写代码。(1)查询学生的学号、姓名、所在系、课程号、课程名、课程学分。(2)查询学生的学号、姓名、选修的课程名和考试成绩。(3)统计每个学生的选课

12、门数,要求列出学生学号和选课门数。(4)统计每个学生的修课总学分,要求列出学生学号和总学分(说明:考试成绩大于等 于 60 才可获得此门课程的学分) 。3. 利用第 2 题建立的视图,完成如下查询。( 1)查询考试成绩大于等于 90 分的学生的姓名、课程名和成绩。( 2)查询选课门数超过 3 门的学生的学号和选课门数。( 3)查询计算机系选课门数超过 3 门的学生的姓名和选课门数。( 4)查询修课总学分超过 10 分的学生的学号、姓名、所在系和修课总学分。( 5)查询年龄大于等于 20 岁的学生中,修课总学分超过 10 分的学生的姓名、年龄、所 在系和修课总学分。4. 修改第 3 题( 4)定

13、义的视图,使其查询每个学生的学号、总学分以及总的选课门数。C.4 第 7 章上机实验利用第 5 章建立的学生数据库以及 Student 、 Coures 和 SC 表,完成下列操作。1. 创建满足如下要求的后触发型触发器。( 1)限制学生的考试成绩必须在 0-100 之间。(2)限制不能删除成绩不及格的考试记录。3)限制每个学期开设的课程总学分不能超过20。( 4)限制每个学生每学期选的课程不能超过 5 门。2. 创建满足如下要求的存储过程。 (1)查询每个学生的修课总学分,要求列出学生学号及总学分。(2)查询学生的学号、姓名、修的课程号、课程名、课程学分,将学生所在的系作为输 入参数,执行此

14、存储过程,并分别指定一些不同的输入参数值。(3)查询指定系的男生人数,其中系为输入参数,人数为输出参数。(4)删除指定学生的修课记录,其中学号为输入参数。(5)修改指定课程的开课学期。输入参数为:课程号和修改后的开课学期。C.5 第 11 章上机实验利用第 4、5 章建立的学生数据库和其中的 Student 、Course 、 SC 表,并利用 SSMS 工具 完成下列操作。1. 用 SSMS 工具建立 SQL Server 身份验证模式的登录名: log1 、log2 和 log3 。2. 用 log1 建立一个新的数据库引擎查询, 在“可用数据库”下列列表框中是否能选中学生数据库? 为什么

15、?3. 用系统管理员身份建立一个新的数据库引擎查询,将log1 、 log2 和 log3 映射为学生数据库中的用户,用户名同登录名。4. 在 log1 建立的数据库引擎查询中, 现在在“可用数据库”下列列表框中是否能选中学生数据库? 为什么?5. 在 log1 建立的数据库引擎查询中,选中学生数据库,执行下述语句,能否成功?为什么?SELECT * FROM Course6. 在系统管理员的数据库引擎查询中, 执行合适的授权语句, 授予 log1 具有对 Course 表的查 询权限,授予 log2 具有对 Course 表的插入权限。7. 用 log2 建立一个新的数据库引擎查询,执行下述

16、语句,能否成功?为什么?INSERT INTO Course VALUES( 'C1001 ','数据库基础 ',4, 5) 再执行下述语句,能否成功?为什么?SELECT * FROM Course8. 在 log1 建立的数据库引擎查询中,再次执行下述语句:SELECT * FROM Course这次能否成功?但如果执行下述语句:INSERT INTO Course VALUES( 'C103 ', '软件工程 ', 4, 5) 能否成功?为什么?9. log3 建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?CREATE TABLE NewTable(C1 int,C2 char(4)10. 授予 log3 在学生数据库中具有创建表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论