|
file:///C:\Users\57414\AppData\Local\Temp\ksohtml7488\wps1.png 软件工程实训—数据库模块测试题
一 测试目的 1.熟悉Microsoft SQL Server Management Studio的基本操作,练习在SSMS中使用T-SQL语句完成相应的数据查询操作; 2.掌握T-SQL语句的基本命令,掌握数据表的创建,数据查询等基本语句; 3.熟悉数据更新语句,掌握数据的插入、删除和修改的基本命令; 4.掌握T-SQL语句的连接查询、子查询等; 5.熟悉使用T-SQL语言编写函数、存储过程等编程对象; 6.掌握使用T-SQL语言完成数据库应用系统开发中的实际查询要求。
使用录屏软件: 打开录屏软件,不要录制声音,考试一开始就录屏,整个考试过程全程录屏,不得随意重启机器或者停止录屏软件;录屏文件保存于‘D:\’盘下,文件名为“学号_姓名_数据库模块测试录屏”(如学号为“170101010101”,则文件名为:“170101010101_张三_数据库模块测试录屏);操作命令和操作结果保存为“学号_姓名_数据库模块测试.txt”(如“170101010101_张三_数据库模块测试.txt”)的文本文件,录屏文件和文本文件一起作为考试结果提交,作为评分的依据。将这两个文件压缩,文件名为:170101010101_张三_数据库模块.rar,提交到指定的位置。如果录屏文件不完整,影响改卷判分,由考生自己负责。 测试过程中,不准上网,不准使用任何聊天和通信工具,不准使用U盘、移动硬盘等移动存储设备,考生必须独立完成,否则按作弊论处。 开启SSMS,使用windows身份验证登录,运行以下命令,然后把运行结果拷贝到上面要求创建的txt文件的最开始位置: Print '显示结果如下:'; print getdate(); print user_id( ); print user_name( ); print @@Servername; print @@spid; print host_id( ); print host_name( ); print suser_sid( ); print suser_name( ); print @@DBTS; print '下面开始答题'; 将执行后的结果全部直接拷贝到上面创建的文本文件中,不需要做任何编辑。
二 测试平台 操作系统:Windows 2003、Windows 7或者Windows 10,数据库管理系统使用SQL Server 2012以及SSMS。
三 测试内容及要求 第一大题:登录服务器并创建架构 1.使用SSMS登录本机的SQL Server数据库服务器,用Windows身份验证登录,然后创建登录stu_学号(学号换个每个人自己的学号,下同),并创建数据库test学号_java(学号两个字换成每个完整的学号),把stu_学号登录名映射为test学号_java数据库的拥有者,然后再用stu_学号登录本机数据库,按以下步骤依次完成各题。 2. 用stu_学号成功登录服务器后,在服务器的test学号_java数据里,创建架构SH_姓名(假如姓名是张三,那么架构名就是SH_张三),架构的拥有者是stu_学号用户,把用户stu_学号的默认架构改为SH_姓名,下面所有对象都在SH_姓名架构下完成;假如姓名是张三,那么所有对象就放到架构SH_张三下面; 第二大题:完成创建表和查询数据的操作 1.使用SQL语句创建满足要求的数据表; 建立图书类型表(BookClass)、图书表(Book)和借阅信息表(Borrow),表结构:表BookClass包含类型编号:BCid,类型名称:BCname这两列,其中BCid是主键;表Book包含四个字段:书号:Bid,书名:Bname,类型编号:BCid,价格:BPrice,其中Bid为主键,BCid为外键;表Borrow包含四个字段:Bid,书号:RName读者姓名(假设读者姓名都不重复),BDate借书时间,RDate还书时间,bmemory备注,(Bid,Rname,BDate)为主键,Bid为参照Book表的外键;写出创建上面三个表的SQL语句,列的数据类型自己设计;
2.在上面三个表中分别插入数据,数据的内容如下(根据表的结构,数据要被插入到不同的表里)。(为了验证查询的结果是否正确,可以插入比下面要求的更多的数据行)
记录内容:
书号 书名 价格 类型编号 类型名称 S1 水浒传 56.8 C01 小说 S2 西游记 28.0 C01 小说 S3 大学语文 19.0 C02 语言文学 S4 足球入门 21 C05 体育类 S8 辩证法 42.0 C08 哲学类
借阅信息: 书号 读者姓名 借书时间 还书时间 S3 张先 2018-02-01 2018-06-30 S2 黄俊 2018-03-14 S4 张大兵 2018-03-02 2018-06-01 S2 王贤 2018-08-05 S1 朱佳佳 2018-05-07
其中还书时间为空表示还没有还,写出完成插入以上数据的SQL语句;
3.根据上面三个表的内容,分别写出完成下面查询要求的SQL语句;根据查询需要可以创建相关的视图; (1)找出姓名为唐强的读者所借阅的所有图书,列出书号,书名和图书类型,借书时间;将此创建为视图,命名为vi_1; (2)找出被借阅次数最多的图书的借阅信息,列出书号,书名,读者姓名,借阅时间;将此创建为视图,命名为vi_2; (3)找出借书次数为前3名的读者的借书信息,列出读者信息,图书编号,书名,借书时间,还书时间;将此创建为视图,命名为vi_3; (4)查询出哪些图书一直没有被借阅过,列出图书编号,图书名称,类型名称;将此创建为视图,命名为vi_4; (5)查询出每类图书中借阅次数最多的图书信息,列出图书编号、图书名称、类型名称;将此创建为视图,命名为vi_5; (6)查询出Borrow表中借阅天数最少的借书信息,还没有归还的不算在内,列出书号,读者姓名,借书日期,还书日期;将此创建为视图,命名为vi_6;
4.创建存储过程:设计一个存储过程,可以根据图书的编号,和给出的价格,把图书表中该图书的价格修改为新给出的值,如果指定的图书编号不存在,应该提示错误信息。创建该存储过程,命名为usp_1;并调用该存储过程,把S3号图书的价格改为24;
5.修改表BookClass; 在BookClass表中增加一个表示图书总数量的列Bnum,并将图书信息表中相应类型的图书的总数量填写到Bnum列上;
6.删除数据; (1)删除Borrow表中李明已经归还了的借阅信息,将此创建为存储过程,命名为usp_2;
7.创建新表,将所有已经归还的借阅信息放入到新表Borrow_his中。将此语句创建为存储过程,命名为usp_3;
第三大题:权限管理 假设对于数据库test学号_java,开发人员(用户)u_d1, u_d2, u_d3, u_d4,需要该数据库上的增、删、改、查权限;测试人员u_t1, u_t2, u_t3, u_t4, u_t5只需要对该数据库的增、删、改权限;普通用户u_1, u_2, u_3, u_4, u_5对该数据库只有查询权限。假设你是DBA,根据以上要求,设计一个权限管理方案。写出实现该方案的完整脚本。
第四大题:使用递归的CTE 假设有商品信息表,表结构为Goods(id:编号、Name:名称、ParentID:上级编号) 其中id为主键;录入数据记录如下。 id Name ParentID G01 牛肉 G15 G02 牙膏 G10 G03 香皂 G10 G04 猪肉 G15 G05 鱼 G15 G06 可乐 G11 G07 雪碧 G11 G08 床单 G14 G09 食品 G16 G10 洗漱用品 G12 G11 饮料 G09 G12 日用品 G16 G13 被罩 G14 G14 床上用品 G12 G15 生鲜 G09 G16 商品 NULL
1. 使用SQL语句,创建上面的数据表,列的数据类型自己选择,表放到上面自己创建的架构里,并录入相应的数据。 2. 请写出一个递归的CTE,显示每种物品在商品信息表中的层级,完成后的显示效果如下图所示。
作业提交说明: 把完成上面每个题目的脚本,根据题号,保存到一个文本文件中,例如: 1. …… 2. …… 3. …… …… 文本文件的名字为:学号_姓名_数据库模块.txt
把录屏结果文件命名为:学号_姓名_数据库模块测试录屏.exe
把上面两个文件压缩成一个rar包,命名为:学号_姓名_数据库模块.rar
题目下载地址:
答案下载地址: 游客,本付费内容需要支付 100金币 才能浏览 支付
|