您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > SQL数据库复习题七及答案
SQLServer数据库复习题七及答案一.单项选择题1._______是数据库系统的核心,它负责数据库的配置、存取、管理和维护等工作。(c)A、操作系统B、关系模型C、数据库管理系统D、数据库2.SQLServer2000是一款基于_________体系的关系型数据库管理系统。(A)A、客户机/服务器B、主机C、N层D、单机3.下面哪一个不是SQLServer2000的基本数据类型(A)A、VARIANTB、VARCHARC、VARBINARYD、NVARCHAR4.下面的类型中宽度最大的是(C)A、CHAR(5)B、VARCHAR(5)C、NCHAR(5)D、BIGINT5.表达式LEN('电子学院')+DATALENGTH(GETDATE())的值为(C)A、8B、10C、12D、166.在SQLServer2000中,数据存储的基本单位是页,页的大小是(D)A、1KB、2KC、4KD、8K7.在使用CREATEDATABASE命令创建数据库时,FILENAME选项定义的是(D)A、文件增长量B、文件大小C、逻辑文件名D、物理文件名8.关于表结构的定义,下面说法中错误的是(C)A、表名在同一个数据库内应是唯一的B、创建表使用CREATETABLE命令C、删除表使用DELETETABLE命令D、修改表使用ALTERTABLE命令9.下面哪一个约束用来禁止输入重复值?(A)A、UNIQUEB、NULLC、DEFAULTD、FOREIGNKEY10.下面关于登录账户、用户和角色的说法错误的是(C)A、登录账户是服务器级的B、用户是登录账户在某个数据库中的映射C、用户不一定要和登录账户相关联D、角色其实就是用户组11.在SELECT语句中,用于去除重复行的关键字是(B)A、TOPB、DISTINCTC、PERCENTD、HAVING12.若想查询出所有姓张的、且出生日期为空的学生信息,则WHERE条件应为(C)A、姓名LIKE‘张%’AND出生日期=NULLB、姓名LIKE‘张*’AND出生日期=NULLC、姓名LIKE‘张%’AND出生日期ISNULLD、姓名LIKE‘张_’AND出生日期ISNULL13.下面关于视图的说法中,错误的是(C)A、视图是个虚拟表B、可以使用视图更新数据,但每次更新只能影响一个表C、不能为视图定义触发器D、可以创建基于视图的视图14.下面关于触发器的描述,错误的是(A)A、触发器是一种特殊的存储过程,用户可以直接调用B、触发器表和DELETED表没有共同记录C、触发器可以用来定义比CHECK约束更复杂的规则D、删除触发器可以使用DROPTRIGGER命令,也可以使用企业管理器15.下面关于事务的描述,错误的是(D)A、事务可用于保持数据的一致性B、事务应该昼小且应尽快提交C、应避免人工输入操作出在在事务中D、在事务中可以使用ALTERDATEABSE二.填空题1.SQLServer是作为WindowsNT或2000的一个__服务________运行的,用户可以启动、暂停或停止它。2.SQLServer服务包括有__SQLServer服务________、___SQLServerAgent服务_______、MicrosoftSearch和MSDTC服务。3.SQLServer有两类数据库,__系统数据库________和用户数据库。其中为新的用户数据库提供模板的系统数据库是____model______。4.所有的数据库都有一个____主数据文件______和一个或多个事务日志文件,此外,还可能有_____次要数据文件_____。5.向表中添加数据应使用___INSERT(或填INSERTINTO)_______命令,更新数据应使用___UPDATE_______命令。6.在SQLServer2000中,约束有非空约束、缺省约束、_主键约束_________、____外键约束______、检查约束和唯一约束等6种类型。7.对象权限是指用户基于数据库对象层次上的访问和操作权限,共有5种:SELECT、INSERT、DELETE、___UPDATE_______和____EXECUTE______。(或填更新、执行)8._____UNION_____可以把两个或多个SELECT语句的查询结果组合成一个结果集,使用时要求所有SELECT语句的列数应_______相同___,对应列的数据类型相容。9.索引表的顺序与数据行的物理顺序相同的索引称为___聚集(或聚簇或簇)_______索引。10.使用游标的一般步骤应为:__创建游标________、_____打开游标_____、从游标的结果集中读取数据、对游标中的数据逐行操作、关闭游标和释放游标。11.___事务_______是指一个操作序列,这些操作序列要么都被执行,要么都不被执行。12.___差异备份_______只记录自上次完整数据库备份后发生更改的数据。三.判断题1.外键是指一个表中含有与另外一个表的主键相同的列或列组,外键不要求惟一。(√)2.SQLServer2000支持Unicode字符集,相应数据类型为text、char和varchar。(×)3.企业管理器是SQLServer提供的最主要的数据库管理工具,它以树形结构的形式来管理数据库服务器、数据库和数据库中的对象。(√)4.全局变量与局部变量一样,用户必须进行声明后才能使用。(×)5.在SQLServer2000中,由于不能跨页存储数据行,所以页中每一行最多包含的数据量是8060B。(√)6.数据完整性就是指数据的正确性、完备性和一致性。(√)7.若使用REVOKE命令撤消某用户创建表的权限,则该用户将肯定无权创建表。(×)8.WITHCHECKOPTION表示使用视图更新数据时应满足视图定义中设置的条件(√)9.表的每个触发动作只能有一个INSTEADOF触发器。(√)10.在使用差异数据库备份还原数据库时,应先还原最新的完整数据库备份。(√)四.查询设计某个学籍数据库有如下表结构:学生(学号,姓名,性别,出生日期,班级)课程(课程号,课程名称,课程类别,课时)选课(学号,课程号,成绩)请完成下列查询要求。1.查询出“软件041”班的所有男生的学号和姓名。SELECT学号,姓名FROM学生WHERE班级=‘软件041’AND性别=‘男’2.查询出所有姓张的同学的姓名和班级。SELECT*FROM课程WHERE课程名称LIKE‘%语言%’3.查询出“C语言”课程成绩前5名的学生的学号、姓名和班级。SELECTTOP5学生.学号,姓名,班级FROM学生JOIN选课ON学生.学号=选课.学号JOIN课程ON课程.课程号=选课.课程号WHERE课程名称=‘C语言’ORDERBY成绩DESC4.查询出各班级学生人数。SELECT班级,COUNT(*)AS人数FROM学生GROUPBY班级5.查询出“计算机应用基础”课程成绩高于张三同学此门课程成绩的学生的学号和姓名。SELECT学生.学号,姓名FROM学生JOIN选课ON学生.学号=选课.学号JOIN课程ON课程.课程号=选课.课程号WHERE课程名称=‘计算机应用基础’AND成绩(SELECT成绩FROM学生JOIN选课ON学生.学号=选课.学号JOIN课程ON课程.课程号=选课.课程号WHERE课程名称=‘计算机应用基础’AND姓名=‘张三’)五.综合题根据下面某教学管理数据库的表结构,完成下面的程序填空题。教师(职工号,姓名,学历,职称)课程(课程号,课程名称,课程类别)任课(职工号,课程号,周课时)1.补填下面的存储过程的定义,使其被调用时,能根据调用程序提供的教师姓名使用输出参数返回该教师任课的课程数。CREATEPROCEDURE按教师姓名查询任课课程数@姓名VARCHAR(10),@课程数INT__OUTPUT___________________ASSELECT__@课程数=COUNT(*)___________________FROM教师JOIN任课ON教师.职工号=任课.职工号WHERE____姓名=@姓名_________________2.完成下面的触发器的定义,当向任课表中插入记录时,触发器能判断若插入的记录使该教师的任课周课时总计超过20,则回滚插入操作。CREATETRIGGER添加教学任务ON任课AFTERINSERTASDECLARE@总课时INTSELECT@总课时=SUM(任课.周课时)FROM任课JOIN_INSERTEDON任课.职工号=INSERTED.职工号____________________IF@总课时20_____ROLLBACKTRANSACTION________________参考答案一.单项选择题1.C2.A3.A4.C5.C6.D7.D8.C9.A10.C11.B12.C13.C14.A15.D二.填空题1.服务2.SQLServer服务SQLServerAgent服务(或填主服务、代理服务)3.系统数据库model4.主数据文件次要数据文件5.INSERT(或填INSERTINTO)UPDATE6.主键约束外键约束7.UPDATEEXECUTE(或填更新、执行)8.UNION相同9.聚集(或聚簇或簇)10.创建游标打开游标11.事务12.差异备份三.判断题1.√2.×3.√4.×5.√6.√7.×8.√9.√10.√四.查询设计1.查询出“软件041”班的所有男生的学号和姓名。SELECT学号,姓名FROM学生WHERE班级=‘软件041’AND性别=‘男’2.查询出所有姓张的同学的姓名和班级。SELECT*FROM课程WHERE课程名称LIKE‘%语言%’3.查询出“C语言”课程成绩前5名的学生的学号、姓名和班级。SELECTTOP5学生.学号,姓名,班级FROM学生JOIN选课ON学生.学号=选课.学号JOIN课程ON课程.课程号=选课.课程号WHERE课程名称=‘C语言’ORDERBY成绩DESC4.查询出各班级学生人数。SELECT班级,COUNT(*)AS人数FROM学生GROUPBY班级5.查询出“计算机应用基础”课程成绩高于张三同学此门课程成绩的学生的学号和姓名。SELECT学生.学号,姓名FROM学生JOIN选课ON学生.学号=选课.学号JOIN课程ON课程.课程号=选课.课程号WHERE课程名称=‘计算机应用基础’AND成绩(SELECT成绩FROM学生JOIN选课ON学生.学号=选课.学号JOIN课程ON课程.课程号=选课.课程号WHERE课程名称=‘计算机应用基础’AND姓名=‘张三’)五.综合题1.OUTPUT@课程数=COUNT(*)姓名=@姓名2.INSERTEDON任课.职工号=INSERTED.职工号ROLLBACKTRANSACTION
本文标题:SQL数据库复习题七及答案
链接地址:https://www.777doc.com/doc-2860422 .html