• 379.00 KB
  • 2022-04-22 11:27:35 发布

吉林电子信息职业技术学院2012年《关系数据库与SQL Server 2005》习题参考答案.doc

  • 14页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'关系数据库与SQLServer2005习题参考答案第1章关系数据库原理1.什么是数据、数据库、数据库管理系统、数据库系统?数据是数据库中存储的基本对象。数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及开发工具)、应用系统、数据库管理员和用户构成。2.数据库系统有哪些特点?数据库系统的特点有:数据结构化、数据的共享性高,冗余度低,易扩充、数据独立性高、数据由DBMS统一管理和控制。3.数据库管理系统的主要功能有哪些?数据库管理系统的主要功能有:数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。4.试给出三个实际情况的E-R图,要求实体之间具有一对一、一对多、多对多、各种不同的联系。1:1的E-R图1:m的E-R图m:n的E-R图5.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教师,每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。请用E-R图画出此学校的概念模型。 6.某商品销售公司有若干销售部门,每个销售部门有若干员工,销售多种商品,所有商品有一个厂家提供,设计该公司销售系统的E-R模型,并将其转换为关系模式。公司(公司代码,公司名,地址)部门(部门代码,部门名)员工(员工代码,姓名,性别,年龄,职务)商品(商品代码,商品名,单价,数量)厂家(厂家代码,厂家名,地址)拥有(公司代码,部门代码)属于(部门代码,员工代码)销售(员工代码,商品代码,销售量)供货(商品代码,厂家代码) 7.在关系代数中,条件连接和自然连接的区别是什么?条件连接是把两个表中的行按照给定的条件进行拼接而形成的新表,结果列为参与连接的两个表的所有列。自然连接要求两个表有共同属性(列)。自然连接的结果表是参与操作的两个表的共同属性上进行等值条件连接后,再去除重复的属性后得到的新表。8.已知如图所示。CDE358980369678BCD239560273RSMNABC123456789DE31621)求R与S在B=0and成绩<=100)altertable成绩表altercolumn课程名char(20)notnull3.insert学生表(学号,姓名,性别,电话,EMAIL)values(‘020107’,‘田芳’,‘女’,‘65926699’,‘tianfang@qq.com’)goinsert成绩表(学号,课程名,成绩)values(‘020107’,‘数据库基础’,85)4.altertable学生表add序号intidentity5.altertable学生表altercolumn电话char(11)6.execsp_rename‘学生表’,‘xsb’goexecsp_rename‘成绩表’,‘cjb’7.(略)习题5一、填空题1.SELECT2.WHERE3.连接4.分组5.排序6.ORDERBY7.设定组或聚合的查询条件HAVING子句可以使用汇总函数,而WHERE子句则不能二、上机题1.select课程名,授课教师,开课学期fromkcwhere开课学期=22. select姓名,性别,联系电话fromxsqkwhere性别=03.select学号,课程号,成绩fromxs_kcwhere成绩>=804.select学号,课程号,成绩fromxs_kcwhere成绩>=80or成绩<605.select学号,姓名,出生日期fromxsqkwhere出生日期notbetween‘1980-07-07’and‘1980-09-30’6.select*fromxsqkwhere姓名like‘陈_’7.select*fromxsqkwhere学号like‘%1%’8.select*fromxsqkwhere联系电话like‘______[46]_’9.select*fromkcwhere开课学期in(1,3,5)10.select学号,姓名,出生日期fromxsqkorderby出生日期11.select开课学期,sum(学分)as各学期的学分合计fromkcgroupby开课学期12.select学号,count(*)as每个学生选修的课程门数fromxs_kcgroupby学号13. select课程名称,开课学期,学分fromkccomputesum(学分)14.select课程名称,开课学期,学分fromkcorderby2computesum(学分)by开课学期15.select学号,avg(成绩)as学生的平均分fromxs_kcgroupby学号16.select学号,avg(成绩)as学生的平均分fromxs_kcgroupby学号havingavg(成绩)between70and8017.select学号,课程号,成绩intotemp_kcfromxs_kcorderby课程号,成绩desc18.selectmax(成绩)as101课程的最高分,min(成绩)as101课程的最低分fromxs_kcwhere课程号=’101’19.select开课学期,count(*)as每学期开设的课程门数fromkcgroupby开课学期20.select专业名,count(专业名)as各专业人数fromxsqkgroupby专业名21.select学号,xs_kc.课程号,授课教师,开课学期,成绩fromkc,xs_kcwherekc.学号=xs_kc.学号and成绩<6022.select学号,sum(成绩)as各学生的总分fromxs_kcgroupby学号havingsum(成绩)>=100orderbysum(成绩)desc 23.select学号,姓名fromxsqkwhere(selectcount(课程号)fromxs_kcwherexsqk.学号=xs_kc.学号and成绩>=60)=224.select*fromxs_kcawhere成绩=(selectmax(成绩)fromxs_kcbwherea.课程号=b.课程号)25.select*fromxs_kcawhere成绩=(selectmin(成绩)fromxs_kcbwherea.学号=b.学号)习题6一、填空题1.标准视图索引视图分区视图2.虚拟表CREATEVIEW3.基表4.聚集索引非聚集索引唯一索引复合索引全文索引XML索引5.创建表6.数据库二、操作题1.createviewv_平均成绩asselect学号,avg(成绩)as平均成绩fromxs_kcgroupby学号havingavg(成绩)>=902.createviewv_选课信息asselecta.姓名,b.课程名fromxsqka,kcb,xs_kccwherea.学号=c.学号andb.课程号=c.课程号anda.班级="网络071"3.createindexix_课程名onkc(课程名) 习题71.规则是绑定到列或用户自定义数据类型上的数据库对象,用来指定列可以接受哪些数据值。规则是实现域完整性的方法之一。CHECK约束是用CREATETABLE语句在建表时指定的,而规则需要作为单独的数据库对象来实现。在1列上只能使用1个规则,但可以使用多个CHECK约束。1个规则可以应用于多个列,还可以应用于用户自定义的数据类型,而CHECK约束只能应用于它所定义的列。2.使用规则来实现数据完整性,需要两个步骤。一是创建规则;二是将规则绑定到列或用户自定义数据类型上。3.默认值就是当用户向表中添加数据时,没有明确地给出,而由SQLServer自动指派的值。默认值可以定义为数据库对象,使用时需将其绑定到特定的列上。默认值约束是用CREATETABLE语句创建表时,使用DEFAULT子句为表中的列提供默认值。默认值对象是用CREATEDEFAULT语句来创建的,使用时须将它绑定到列或用户自定义数据类型上。4.使用默认值来实现数据完整性,需要两个步骤。一是创建默认值对象;二是将默认值对象绑定到列或用户自定义数据类型上。习题8一、选择题1.C2.B3.D二、填空题1.一条或多条T-SQL语句的集合GO2.DECLARE系统3.语句块4.退出重新开始5.某一时刻一段时间间隔三、简述题1.SQL标识符的命名必须遵守以下规则:标识符的长度可以为1~128个字符。标识符的第一个字符必须是英文字母、汉字、下划线、@或者#。默认情况下,标识符内不允许含有空格,也不允许将SQL关键字作为用户定义的标识符。2.T-SQL的运算符共有7类:算数运算符、赋值运算符、按位运算符、比较运算符、逻辑运算符、字符串串联运算符、一元运算符。3.局部变量的声明:DECLARE@variable_namedatatype[,…n]局部变量的赋值:①SET@variable_name=expression②SELECT@variable_name=expression[,…n][FROM…][WHERE…]4.全局变量是指由系统提供且预先声明的变量,不能显示地被赋值,通过在名称前保留两个@@符号区别于局部变量。全局变量在相应的上下文中是随时可用的,通常被服务器用来跟踪服务器范围和特定会话期间的信息。 5.RETURN语句用于从查询或过程中无条件退出。RETURN的执行是即时且完全的,可在任何时候用于从过程、批处理或语句块中退出,在它之后的语句不会被执行。四、编程题1.usexscjgodeclare@nintselect@n=count(*)fromxsqkwheredatediff(yy,出生日期,getdate())>25if@n>=0print"年龄大于21的学生人数有:"+cast(@nasvarchar(5))elseprint"没有年龄大于21的学生"2.declare@iint,@sumintselect@i=1,@sum=0while(@i<=100)beginselect@sum=@sum+@i,@i=@i+1if(@sum>1000)breakendprint"n="+cast(@iasvarchar(5))+",sum="+cast(@sumasvarchar(10))3.waitfordelay’00:00:06’usexscjselect*fromxsqkgowaitfortime’16:15:30’usexscjselect*fromxs_kc习题9一、填空题1.参数输入输出2.EXECUTE3.不能4.DML触发器DDL触发器5.FOR|AFTERINSTEADOF6.InsertedDeleted7.INSERTUPDATEDELETE二、编程题1.usexscjgocreateprocedurep_ins @kchchar(3),@kcmchar(20),@teacherchar(8),@kcxqtinyint,@xstinyint,@xftinyintasinsertintokcvalues(@kch,@kcm,@teacher,@kcxq,@xs,@xf)goexecp_ins"111","数据库基础","张玲",2,68,42.createprocedurep_xsqk@xhchar(6),@namechar(8)output,@xbbitoutput,@xichar(10)output,@zychar(10)outputasselect@name=姓名,@xb=性别,@xi=所在系,@zy=专业名fromxsqkwhere学号=@xhgodeclare@xhchar(6),@namechar(8),@xbbit,@xichar(10),@zychar(10)select@xh="020101"execp_xsqk@xh,@nameoutput,@xboutput,@xioutput,@zyoutputprint"学号为"+@xh+"的信息如下:"print""print"姓名:"+@nameprint"性别:"+convert(varchar(2),@xb)print"所在系:"+@xiprint"专业名:"+@zy3.createprocp_update@kchchar(3)asupdatexs_kcset成绩=60where课程号=@kchand(成绩>=55and成绩<=59)godeclare@kchchar(3)select@kch="103"execp_update@kchselect*fromxs_kcwhere课程号=@kch4.(略)5.(略)6.createtriggerup_updatekconkcforupdateasupdatexs_kcset课程号=inserted.课程号where课程号=deleted.课程号7.createtriggert_delete_xsqkonxsqkfordelete asdeclare@学号char(6)select@学号=deleted.学号fromdeletedprint"准备删除xs_kc表的"+@学号+"成绩记录"deletexs_kcwhere学号=@学号print"已经删除xs_kc表的"+@学号+"成绩记录"8.createtriggertr_insert_kconkcafterinsertasifupdate(课程号)print"成功在kc表中插入了上述一个记录"goinsertintokcvalues("301","数据库","高老师",5,114,6)9.createtriggertri_update_kc_授课教师和开课学期onkcforupdateasifupdate(授课教师)andupdate(开课学期)begindeclare@课程名char(20)select@课程名=inserted.课程名fromdeleted,insertedwheredeleted.课程名=inserted.课程名print@课程名+"课程的授课教师和开课学期已经被更新"end习题101.SQLServer2005有两种身份验证模式。Windows身份验证:使用Windows操作系统本身提供的安全机制验证用户的身份,只要用户能够通过Windows的用户帐户验证,就可连接到SQLServer,又称为“信任连接”模式。SQLServer验证:使用SQLServer验证时,必须提供连接到SQLServer上的登录帐号和口令(该帐号和口令由系统管理员事先创建并存储在SQLServer中)。2.登录:服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源。每个登录名的定义存放在master数据库的syslogins表中。用户:一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限。用户定义信息存放在每个数据库的sysusers表中。一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。即一个登录可对应多个用户,一个用户也可以被多个登录使用。如果没有为一个登录指定数据库用户,则登录时系统将试图将该登录名映射成guest用户(如果当前的数据库中有guest用户的话)。如果还是失败的话,这个用户将无法访问数据库。3.SQLServer代理可以完成的工作有以下4种:作业调度、执行作业、产生警报、通知管理员。4.(略) 习题111.CLR,运行阶段通用语言,是一种管理代码执行情况的环境。MSIL,微软中间语言,这种语言以简写方式表示所有代码。Metadata,元数据,它们是关于应用程序的描述性信息,指出应用程序能做什么,归属于哪里等。'