2022年数据库实验习题实用 .pdf

上传人:Q****o 文档编号:27837674 上传时间:2022-07-26 格式:PDF 页数:7 大小:101.42KB
返回 下载 相关 举报
2022年数据库实验习题实用 .pdf_第1页
第1页 / 共7页
2022年数据库实验习题实用 .pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《2022年数据库实验习题实用 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库实验习题实用 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、 数据库的创建和管理1:使用 CREATE DATABASE 创建一个新的数据库,名称为“STUDENT2 ” ,其他所有参数均取默认值2: 创 建 一 个 名 称 为STUDENT3的 数 据 库 , 该 数 据 库 的 主 文 件 逻 辑 名 称 为STUDENT3_data ,物理文件名为STUDENT3.mdf ,初始大小为3MB ,最大尺寸为无限大,增 长 速 度 为 15% ; 数 据 库 的 日 志 文 件 逻 辑 名 称 为STUDENT3_log , 物 理 文 件 名 为STUDENT3.ldf ,初始大小为2MB ,最大尺寸为50MB ,增长速度为1MB ;要求数据库

2、文件和日志文件的物理文件都存放在E 盘的 DATA 文件夹下。3:创建一个指定多个数据文件和日志文件的数据库。该数据库名称为STUDENTS ,有1 个 5MB 和 1 个 10MB 的数据文件和2 个 5MB 的事务日志文件。数据文件逻辑名称为STUDENTS1 和 STUDENTS2 ,物理文件名为STUDENTS1.mdf和 STUDENTS2.ndf 。主文件是 STUDENTS1 ,由 PRIMARY 指定,两个数据文件的最大尺寸分别为无限大和100MB ,增 长 速 度 分 别 为10% 和1MB 。 事 务 日 志 文 件 的 逻 辑 名 为STUDENTSLOG1和STUDEN

3、TSLOG2 ,物理文件名为STUDENTSLOG1.ldf和 STUDENTSLOG2.ldf ,最大尺寸均为 50MB ,文件增长速度为1MB 。要求数据库文件和日志文件的物理文件都存放在E 盘的 DATA 文件夹下。4:删除已创建的数据库STUDENTS 。5:将已存在的数据库STUDENT3 重命名为 STUDENT_BACK。二、 数据表的创建和管理1:在数据库 STUDENT 中创建一个学生基本信息表(名为t_student ),表中各列的要求如下表所示。表中的s_number 字段创建非空约束,定义s_number 为主键,其中 s_name字段具有唯一性。输入性别字段值时,只能

4、接受“ 男” 或者 “ 女 ” ,而不能接受其他数据,sex字段创建默认约束“ 男”表学生基本信息表(名为t_student )组成字段名称字段类型大小默认值s_number char 10 s_name char 8 sex char 2 男birthday datetime polity char 4 2:创建 t_score 表,各个字段:s_number,c_number ,score,并为 t_score 创建外键约束,该约束把表t_score 中的学生学号(s_number )字段和表t_student 中的学生学号(s_number )字段关联起来,实现t_score 中的学生学

5、号(s_number )字段的取值要参照表t_student 中的学生学号(s_number )字段的数据值。3: 在数据库 STUDENT 中创建一个 t_course1 表,各个字段:c_number L, c_name,hours,credit 。然后在表中增加一个c_pnumber 字段,删除表中的 credit 字段,并且修改 c_name 字段的数据长度。4:(1)显示 STUDENT 数据库中所有对象的信息。(2)显示 t_student 数据表的信息。5:删除 STUDENT 数据库中的表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -

6、- - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 三、 表中数据的操作和视图的创建和使用假设 T_STUDENT表中的数据如下表所示。表T_STUDENT表中的数据S_NUMBER S_NAME SEX BIRTHDAY POLITY B0451101 张小航男1984-12-20 党员B0451102 王文广男1985-5-16 团员B0451103 李艳红女1984-6-12 群众B0451104 张丽霞女1984-7-22 群众B0451105 王强男1984-11-26 党员B0451106 张保田男1984-

7、7-5 群众B0451107 李博文男1984-8-9 团员B0451108 刘芳芳女1985-4-14 党员B0451109 李海男1984-2-16 团员B0451110 常江宁男1984-3-21 群众1:(1)查询表中的所有记录(2)查询前 3 条记录的 S_NUMBER 、 S_NAME和 BIRTHDAY字段(3)查询所有记录的SEX 字段,并去掉重复值( 4)查询所有记录的S_NUMBER (别名为学号)、S_NAME (别名为姓名)和BIRTHDAY (别名为出生日期)字段。(5)查询得到每个学生的年龄(6)统计男同学的人数2:使用 INTO 子句创建一个新表(T_STUDEN

8、T1)。3:假设 T_SCORE表中的数据如下表所示。表T_SCORE表中的数据S_NUMBER C_NUMBER SCORE B0451101 10010218 82 B0451102 10010218 75 B0451103 10010218 93 B0451104 10010218 81 B0451105 10010218 68 B0451106 10010218 77 B0451107 10010218 52 B0451108 10010218 85 B0451109 10010218 73 B0451110 10010218 87 B0451101 30020215 77 B0451

9、102 30020215 84 B0451103 30020215 56 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - (1)查询表 T_SCORE和表 T_STUDENT中的数据,满足条件:T_STUDENT.S_NUMBER=T_SCORE.S_NUMBER (2)上述查询也可以用以下方法实现:联合查询表T_SCORE和表 T_STUDENT中的数据。4:从表 T_SCORE中查询不及格学生的信息。5:从表 T_STUDE

10、NT中查询是党员的男学生的信息。6:从表 T_SCORE中查询成绩在8090 分的学生的信息。7:从表 T_STUDENT中查询所有非党员的学生信息。8:从表 T_STUDENT中查询所有姓张的学生信息。9:对表 T_STUDENT中的记录按性别进行分组,查询相应的人数。10:在表 T_SCORE中求选修了两门及以上课程的学生学号。11:在表 T_SCORE中查询选修了“10010218 ”课程的学生成绩,并按成绩的降序进行排序。12: 假设表 T_STUDENT1中的数据如下表所示。 对表 T_STUDENT1和表 T_STUDENT进行联合查询。表T_STUDENT1中的数据S_NUMBE

11、R S_NAME SEX BIRTHDAY POLITY 0554101 刘洋男1984-10-14 党员0554102 李志娟女1984-11-12 团员0554103 赵雪梅女1984-6-25 团员0554104 王华女1984-9-11 团员0554105 张金辉男1985-5-16 群众0554106 贾波男1984-10-3 党员0554107 周萍女1984-7-12 群众0554108 马帅男1984-5-22 团员0554109 唐芸女1985-8-25 群众0554110 王华男1984-1-20 团员13:查询选修了两门及以上课程的学生的基本信息。14:利用INSERT语

12、句向表T_STUDENT中插入一行数据,只包含S_NUMBER 、S_NAME 和 BIRTHDAY三列。15:利用 INSERT 语句向表 T_STUDENT中插入一行数据,所有的字段都要给出相应的值。16:利用 INSERT 语句向表 T_STUDENT中插入一批数据,数据来源于另一个已有的数据表。17:一个带有WHERE 条件的修改语句。18:一个简单的修改语句。19:一个简单的删除语句。20:一个没有WHERE 条件的删除语句。21:使用 TRUNCATE语句清空表T_STUDENT1中的数据。22:创建一个视图,要求显示T_STUDENT表中所有姓张的同学,并按性别进行升序排序。名师

13、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 23:使用 Transact-SQL语句创建一个新视图,命名为VIEW_SCORE,要求基表的来源为: T_STUDENT 、T_SCORE和 T_COURSE ,选择的字段为:T_STUDENT表中的S_NUMBER和 S_NAME字段、 T_COURSE表中的 C_NAME字段及 T_SCORE表中的SCORE 字段,要求查询的数据为05541 班学生的考试成绩。24:使用Tran

14、sact-SQL语句创建新视图VIEW_SCORE_NotPass。对数据表和对字段的选择同上, 要求只显示各班不及格的学生的学号、姓名、课程名及成绩。 并加密视图的定义。25:使用 Transact-SQL语句创建新视图VIEW_SCORE_SumAndAverage。要求计算各个班级各门课程的总分及平均分。26:使用系统存储过程sp_help 显示 VIEW_SCORE视图的特征信息。27:使用 sp_helptext显示 VIEW_SCORE视图在系统表中的定义。28:查看加密视图的定义信息。29:使用 sp_depends显示 VIEW_SCORE视图所依赖的对象。30:修改视图VIE

15、W_SCORE_NotPass,在该视图中增加一个新的条件,要求只显示高等数学不及格的学生信息。31:使用系统存储过程sp_rename来完成把视图“VIEW_SCORE_NotPass”重命名为“ VIEW_SCORE_NotPass_高等数学”。32: 创建一个基于表T_STUDENT的新视图 VIEW_STUDENT_05541, 要求包含 05541班的学生记录。33:首先创建一个包含限制条件的视图VIEW_STUDENT_05541_男,限制条件为显示 05541 班的男同学信息,然后插入了一条不满足限制条件的记录,再用SELECT 语句检索视图和表。34:在上例的基础上添加WITH

16、 CHECK OPTION选项。35:创建一个基于表T_STUDENT的视图 VIEW_STUDENT_05541_Modify,条件是显示 05541 班的学生的学号、 姓名和性别, 然后通过该视图修改表T_STUDENT中的记录。36:利用视图VIEW_STUDENT_05541,先插入一条记录,然后删除此条记录。37:删除视图 VIEW_STUDENT_05541_Modify和视图 VIEW_STUDENT_05541_男。四、 Transact-SQL 程序设计1:创建了一个变量CurrentDateTime,然后将 GETDATE() 函数的值放在变量中,最后输出 CurrentD

17、ateTime变量的值。2:查询 T_STUDENT表,将返回的记录数赋给变量RowsReturn。3:在 SELECT 语句中使用由SET 赋值的变量。4:在 T_SCORE表中,求 05541 班学生高等数学课程的最高分和最低分的学生信息,包括学号、姓名、课程名、成绩四个字段。5:计算表达式的值,并将结果赋给变量ExpResult 。6:查询 05541 班的学生信息, 要求列出的字段为:班级、 本班内的学号、 姓名、 性别、出生日期、政治面貌。7:使用比较运算符计算表达式的值。8:使用比较运算符计算表达式的值。9:使用字符串连接运算符计算表达式的值。名师资料总结 - - -精品资料欢迎下

18、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 10:使用括号改变表达式的计算顺序。11:从 STUDENT数据库中返回T_STUDENT表的第 4 列的名称。12:从 STUDENT数据库中返回T_STUDENT表的 S_NUMBER列的长度。13:检查 sysdatabases中的每一个数据库,使用数据库标识号来确定数据库名称。14:在 T_STUDENT表中先插入三条新记录,其中的POLITY 字段的值为NULL ,要求对记录进行查询时,对应的NULL 值在显

19、示时显示“群众”。15:利用 ERROR返回程序的错误代码。16:显示到当前日期和时间为止试图登录SQL Server的次数。17:返回在程序执行过程中上一条SQL 语句影响的记录数。18:返回 SQL Server安装的日期、版本和处理器类型。19:使用 RTRIM 函数删除字符型字段中的尾部空格。20:使用 SUBSTRING函数、 LEFT 函数和 RIGHT 函数求 T_STUDENT中的班级名称和学号。21:在第一个字符串(Good Morning )中删除从第6 个位置(字符M)开始的 7 个字符,然后在删除的起始位置插入第二个字符串(Afternoon ),创建并返回一个新的字符

20、串。22:查询 T_STUDENT表的学生信息,要求显示的字段为:学号、姓名、性别和学生的年龄。23:在 T_STUDENT表中查询每个学生的出生月份。24:从系统当前日期中返回系统当前的年份数、月份数和天数。25:在同一表达式中使用CEILING (), FLOOR (), ROUND ()函数。26:查询 T_STUDENT表中出生年份为1985 年的学生信息。27:编写一个用户自定义函数fun_SumScores,要求根据输入的班级号和课程号,求此班此门课程的总分。28:使用自定义函数fun_SumScores,求 T_SCORE表中的各个班级的各门课程的总分。29:根据 T_SCORE

21、表中的考试成绩,查询05541 班学生高等数学的平均成绩,并根据平均成绩输出相应的提示信息。30:查询 05541 班学生的考试情况,并使用CASE 语句将课程号替换为课程名进行显示。31:查询 05541 班学生的考试情况,并根据考试分数输出考试等级,当分数大于等于90 分,输出“优”,当分数在80 至 90 之间,输出“良”,当分数在70 至 80 之间,输出“中”,当分数在60 至 70 之间,输出“及格”,当分数在60 分以下,输出“不及格”。32:使用 WHILE CONTINUE BREAK 语句求 5 的阶乘。33:在程序中使用WAITFOR语句,使 WAITFOR后面的语句等待

22、10 秒钟后再继续执行。34:编写一个自定义函数,功能是查询给定姓名的学生,如果没有找到则返回0,否则返回满足此条件的学生人数,主程序调用这个函数,查询姓名为“王华”的学生,并根据函数的返回值进行输出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - 五、索引的创建和使用1:在 STUDENT数据库中创建一个新表T_DEPARTMENT,并将其中的D_NAME字段设置为聚集的唯一索引。2:在 STUDENT数据库中创建一个新表T_

23、SPECIALTY,并将其中的P_NUMBER字段设置为主键。3:创建一个新的非聚集索引,要求按照T_STUDENT 中的 S_NAME 字段的降序创建,索引名为“ IX_S_NAME ” 。4:使用CREATE INDEX语句为表T_STUDENT创建一个非聚集索引,索引字段为S_NAME ,索引名为IX_STUDENTName。5: 为表 T_STUDENT创建一个复合索引, 使用的字段为SEX 字段和 BIRTHDAY字段,排序顺序 SEX 为降序, BIRTHDAY为升序。6:用系统存储过程查看T_STUDENT表的索引信息。7:T_STUDENT表中的索引IX_T_STUDENT2的

24、名称更改为IX_T_STUDENT_SexAndBirth。8:除表 T_STUDENT中的索引IX_T_STUDENT_SEXAndBirth。六、存储过程的创建和使用1:创建一个名称为“StuInfo ”的存储过程,要求完成以下功能:在T_STUDENT 表中查询05541 班学生的学号、姓名、性别、出生日期和政治面貌五个字段的内容。2: 创建一个存储过程StuScoreInfo , 完成的功能是在表T_STUDENT 、 表 T_COURSE和表 t_SCORE中查询以下字段:班级、学号、姓名、性别、课程名称、考试分数。3:创建一个带有参数的存储过程Stu_Info ,该存储过程根据传入

25、的学生编号,在T_STUDENT中查询此学生的信息。4:创建一个带有参数的存储过程Stu_Age ,该存储过程根据传入的学生编号,在T_STUDENT中计算此学生的年龄,并根据程序的执行结果返回不同的值,程序执行成功,返回整数0,如果执行出错,则返回错误号。5:行前面创建的StuInfo 存储过程,它是一个无参的存储过程。6:存储过程StuScoreInfo 。7:执行存储过程Stu_Info ,该存储过程有一个输入参数“学号”,在执行时需要传入一个学号值。8:执行存储过程Stu_Age ,该存储过程有一个输入参数“学号”,另外,还有一个输出参数 Age 。存储过程执行完后,有一个返回的状态值

26、,这个值可以从变量ErrorValue得到。9:使用系统存储过程查看Stu_Age 存储过程的参数及其数据类型。10:使用系统存储过程查看StuScoreInfo存储过程的相关的数据库对象。11:修改前面创建的Stu_Info存储过程,使之完成以下功能:根据传入的学号,在表T_STUDENT 、表 T_COURSE和表 t_SCORE中查询此学生的班级、学号、姓名、性别、考试课程名称和考试分数。12:使用系统存储过程将Stu_Info 存储过程的名称修改为Stu_Info_SCORE。13:使用 DROP 命令删除StuInfo 和 StuScoreInfo两个存储过程。名师资料总结 - -

27、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 七、触发器的创建和使用1:创建一个INSERT 触发器“ TR_Stu_Insert”,当在T_STUDENT表中插入一条新记录时,触发该触发器,并给出“你插入了一条新记录!”的提示信息。2:创建了 Stu_Insert 触发器后, 查看向 T_STUDENT表中插入数据时,此触发器所完成的功能。3:创建一个AFTER 触发器,要求实现以下功能:在T_SCORE表上创建一个插入、更新类型的触发器TR_S

28、coreCheck,当在 SCORE 字段中插入或修改考试分数后,触发该触发器,检查分数是否在0-100 之间。4:创建一个AFTER 触发器,要求如下:在T_STUDENT表上创建一个删除类型的触发器TR_Stu_Delete,当在T_STUDENT表中删除某一条记录后,触发该触发器,在T_SCORE表中删除与此学号对应的记录。5:创建一个INSTEAD OF触发器, 要求实现以下功能:在 T_COURSE表上创建一个删除类型的触发器TR_NotAllowDelete, 当在 T_COURSE表中删除记录时, 触发该触发器,显示不允许删除表中数据的提示信息。6:使用系统存储过程查看TR_St

29、u_Insert触发器的一般信息。7:使用系统存储过程查看T_STUDENT表涉及到的所有触发器。8:使用系统命令删除TR_Stu_Insert触发器。八、 SQL Server的安全性管理1:创建一个SQL Server 登录帐户USER1 ,密码为Abc123#$ 。2:删除 SQL Server帐户 USER1 。3:在STUDENT数据库中为SQL Server 用户 USER1添加数据库用户,并取名为USER1 ,默认架构为STU 。4:从 STUDENT数据库中删除数据库用户USER1 。5:为 STUDENT数据库新创建一个数据库用户USER2 ,并为其赋予查询T_COURSE表

30、的权限。6:将对数据库STUDENT中 T_SCORE表的 SELECT 权限授予数据库用户USER2 。程序清单如下:7:拒绝 USER2 对 T_COURSE表中的 C_NUMBER列的 SELECT 权限。8:收回 USER2 对 T_SCORE表的 SELECT权限。9:将在 STUDENT数据库中创建数据表的权限授予用户USER2 。九、 SQL Server数据转换1:利用导入向导将一个Excel 工作表中的内容导入到SQL Server 2005的 STUDENT数据库中,导入的数据表命名为“T_DEPARTMENT”。2:利用导出向导将SQL Server 2005中 STUDENT数据库的T_STUDENT表、T_COURSE表和 T_SCORE三个表中的数据导出到一个Excel 工作表中, 三个数据表的名称保持不变。31:使用复制数据库向导生成一个新的数据库,名称叫 STUDENT_NEW。使用的源数据库为 STUDENT数据库。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁