《SQL数据库复习题七及答案》由会员分享,可在线阅读,更多相关《SQL数据库复习题七及答案(5页珍藏版)》请在金锄头文库上搜索。
1、SQL Server数据库复习题七及答案一单项选择题1_是数据库系统的核心,它负责数据库的配置、存取、管理和维护等工作。(c )A、操作系统 B、关系模型 C、数据库管理系统 D、数据库2SQL Server2000是一款基于_体系的关系型数据库管理系统。 ( A)A、客户机/服务器 B、主机 C、N层 D、单机3下面哪一个不是SQL Server2000的基本数据类型 ( A)A、VARIANT B、VARCHAR C、VARBINARY D、NVARCHAR4下面的类型中宽度最大的是 ( C)A、CHAR(5) B、VARCHAR(5) C、NCHAR(5) D、BIGINT5表达式LEN
2、(电子学院) + DATALENGTH(GETDATE()的值为 ( C)A、8 B、10 C、12 D、166在SQL Server2000中,数据存储的基本单位是页,页的大小是 ( D)A、1K B、2K C、4K D、8K7在使用CREATE DATABASE命令创建数据库时,FILENAME选项定义的是(D )A、文件增长量 B、文件大小 C、逻辑文件名 D、物理文件名8关于表结构的定义,下面说法中错误的是 (C )A、表名在同一个数据库内应是唯一的 B、创建表使用CREATE TABLE命令C、删除表使用DELETE TABLE命令 D、修改表使用ALTER TABLE命令9下面哪一
3、个约束用来禁止输入重复值? (A )A、UNIQUE B、NULL C、DEFAULT D、FOREIGN KEY10下面关于登录账户、用户和角色的说法错误的是 ( C)A、登录账户是服务器级的 B、用户是登录账户在某个数据库中的映射C、用户不一定要和登录账户相关联 D、角色其实就是用户组11在SELECT语句中,用于去除重复行的关键字是 ( B)A、TOP B、DISTINCT C、PERCENT D、HAVING12若想查询出所有姓张的、且出生日期为空的学生信息,则WHERE条件应为 ( C)A、姓名 LIKE 张% AND 出生日期 = NULL B、姓名 LIKE 张* AND 出生日
4、期 = NULLC、姓名 LIKE 张% AND 出生日期 IS NULLD、姓名 LIKE 张_ AND 出生日期 IS NULL13下面关于视图的说法中,错误的是 (C )A、视图是个虚拟表 B、可以使用视图更新数据,但每次更新只能影响一个表C、不能为视图定义触发器 D、可以创建基于视图的视图14下面关于触发器的描述,错误的是 (A )A、触发器是一种特殊的存储过程,用户可以直接调用B、触发器表和DELETED表没有共同记录C、触发器可以用来定义比CHECK约束更复杂的规则D、删除触发器可以使用DROP TRIGGER命令,也可以使用企业管理器15下面关于事务的描述,错误的是 (D )A、
5、事务可用于保持数据的一致性 B、事务应该昼小且应尽快提交C、应避免人工输入操作出在在事务中 D、在事务中可以使用ALTER DATEABSE二填空题1SQL Server是作为Windows NT或2000的一个_服务_运行的,用户可以启动、暂停或停止它。2SQL Server服务包括有_ SQL Server服务_、_ SQL Server Agent服务_、Microsoft Search和MS DTC服务。3SQL Server有两类数据库,_系统数据库_和用户数据库。其中为新的用户数据库提供模板的系统数据库是_ model _。4所有的数据库都有一个_主数据文件_和一个或多个事务日志文
6、件,此外,还可能有_次要数据文件_。5向表中添加数据应使用_ INSERT(或填INSERT INTO)_命令,更新数据应使用_ UPDATE _命令。6在SQL Server2000中,约束有非空约束、缺省约束、_主键约束_、_外键约束_、检查约束和唯一约束等6种类型。7对象权限是指用户基于数据库对象层次上的访问和操作权限,共有5种:SELECT、INSERT、DELETE、_ UPDATE_和_ EXECUTE _。(或填更新、执行)8_ UNION _可以把两个或多个SELECT语句的查询结果组合成一个结果集,使用时要求所有SELECT语句的列数应_相同_,对应列的数据类型相容。9索引表
7、的顺序与数据行的物理顺序相同的索引称为_聚集(或聚簇 或簇)_索引。10使用游标的一般步骤应为:_创建游标 _、_打开游标_、从游标的结果集中读取数据、对游标中的数据逐行操作、关闭游标和释放游标。11_事务_是指一个操作序列,这些操作序列要么都被执行,要么都不被执行。12_差异备份_只记录自上次完整数据库备份后发生更改的数据。三判断题1外键是指一个表中含有与另外一个表的主键相同的列或列组,外键不要求惟一。( )2SQL Server2000支持Unicode字符集,相应数据类型为text、char和varchar。 ( )3企业管理器是SQL Server提供的最主要的数据库管理工具,它以树形
8、结构的形式来管理数据库服务器、数据库和数据库中的对象。 ( )4全局变量与局部变量一样,用户必须进行声明后才能使用。 ( )5在SQL Server2000中,由于不能跨页存储数据行,所以页中每一行最多包含的数据量是8060B。 ( )6数据完整性就是指数据的正确性、完备性和一致性。 ( )7若使用REVOKE命令撤消某用户创建表的权限,则该用户将肯定无权创建表。 ( )8WITH CHECK OPTION表示使用视图更新数据时应满足视图定义中设置的条件 ( )9表的每个触发动作只能有一个INSTEAD OF触发器。 ( )10在使用差异数据库备份还原数据库时,应先还原最新的完整数据库备份。
9、( )四查询设计某个学籍数据库有如下表结构:学生(学号,姓名,性别,出生日期,班级)课程(课程号,课程名称,课程类别,课时)选课(学号,课程号,成绩)请完成下列查询要求。1查询出“软件041”班的所有男生的学号和姓名。SELECT 学号, 姓名FROM学生WHERE班级 = 软件041 AND性别 = 男2查询出所有姓张的同学的姓名和班级。SELECT * FROM课程 WHERE课程名称 LIKE %语言%3查询出“C语言”课程成绩前5名的学生的学号、姓名和班级。SELECT TOP 5学生.学号, 姓名, 班级FROM学生 JOIN 选课 ON 学生.学号 = 选课.学号 JOIN 课程
10、ON课程.课程号 = 选课.课程号WHERE课程名称 = C语言ORDER BY 成绩 DESC4查询出各班级学生人数。SELECT 班级, COUNT(*) AS 人数FROM 学生GROUP BY班级5查询出“计算机应用基础”课程成绩高于张三同学此门课程成绩的学生的学号和姓名。SELECT学生.学号, 姓名FROM 学生JOIN 选课 ON 学生.学号 = 选课.学号 JOIN 课程 ON课程.课程号 = 选课.课程号WHERE课程名称 = 计算机应用基础 AND 成绩 (SELECT成绩FROM 学生JOIN 选课 ON 学生.学号 = 选课.学号 JOIN 课程 ON课程.课程号 =
11、选课.课程号WHERE课程名称 = 计算机应用基础 AND姓名 = 张三)五综合题根据下面某教学管理数据库的表结构,完成下面的程序填空题。教师(职工号,姓名,学历,职称)课程(课程号,课程名称,课程类别)任课(职工号,课程号,周课时)1补填下面的存储过程的定义,使其被调用时,能根据调用程序提供的教师姓名使用输出参数返回该教师任课的课程数。CREATE PROCEDURE 按教师姓名查询任课课程数姓名 VARCHAR(10),课程数 INT _ OUTPUT _ASSELECT _课程数 = COUNT(*)_FROM 教师 JOIN 任课 ON 教师.职工号 = 任课.职工号WHERE _姓名
12、 = 姓名_2完成下面的触发器的定义,当向任课表中插入记录时,触发器能判断若插入的记录使该教师的任课周课时总计超过20,则回滚插入操作。CREATE TRIGGER 添加教学任务ON 任课AFTER INSERTAS DECLARE 总课时 INT SELECT 总课时 = SUM(任课.周课时)FROM 任课 JOIN _ INSERTED ON任课.职工号 = INSERTED.职工号 _IF 总课时 20_ ROLLBACK TRANSACTION _参考答案一单项选择题1C 2A 3A 4C5C 6D 7D 8C9A 10C 11B 12C13C 14A 15D二填空题1服务2SQL
13、Server服务 SQL Server Agent服务(或填主服务、代理服务)3系统数据库 model4主数据文件 次要数据文件5INSERT(或填INSERT INTO) UPDATE6主键约束 外键约束7UPDATE EXECUTE(或填更新、执行)8UNION 相同9聚集(或聚簇 或簇)10创建游标 打开游标11事务12差异备份三判断题1 2 3 4 5 6 7 8 9 10四查询设计1查询出“软件041”班的所有男生的学号和姓名。SELECT 学号, 姓名FROM学生WHERE班级 = 软件041 AND性别 = 男2查询出所有姓张的同学的姓名和班级。SELECT * FROM课程 W
14、HERE课程名称 LIKE %语言%3查询出“C语言”课程成绩前5名的学生的学号、姓名和班级。SELECT TOP 5学生.学号, 姓名, 班级FROM学生 JOIN 选课 ON 学生.学号 = 选课.学号 JOIN 课程 ON课程.课程号 = 选课.课程号WHERE课程名称 = C语言ORDER BY 成绩 DESC4查询出各班级学生人数。SELECT 班级, COUNT(*) AS 人数FROM 学生GROUP BY班级5查询出“计算机应用基础”课程成绩高于张三同学此门课程成绩的学生的学号和姓名。SELECT学生.学号, 姓名FROM 学生JOIN 选课 ON 学生.学号 = 选课.学号 JOIN 课程 ON课程.课程号 = 选课