SQL数据库上机练习3由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“sql数据库上机考试”。
SQL数据库上机练习3
在C:盘根目录下用自己的名字加“_DB”建立一个文件夹。(例:“王平_DB”)
一.(6分)在SQL Server Management Studio中建立满足如下要求的数据库:
1. 数据库名字为:TGDB;
2. 此数据库包含的一个主数据文件和一个辅助数据文件。主数据文件的逻辑文件名为:TG_data1,物理文件名为TG_data1.mdf,存放在新建文件夹下,初始大小为4MB,自动增长,每次增加20%,最多增加到8MB。辅助数据文件的逻辑文件名为:TG_data2,物理文件名为TG_data2.ndf,同主数据文件存放在相同的位置,初始大小为2MB,不自动增长。
3. 日志文件包含一个,其逻辑文件名为:TG_log,物理文件名为TG_log.ldf,同主数据文件存放在相同的位置,初始大小为3MB,增长方式为自动增长,每次增加1MB,文件增长不受限制。二.(10分)为描述作者向期刊的投稿情况,建立了三张表:作者表、期刊表和投稿表。期刊表用于描述期刊的基本信息,作者表用于描述作者的基本信息,投稿表用于描述作者向期刊的投稿情况。在查询分析器中写出创建这三张表的语句,并将语句以文件形式保存下来,文件名为“考生名.sql”,存放在新建的文件夹下。可以将后续所有的SQL语句均保存在此文件中,在文件中注明题号,不用抄题)。
注:括号中为表名和列名的拼音表示,建表时用拼音表示表名和列名,不区分大小写。三张表的结构如下: 1.作者表(ZZB)
作者号(zzh)普通字符编码定长字符型,长度为4,主码;
作者名(zzm)统一字符编码可变长字符型,最多5个汉字,取值不重复。
2.期刊表(QKB)
期刊号(qkh)
普通字符编码定长字符型,长度为4,主码;
期刊名(qkm)
普通字符编码可变长字符型,最大长度为20,非空;
类别(lb)
普通字符编码定长字符型,长度为2,取值为“是”或“否”
(说明:“是”表示此期刊为核心期刊,“否”表示此期刊为非核心期刊)。
版面费(bmf)
整型。
3.投稿表(TGB)
作者号(zzh)
普通字符编码定长字符型,长度为4,非空; 期刊号(qkh)
普通字符编码定长字符型,长度为4,非空; 投稿日期(tgrq)
小日期时间型,非空,默认值为系统当前时间; 文章名称(wzmc)普通字符编码定长字符型,长度为50;
审稿结果(sgjg)
统一字符编码定长字符型,长度为3,取值范围为{通过,未通过},默认值为“未通过”。
其中,主码为(作者号,期刊号,投稿日期),“作者号”为引用作者表的“作者号”的外码; “期刊号”为引用期刊表的“期刊号”的外码。三.(6分)运行C:exam.exe程序解压缩数据文件(可解压到任何地方),解压缩的密码为“dbok”。利用SQL Server的导入导出向导,将“期刊表.txt”文件中的数据导入到“期刊表”中,将解压后的 “作者与投稿表.xls”文件中的数据分别导入到 “作者表”和“投稿表”中。四.(6分)在SQL Server Management Studio中创建“SQL Server身份验证”模式的登录帐号:TG_User,其中账户密码为空,默认数据库为Master。并完成如下操作: 1.让TG_User成为TGDB数据库的合法用户。
2.在TGDB数据库中建用户自定义角色:MyRole,让TG_User成为MyRole角色中的成员。3.用较好的方法授予MyRole在TGDB数据库中具有所有用户表的查询权。
五.(4分)在SQL Server Management Studio中按要求完成下列操作:
1.创建一个永久备份设备,备份设备的名字为“TG_BK”,存放在新建文件夹下,物理文件名为“TG_BK.bak”。
2.用“TG_BK”备份设备对“TGDB”进行一次完全备份。六.(28分)利用第二题的三张表,在查询分析器中写出实现如下要求的SQL语句,注明题号。并将这些语句与第二题所写的语句保存在一起。(注:要求下述语句均使用一条SQL语句完成)1.查询2006年以后(包括2006年)的投稿情况,列出作者名、期刊名、文章名称和投稿日期。2.查询姓哪个姓的作者最多,列出这个姓氏和姓这个姓氏的作者人数,包含并列的情况。3.查询作者“杨伍华”没有投过稿的核心期刊的名称。
4.查询“杨伍华”投过稿的期刊的投稿情况,显示期刊号,审稿通过总次数,版面费总金额(说明:只有审稿结果为“通过”时,作者才需向期刊缴纳相应版面费),要求只列出投稿次数超过5次(不包括5次)且版面费总金额大于7000的情况。
5.查询全体作者(包括还没有投过稿的作者)的人均投稿次数,列出总投稿次数、总人数和人均投稿次数。要求平均投稿次数保存到小数点后2位。
6.向投稿表中插入一条记录,作者号为“zz01”,期刊号为“qk02”,文章名称为“地铁限界系统的研究”,投稿日期和审稿结果为默认值。7.删除投稿表中2000年以前(包括2000年),期刊名为“哲学研究”中审稿未通过的的投稿记录。七.(10)统计每位作者的投稿情况,列出作者名,投稿通过率(保留到小数点后2位),评价。其中,当投稿通过率高于0.7,评价为“高”;当投稿通过率在0.4到0.7之间,评价为“中”;当投稿通过率低于0.4,评价为“低”。(可分步骤实现)八.(10)用游标实现按如下报表形式显示结果的SQL语句。该报表首先输出期刊名称(只包括有投稿记录的期刊),然后显示此期刊的详细投稿情况,包括是否为核心期刊、作者名、投稿日期、审稿结果和文章名称。(说明:“是否为核心期刊”一项填写要求:如果是核心就写“是”,否则就写“否”。注意:报表的显示格式。)提示:有关游标的语句格式如下:
声明游标:declare 游标名 cursor for select 语句 打开游标:open 游标名 关闭游标:close游标名
提取数据:fetch next from 游标名 into„„ 释放游标:deallocate 游标名 全局变量:@@fetch_status 报表形式大致如下:(下表只列出了部分数据)
期刊名称:计算机应用研究
是否为核心期刊
作者姓名
投稿日期
审稿结果
文章名称
是
陈毅华
2007年6 月3 日
通过
信息安全的第二道防线——入侵检测系统
是
杨晓光
2008年6 月9 日
通过
一种基于移动agent技术的分布式数据检索系统的实现
是
杨伍华
2007年8 月29日
通过
无线传感器网络的研究
是
杨伍华
2008年2 月1 日
通过
基于Web的考试系统新方案
是
陈晓立
2006年3 月9 日
通过
基于J2EE的分布式事务研究
是
田令洋
2006年1 月26日
通过
个性化协同学习环境本体的研究
期刊名称:交通与计算机
是否为核心期刊
作者姓名
投稿日期
审稿结果
文章名称
是
田令洋
2007年4 月8 日
未通过
CORBA和Java的结合使用
是
田令洋
2008年1 月3 日
未通过
高速公路通信系统的整合利用初探
„„
是
杨晓光
2006年3 月1 日
未通过
基于VC与Ansys的参数化有限元分析