SQLServer数据库试题六及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SQLServer数据库试卷6一、单项选择题(每题2分,共15题)1、DBMS是什么?()(A)操作系统(B)数据库管理系统(C)数据库(D)数据库管理员2、SQLServer2000是一个()的数据库系统。(A)网状型(B)层次型(C)关系型(D)以上都不是3、SQLServer2000采用的身份验证模式有()。(A)仅Windows身份验证模式(B)仅SQLServer身份验证模式(C)仅混合模式(D)Windows身份验证模式和混合模式4、关于主键描述正确的是:()(A)包含一列(B)包含两列(C)包含一列或者多列(D)以上都不正确5、下列()数据库不属于SQLServer2000在安装时创建的系统数据库。(A)master(B)NorthWind(C)model(D)bookdb6、在SQLSERVER中局部变量前面的字符为:()(A)*(B)#(C)@@(D)@7、在SQLServer2000中,当数据表被修改时,系统自动执行的数据库对象是()。(A)存储过程(B)触发器(C)视图(D)其他数据库对象8、SQLServer的字符型系统数据类型主要包括()。(A)Int、money、char(B)char、varchar、text(C)datetime、binary、int(D)char、varchar、int9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是()(A)*(B)%(C)-(D)?10、在WHILE循环语句中,如果循环体语句条数多于一条,必须使用:(A)BEGIN……END(B)CASE……END(C)IF…………THEN(D)GOTO11、SELECT查询中,要把结果中的行按照某一列的值进行排序,所用到的子句是:(A)ORDERBY(B)WHERE(C)GROUPBY(D)HAVING12、要删除视图myview,可以使用()语句。(A)DROPmyview(B)DROPTABLEmyview(C)DROPINDEXmyview(D)DROPVIEWmyview13、对视图的描述错误的是:()(A)是一张虚拟的表(B)在存储视图时存储的是视图的定义(C)在存储视图时存储的是视图中的数据(D)可以像查询表一样来查询视图14、SQLServer提供的单行注释语句是使用()开始的一行内容。(A)“/*”(B)“--”(C)“{”(D)“/”15、假如有两个表的连接是这样的:table_ainnerjointable_b其中table_a和table_b是两个具有公共属性的表,这种连接会生成哪种结果集?(A)包括table_a中的所有行,不包括table_b的不匹配行(B)包括table_b中的所有行,不包括table_a的不匹配行(C)包括和两个表的所有行(D)只包括table_a和table_b满足条件的行二、填空题(每空2分,共15空)1、可以将数据库管理系统分为4种网络结构:MAINFRAME大型数据库、本地小型数据库、分布式数据库、__________。2、在一个表中主键的个数为:__________。3、在SQLServer2000中,索引的顺序和数据表的物理顺序相同的索引是_____________。4、角色是一组用户所构成的组,可以分为服务器角色和__________角色。5、触发器有3种类型,即INSERT类型、和。6、如果要计算表中的行数,可以使用聚合函数____________。7、SQLServer2000提供备份数据库的两种方式是和。8、在SQLServer2000中修改表的结构应使用关键字____________,修改表中的数据应使用关键字___________。9、在使用一个游标的时候可以分为以下几步:___________、打开游标、从打开的游标中提取行、____________、释放游标。10、一个事务的操作必须是具备以下四个属性:原子性、、隔离性和_____________。三、简答(20分)1、为什么要创建索引(4分)2、简述INSERT触发器的工作原理(6分)3、根据表回答以下问题两个表是先建关系,然后才输入数据,其中的关系为:book表中author_id作为外键关联到authors表的主键author_id上。book表列名数据类型长度允许空book_idint4book_namevarchar50author_idint4authors表列名数据类型长度允许空author_idint4author_namevarchar30(1)用Transact-SQL语句建立authors表(包括建立主键,列取值非空)(6分)(2)根据参照完整性在两个表都要输入第一个记录时一般应先输入哪个表的数据?为什么?(4分)四、编程题(共4题)(20分)student表(学生表)course表(课程表)课程号课程名学分1SQLServer42VB33专业英语2sc表(选课表)学号课程号成绩11902185227633701、把course表中课程号为2的课程的学分修改为4。(4分)2、在student表中查询年龄大于18的学生的所有信息,并按学号降序排列。(5分)3、在以上三个表中查询选的课程的“学分”为4,并且成绩大于80的学生的学号、姓名和性别。(6分)4、创建一存储过程getDetailByName,通过输入参数学生姓名(如“张然),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。(5分)SQLServer数据库试卷6参考答案一、选择题(每题2分,共30分)BCDCDDBBBAADCBD学号姓名性别年龄系别1李明男20计算机系2张然女19经管系3许晴女18电子系二、填空题(每空2分,共30分)1、客户机/服务器数据库2、一3、聚集索引4、数据库5、UPDATE类型、DELETE类型6、COUNT()7、备份数据库、备份事务日志8、ALTER、UPDATE9、声明游标、关闭游标10、一致性、永久性三、简答(20分)1、什么要创建索引?(4分)答:创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是所以的最主要原因。第三,可以加速表与表之间的连接,特别是实现数据的参考完整性方面特有意义。第四,在使用ORDERBY和GROUPBY子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询过程中,使用查询优化器,提高系统性能2、简述INSERT触发器的工作原理(6分)答:当向表中插入数据时,INSERT触发器触发执行。当INSERT触发器触发时,新的记录增加到触发器表中和inserted表中。该inserted表是逻辑表,保存了所插入记录的拷贝,允许用户参考INSERT语句中的数据。触发器可以检查inserted表,来确定该触发器的操作是否应该执行和如何执行。在inserted表中的那些记录,总是触发表中一行或多行记录的冗余。3、(1)(6分)createtableauthors(author_idintprimarykey,author_namevarchar(30)notnull)(2)(4分)如果先建立关系,然后再输入记录,在输入第一条记录时一般要先输入authors表,后输入book表。因为根据表之间的参照完整性,book表中author_id列的值要么取空值、要么取authors表中author_id列的某一个值,在此时book表的author_id列是不允许取空值的,所以应先输入authors表,后输入book表。四、编程题(共4题,共20分)1、(4分)updatecourse(1分)set学分=4(2分)where课程号=2(1分)2、select*fromstudentwhere年龄18orderby学号desc(5分)1分1分1分2分3、(6分)方法1:selectdistinctstudent.学号,姓名,性别(1分)fromstudent,course,sc(1分)where(student.学号=sc.学号)and(course.课程号=sc.课程号)and(course.学分=4)and(sc.成绩80)(1+1+1+1分)方法2:selectdistinctstudent.学号,姓名,性别(1分)fromstudentInnerJoin(scInnerJoincourseOncourse.课程号=sc.课程号)Onstudent.学号=sc.学号(2分+2分)where(course.学分=4)and(sc.成绩80)(1分+1分)4、(5分)CreateproceduregetDetailByName@Namenvarchar(10)(1分)ASIF(SELECTCOUNT(*)FROMstudentWHERE姓名=@Name)0SELECT*FROMstudentWhere姓名=@Name(3分)ELSEprint'警示:不存在姓名为'+@Name+'的学生资料'(1分)

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功