当前位置:首页 >> 其它课程 >> 复习题2

复习题2


SQL Server 2005 题库

一 选择题 1、在 SQL SERVER 所提供的服务中, ( A )是最核心的部分。 A、MSSQLServer B、SQL Server Agent C、MS DTC D、SQL XML 2、下列哪个标识符不是 SQL SERVER 2005 的常规标识符(A ) 。 A、3b B、#xuesheng C、##xue

sheng D、_2abc 3、下列哪个函数不属于聚合函数( D ) 。 A、count() B、avg() C、min() D、str() 4、下列各运算符中(A )不属于逻辑运算符。 A、& B、not C、and D、or 5、下列哪条语句能够从学生表中查询出姓名的第二个字是“敏”的学生的信息( B ) 。 A、select * from 学生表 where 姓名=’_敏%’ B、select * from 学生表 where 姓名 like ’_敏%’ C、select * from 学生表 where 姓名 like ’%敏%’ D、select * from 学生表 where 姓名 like ’%敏’ 6、聚合函数不可以用在下列哪个语句中( D ) 。 A、SELECT 子句 B、HAVING 子句 C、WHERE 子句 D、子查询 7、下列哪些选项在 T-SQL 语言中使用时不用括在单引号中( D ) 。 A、单个字符 B、字符串 C、通配符 D、数字 8、下列哪种方法不能用来启动 SQL SERVER 2005 数据库服务器( C ) 。 A、使用服务管理器启动数据库服务器 B、使用企业管理器启动数据库服务器 C、使用“管理工具”中的“服务”启动数据库服务器 D、使用查询分析器启动数据库服 务器 9、下列哪个命令必须在单个批命令中执行。 ( D ) A、CREATE DATABASE B、CREATE TABLE C、CREATE INDEX D、 CREATE VIEW 10、下列有关关键字的说法中,不正确的是( B ) 。 A、主关键字能惟一标识表中的每一行 B、每个表中一定存在外关键字 C、 侯选关键字中的任一个都可以充当主关键字 D、 关键字的值不能重复, 也不能为 NULL 11、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项: (__B_) A、只存在一对多的实体关系,以图形方式来表示。 B、以二维表格结构来保存数据,在关系表中不允许有重复行存在。 C、能体现一对多、多对多的关系,但不能体现一对一的关系。 D、关系模型数据库是数据库发展的最初阶段。 12、在“连接”组中有两种连接认证方式,其中在(_B__)方式下,需要客户端应用程序 连接时提供登录时需要的用户标识和密码。 A、Windows 身份验证 B、SQL Server 身份验证 C、以超级用户身份登录时 D、其他方式登录时 13、视图是一种常用的数据对象,可以简化数据库操作,当使用多个数据表来建立视图时, 不允许在该语句中包括(_B__)等关键字。 A、ORDER BY,COMPUTE

B、ORDER BY,COMPUTE,COMPUTR BY C、ORDER BY,COMPUTE BY,GROUP BY D、GROUP BY,COMPUTE BY 14、 在 WINDOWS98 操作系统下,只能安装 SQL Server(C ) A、企业版 B、标准版 C、个人版 D、测试版 15、 利用查询分析器,能(A ) 。 A、直接执行 SQL 语句 B、提交 SQL 语句给服务器执行 C、作为企业管理器使用 D、作为服务管理器使用 16、 事务日志文件的默认扩展名是( C) 。 A、MDF B、NDF C、LDF D、DBF 17、 通过使用文件组,可以( A ) 。 A、提高存取数据的效率。 B、提高数据库备份与恢复的效率 C、简化数据库的维护 D、ABC 都可以。 18、 SQL Server 的主数据库是( A) 。 A、MASTER B、TEMPDB C、MODEL D、MSDB 19、 数据库的容量, ( D) 。 A、只能指定固定的大小。 B、最小为 10M C、最大 100M。 D、可以设置为自动增长 20、 日期时间型数据类型(datetime)的长度是(C ) 。 A、2 B、4 C、8 D、16 21、表在数据库中是一个非常重要的数据对象,它是用来(C__)各种数据内容的。 A、显示 B、查询 C、存放 D、检索 22、为数据表创建索引的目的是(A__) ,可以在创建表时用( A_)来创建唯一索引。 ⑴ A、提高查询的检索性能 B、创建唯一索引 C、创建主键 D、归类 ⑵ A、设置主键约束,设置唯一约束 B、Create table,Create index C、设置主键约束,Create index D、以上都可以 23、 在 T-SQL 语法中,用来插入和更新数据的命令是(_A__) 。 A、INSERT,UPDATE B、UPDATE,INSERT C、DELETE,UPDATE D、CREATE,INSERT INTO 24、 主键约束用来强制数据的(B )完整性。 A、域 B、实体 C、参照 D、ABC 都可以 25、 在 SQL Server 服务器上,存储过程是一组预先定义并(B__)的 T-SQL 语句。 A、保存 B、编译 C、解释 D、编写 26、 替代触发器(instead of)是在触发触发器的修改操作( D )执行。 A、执行后 B、停止执行时 C、同时 D、之前 27、 聚合函数的返回值是(A ) 。 A、一个标量值 B、一组值 C、表达式 D、表 28、一个仓库可以存放多种产品,一种产品只能存放于一个仓库中。仓库与产品之间的联系 类型是 A、一对一的联系 B、多对一的联系 C、一对多的联系 D、多对多的联系 答案:(C ) 29、概念数据模型依赖于那个数据库管理系统(D) A、DB2 B、MS SQL Server

C、Oracle D、不依赖于任何数据库管理系统 30、以下论述中正确的是(A) A、多对多的联系总是可以转换成两个一对多的联系 B、ACCESS 是数据库管理系统 C、数据的三种范畴包括现实世界阶段、虚拟世界阶段、信息世界阶段 D、我们通常所说的数据仓库就是指数据仓库 31、以下那中情况不是连接陷阱产生原因(A) A、把多对多的联系转换为一对一的联系 B、把多对多的联系转换为一对多的联系 C、把原本的联系现在用实体表示 D、把原本的联系通过实体联系到一起 32、不属于传统数据模型的是(D) A、层次数据模型 B、网状数据模型 C、关系数据模型 D、面向对象数据模型 33、正确的论述是(A) A、自然连接和等值连接很相像,但实际上他们是不同的。自然连接要去掉重复的属性, 等值连接不需要去掉重复的属性。 B、一个关系是参照关系,那么就不会是被参照关系。 C、概念数据库与外部数据库都是物理存在的。 D、一个关系可以有一个或多个主关键字。 34、在 SQL Server 中,不是对象的是(B) A、用户 B、数据 C、表 D、数据类型 35、以下论述不正确的是(D) A、distribution 数据库是系统数据库 B、企业管理器与查询分析器都是客户端工具 C、SQL Server 2005 可以安装到 windows、windows XP、windows NT 系统上。 D、SQL Server 支持的 SQL 命令集称为 T_SQL,它是完全符合 ANSII SQL92 标准的。 36、以下正确的论述是(C) A、在建立数据库的时候,SQL Server 是可以创建操作系统文件及其目录路径。 B、数据库中有一些 sys 开头的系统表,用来纪录 SQL Server 组件、对象所需要的数据, 这些系统表全部存放在系统数据库中。 C、SYS 开头的系统表中的数据用户不能直接修改,但可以通过系统存储过程、系统函数 进行改动、添加。 D、12AM 是中午,12PM 是午夜。 37、声明了变量:declare @i int,@c char(4) ,现在为@i 赋值 10,为@c 赋值'abcd', 正确的语句是(C) A、set @i=10,@c='abcd' B、set i=10 , set @c='abcd' C、select @i=10,@c='abcd' D、select @i=10, select @c='abcd' 38、有如下代码,当代码中_[关键字]_分别为 break continue return 时,最后的 print @n 输 出的值为(A) declare @n int set @n=3 while @n>0 begin

set @n=@n-1 if @n=1 _[关键字]_ end print @n A、1,0,不输出 B、1,1,1 C、0,0,0 D、0,1,2 39、不正确的论述是(C) A、 SQL Server 有 Windows 集成认证方式,但如果没有把 windows 用户添加为 SQL Server 的 登陆账户,那么该 Windows 用户不能访问 Sql Server 服务器。 B、SQL Server 2005 的客户端没有操作系统的限制。 C、Windows 是个具有并行处理能力(支持多 CPU)的操作系统,安装在之上的 SQL Server 需要在实例的属性中设定使用当前的 CPU,否则只能使用默认的 CPU。 D、在 Windows /NT 中,SQL Server 是以服务的方式被执行的。 40、关于 SQL Server 安装命名实例时,不正确的描述是(B) A、最多只能用 16 个字符 B、实例的名称是区分大小写 C、第一个字符只能使用文字、@、_和#符号。 D、实例的名称不能使用 Default 或 MSSQLServer 这两个名字。 41、不是 SQL Server 服务器组件的是(D) A、升级工具(update Tools) B、复制支持(Replication Support) C、全文搜索(Full-Text Search) D、Profiler 42、是长期存储在计算机内的有组织,可共享的数据集合. (C) A、数据库管理系统 B、数据库系统 C、数据库 D、文件组织 43.数据库系统不仅包括数据库本身,还要包括相应的硬件,软件和(D). A、数据库管理系统 B、数据库应用系统 C、相关的计算机系统 D、各类相关人员 44.在文件系统阶段,数据(B) A、无独立性 B、独立性差 C、具有物理独立性 D、具有逻辑独立性 45.数据库系统阶段,数据(D) A、具有物理独立性,没有逻辑独立性 B、具有物理独立性和逻辑独立性 C、独立性差 D、具有高度的物理独立性和一定程度的逻辑独立性 46.属于信息世界的模型,是现实世界到机器世界的一个中间层次. (B) A、数据模型 B、概念模型 C、E-R 图 C、关系模型 47.数据库系统软件包括 DBMS 和(D) A、数据库 B、高级语言 C、OS D、数据库应用系统和开发工具 48.在 SQL 语言中授权的操作是通过(C)语句实现的。 A、CREATE B、REVOKE C、GRANT D、INSERT 49.数据库中只存放视图的(C)

A、操作 B、对应的数据 C、定义 D、限制 50.概念结构设计阶段得到的结果是(B) A、数据字典描述的数据需求 B、E-R 图表示的概念模型 C、某个 DBMS 所支持的数据模型 D、包括存储结构和存取方法的物理结构 51.一个 m:n 联系转换为一个关系模式。关系的码为(B) A、某个实体的码 B、各实体码的组合 C、n 端实体的码 D、任意一个实体的码 52、现有关系:学生(学号,姓名,课程号,系号,系名,成绩) ,为消除数据冗余, 至少需要分解为(C ) A 1 个表 B 2 个表 C 3 个表 D 4 个表 53、已知职工和职工亲属两个关系,当职工调出时,应该从职工关系中删除该职工的元组, 同时在 职工亲属关系中删除对应的亲属元组,在 SQL 语言中,定义这个完整性约束的短语是(D ) A ON DELETE ALL B ON DELETE RESTRICT C ON DELETE SET NULL D ON DELETE CASCADE 54、DBMS 中的检查点机制用于(B ) A 检查事务的故障 B 减少故障恢复的时间 C 检查数据库一致性状态 D 检查数据库的完整性 55.有两个关系 R 和 S,分别包含 15 个和 10 个元组,则在 R∪S,R-S,R∩S 中不可能出现 的元组 数目情况是(B ) A 15,5,10 B 18,7,7 C 21,11,4 D 25,15,0 56.授予用户 Jean 可以查询帐户表的权限,使用的 SQL 语句是( A ) A GRANT SELECT ON 帐户 TO Jean B GRANT SELECT TO Jean ON 帐户 C GRANT SELECT TO 帐户 ON Jean D GRANT SELECT ON Jean TO 帐户 57.已知实体 A 中有 15 个实例(一个实例相当于一行) ,实体 B 中有 50 个实例。若实体 A 中的一个 实例,最多与实体 B 中的 10 个实例相关,最少与实体 B 中 2 个实例相关,则实体 A 的基 数是(B) A (1,15) B (2,10) C (2,50) C (15,50) 58.如下不能正确执行的语句是(D) A、select * from table_name where 1>2 B、truncate table table_name C、delete from table_name where null=null D、alter table table_name add column idd int 59.你是公司的 SQL Server 2005 联机事务处理数据库的数据库开发人员。许多表有一百万 或更多的行,所有的表都建立了一个簇索引,经常存取的表另外还至少有一个非簇索引,两 个数据库服务器上的 RAID 阵列存储数据文件,你想设置表和索引以取得最佳的 I/O 性能。 你在每个 RAID 阵列上建立了一个文件群,下一步你将作什么?

A、设置频繁的互相连接的表加入同一个文件群,设置经常存取的表和所有的属于这些表的 索引到另一个文件群。 B、设置频繁的互相连接的表加入同一个文件群,设置经常存取的表和所有的属于这些表的 非簇索引到不同的文件群。 C、设置频繁的互相连接的表加入不同的文件群,设置经常存取的表和所有的属于这些表的 非簇索引到不同的文件群。 D、设置频繁的互相连接的表加入不同的文件群,设置经常存取的表和所有的属于这些表的 非簇索引到同一个文件群。 答案: C、 60. 你是一个数据公司的数据库开发人员,你建立了一个存储了 15 个不同的高中运动成绩 的统计数据库,这些信息将被 50 个在 Web 站点上发布运动信息的公司使用,每个公司的站 点安排和使用这些统计数据的格式是不同的。 你要将数据打包传送给公司,你将怎么做? A、使用包含 FOR XML 选项的 SELECT 语句提取数据。 B、对 SELECT 语句返回的数据使用 sp_makewebtask 系统存储过程来生成 HTML 数据。 C、对数据库输出的数据建立数据转换服务包,形成使用 TAB 界定符的文本文件。 D、建立一个使用 SEL_DMO 的应用程序来提取数据库中的数据,并将这些数据转换到标准 EDI(electronic data interchange)文件。 答案: A、 61 .你是一个邮购公司的数据库开发人员,公司有两台使用 SQL Server 的计算机,分别为 CORP1 和 CORP2。 CORP1 是一台联机事务处理服务器, CORP2 存储销售历史数据。 CORP2 作为一台连接服务器到 CORP1 上。销售部经理要求你建立一个购买软盘的客户的列表,这 个列表将每个月产生一次邮购的奖品,软盘在数据库中的类别 ID 为 21。 你必须从一个名为 SalesHistory 的表中刷新这个信息,这个文件存储在 CORP2 的一个数据 库上,你要从 CORP1 上执行这个查询,你将使用哪条脚本语句查询? A、 EXEC sp_addlinkedserver ‘CORP2’, ‘SQL Server’ GO SELECT CustomerID FROM CORP2.Archive.dbo.SalesHistory WHERE CategoryID = 21 B、 SELECT CustomerID FROM OPENROWSET (?SQLOLEDB?, ?CORP2?; ?p*word?, ?SELECT CustomerID FROM Archive.dbo.SalesHistory WHERE CategoryID = 21?) C、 SELECT CustomerID FROM CORP2.Archive.dbo.SalesHistory WHERE CategoryID = 21 D、 EXEC sp_addserver ?CORP2? GO SELECT CustomerID FROM CORP2.Archive.dbo.SalesHistory WHERE CategoryID = 21 答案: C、

62 .你是一个保险公司的数据库开发人员,这家保险公司有一个用于保单或保单所有者的多 层的应用。保单所有者信息存储在一个名为 Owners 的表中,下面的语句用于建立这个表, 当保单所有者的信息输入时,若不包括所有者的出生年月,数据库要产生一个错误信息。你 要设计一个方法来校验出生日期数据是否填写,没有的情况下要显示错误信息。 你将怎么做? A、在 BirthDate 字段上加上 CHECK 约束。 B、建立一个规则,并将这个规则绑定在 BirthDate 字段上。 C、改变 Owners 表使 BirthDate 字段不能为空。 D、在 Owners 表上建立一个触发器校验 BirthDate 字段。 答案 D 63 .你是公司的 SQL Server 数据库开发人员,你修改了数据库中的几个存储程序来建立销售 部的月底报表, 程序中包含了从三个或更多的表中提取的数据的复杂查询, 所有这些表都至 少有一个索引。 用户报告说这些月底报表比以前的版本的明显要慢, 你要改进这些报表的性 能,将怎么做? A、对每个存储程序建立一个使用 DDL 的脚本,使用这个脚本统计工作量作为索引调整的 Wizard。 B、在 SQL Profiler 中捕捉每个存储程序的执行信息,使用这个信息文件统计工作量作为索 引调整的 Wizard。 C、修改用于存储程序的表的索引统计信息。 D、在 SQL 查询分析器中执行每个存储程序,使用 Show Execution Plan 选项。 e.在 SQL 查询分析器中执行每个存储程序,使用 Show Server Trace 选项。 答案: E. 64 .你设计了用于购买音乐会票的站点的数据库, 在买票的过程中, 用户先查看余票的列表, 决定是否购买;余票的列表对应于一个指针。对于流行音乐会,可能数以千计的观众可能在 同时购票, 由于这个原因, 你必须允许尽量多的对数据的同时存取。 你将怎样设计这个指针? A、建立基于外在事务的指针,并设置事务孤立处理级别为 REPEATABLE READ、 B、 建立使用乐观的并发性和立即修改的指针, 在指针中, 设置外在事务的属性为立即修改。 C、建立使用乐观的并发性的指针,在指针中,使用 UPDATE 语句并置为在 WHERE 语句 处直接修改关键字,并将 UPDATE 语句置于内在事物的处理中。 D、建立使用位置修改的指针,包括 SCROLL_LOCKS 参数定义强制的悲观的并发性。在指 针中,设置内在事物的 UPDATE 属性。 答案: B、 65.你是一个集装箱制造公司的数据库开发人员,公司制造的集装箱有不同的尺寸和形状, 存储的集装箱信息的表有 Size、Container、Shape。 一般来说,集装箱的尺寸周期性的改变,数据库的用户需要知道集装箱的容量,容量是基于 Shape、size 表中的数据计算得到的。你要隐藏计算的细节,使用一个 SELECT 查询可以方 便的得到,你将怎么做? A、建立一个用户定义的函数,使用 ContainerID 作为参数,返回集装箱的容量。 B、建立一个程序,使用 ContainerID 作为参数,返回集装箱的容量。 C、在 Container 表中加入名为 volume 的一列,当一个新集装箱加入表中时,建立一个触发 器计算和存储这列的值。 D、在 Container 表中加入一个计算过的列计算集装箱的容量。

答案: A、 66 .你是一个大型旅游公司的数据库管理员,公司的每个部门的信息存储在名为 Department 的表中, 公司的旅游代理和部门经理的信息存储在名为 Employees 的表中, 其中的 SQLLogin 字段包括了旅游代理或部门经理的登录数据库的口令,如图所示。 每个部门经理都被加入管理数据库成员。你需要允许这个数据库的成员察看 department 表, 成 员只 有对自 己部 门的记 录有 增加或 修改的 权力 。你 赋予管 理数据 库的 成员 以查询 Department 表的权限,下一步做什么? A、在 Department 表上建立一个触发器,检查登录数据库、执行插入修改操作的用户是否是 那个部门的成员。 B、建立一个包含 Department 表所有字段和 Employees 表中的 SQLLogin 字段的视图。 C、在视图定义中包括 WITH CHECK OPTION 选项。 D、在 Department 表中赋予 INSERT 和 UPDATE 的权限。 e.在 Employees 表中的 SQLLogin 字段上赋予 INSERT 和 UPDATE 的权限。 答案: B、 67 .你是一个出版公司的数据库开发人员,对特定的书名的每天的销售情况建立了如下的存 储过程: CREATE PROCEDURE get_sales_for_title %title varchar(80), @ytd_sales int OUTPUT AS SELECT @ytd_sales = ytd_sales FROM titles WHERE title = @title IF @@ROWCOUNT = 0 RETURN(-1) ELSE RETURN(0) 另外建立了一个脚本执行这个存储过程, 如果执行成功, 将返回对应于书名的每天的销售情 况的报表,如果执行失败,将返回“No Sales Found” ,怎样建立这个脚本? A、 DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title ?Net Etiquette?, @ytd IF @retval < 0 PRINT ?No sales found? ELSE PRINT ?Year to date sales: ? + STR (@ytd) GO B、 DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title ?Net Etiquette?, @ytd OUTPUT IF @retval < 0 PRINT ?No sales found? ELSE PRINT ?Year to date sales: ? + STR (@ytd) GO

C、 DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title ?Net Etiquette?,@retval OUTPUT IF @retval < 0 PRINT ?No sales found? ELSE PRINT ?Year to date sales: ? + STR (@ytd) GO D、 DECLARE @retval int DECLARE @ytd int EXEC @retval = get_sales_for_title ?Net Etiquette?, @ytd OUTPUT IF @retval < 0 PRINT ?No sales found? ELSE PRINT ?Year to date sales: ? + STR (@ytd) GO 答案: D、 68 .你是一个保险公司的数据库开发人员,公司的保单信息存储在 SQL Server 2005 数据库 中,你使用以下脚本建立了一个名为 Policy 的表: CREATE TABLE Policy ( PolicyNumber int NOT NULL DEFAULT (0), InsuredLastName char (30) NOT NULL, InsuredFirstName char (20) NOT NULL, InsuredBirthDate datetime NOT NULL, PolicyDate datetime NOT NULL, FaceAmount money NOT NULL, CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber) ) 每次公司销售出一份保单,Policy 表中就增加一条记录,并赋予其一个新的保单号,你将怎 么做? A、建立一个 INSTEAD OF INSERT 触发器来产生一个新的保单号,并将这个保单号插入数 据表中。 B、建立一个 INSTEAD OF UPDATE 触发器来产生一个新的保单号,并将这个保单号插入 数据表中。 C、建立一个 AFTER UPDATE 触发器来产生一个新的保单号,并将这个保单号插入数据表 中。 D、用 AFTER UPDATE 触发器替代 DEFAULT 约束条件产生一个新的保单号,并将这个保 单号插入数据表中。 答案: A、 69 .你是一个公司的关于工作时间报告的数据库开发人员,一般平均有 5 个用户同时存取这 个数据库,并且查询时间要小于 1 秒。然而,在周五下午或周一早上,大部分雇员输入他们 的考勤数据时,数据库可能会有同时 50 个用户使用,这时,查询返回时间平均是 15 到 20 秒。

你需要发现查询变慢的原因并解决这个问题,你将怎么做? A、使用 sp_lock 和 sp_who 系统存储过程发现锁定的资源,并确定占用锁的进程,使用这 个信息确定和重新设计导致资源锁定的事务处理。 B、查询 sysprocesses 和 sysobjects 系统表,发现死锁的资源,并确定占有这些资源的进程, 对死锁的资源设定一个更短的进程占有时间限制。 C、查询 sysprocesses 系统表,发现那些资源被存取,在所有这些被存取的表的主关键字加 上一个簇索引。 D、使用 sp_monitor 系统存储过程发现哪个进程导致查询反映时间增加,对这些进程设置更 小的限制事务隔离级别。 答案: A、 70 .你是一个 Trey 研究所的数据库开发人员, 你设计了一个供众多公司使用的分布式的 SQL Server 2005 数据库。在数据库中包括保密信息的存储过程,要防止别的公司看到这些保密 的信息,你将怎么做? A、从 syscomments 系统表中删除存储过程的文本。 B、对存储过程的文本加密。 C、拒绝 syscomments 系统表中对 public 用户的 SELECT 权限。 D、拒绝 sysobjects 系统表中对 public 用户的 SELECT 权限。 答案: B、 71 .你是 Woodgrove 银行的数据库开发人员。公司的销售数据储存在一个 SQL 服务器中。 你想在这个数据库中创建索引视图。为了达到这个目的,你执行了以下脚本。 索引创建失败,你收到错误信息。你想忽略这个错误信息并创建索引。你应该怎么做? A、在视图中添加 ORDER BY 从句。 B、 在视图中添加 HAVING 从句。 C、 将 NUMERIC_ROUNDABORT 选项设置为 ON。 D、 将索引转变成一个唯一的,非簇索引。 e. 在视图中添加 WITH SCHEMABINDING 选项。 答案: E. 72 .你是公司里 SQL Server 2005 数据库的开发人员。 你正在删除数据库中再也不会使用的对 象。但是你无法删除 1997Sales 视图。检查后你发现这个视图有以下特征: 视图中有簇索引 销售数据库角色对该使徒有权限。 该视图启用了 WITH SCHEMABINDING 选项。 一个 schema-bound 在线函数引用了该视图。 在该视图中定义了 INSTEAD OF 触发器。 那么要删除这个视图,你该怎么办? A、 删除该视图中的簇索引。 B、 删除视图中的所有权限。 C、 删除视图中的 WITH SCHEMABINDING 选项。 D、 删除引用该视图的函数的 WITH SCHEMABINDING 选项。 e. 不启用视图中的 INSTEAD OF 触发器。 答案: D、 73 .你是 Woodgrove 银行的数据库开发人员,管理一个名叫 Accounts 的数据库。另一个开 发人员正在为银行创建多层应用程序。 银行的职员将使用这个程序来管理客户帐户信息。 这 位开发人员需要从 Accounts 数据库中获得客户名并将这些名字放入程序中的下拉菜单中。

程序的用户将使用这个列表框找到客户帐户。 该数据库包含超过 50, 000 个客户帐户, 因此, 这个开发人员只想得到其中的 25 行作为列表框的用户名册。当前客户列表必须在任何时候 都可以得到。你要给这位开发人员推荐实现该下拉列表框的方法。你应该给出什么建议? A、 建立一个储存进程来取得要加载到列表框中的所有数据。 B、 使用服务器边 API 指针取得要加载到列表框中的数据。 C、 使用 SELECT 命令立即获得所有数据,然后将数据加载到列表框中。 D、 使用 Transact-SQL 服务器边指针取得要加载到列表框中的数据。 答案: B、 ________________________________________ 74. 你是一家公司的数据库开发员,你正在创建一个数据库用来存储 15 所中学运动会的统计 信息, 这些信息将被 50 个公司用来在他们网站上发布运动会信息.每个公司的 Web 站点 用不同的格式排列和显示统计表.你需要把数据打包传送给这些公司, 你该怎么做 (A) A、 用包括 FOR XML 子句的 SELECT 语句来提取数据 B、使用 sp_makewebtask 系统存储过程来产生由 SELECT 语句返回的数据的 HTML 文本 C、创建数据传输服务数据包来导出数据库的数据, 并把这些数据放到 tab 分隔的文本文 件中 D、 创建一个应用程序, 此应用程序用 SQL_DMO 提取数据库的数据并把这些数据转换为 标准电子数据交换(EDI)文件 75. 你是一家公司的数据库开发人员,你创建了两个事务来把员工的信息录入到公司的数据 库中.一个事务是用来把员工的名字和地址信息插入到数据库中, 这个事务是重要的. 另外一个事务把员工的统计信息插入到数据库, 这个事务不是最重要.数据库管理员通 知你数据库服务器在高使用率期间有时候会出错.每次这种情况发生时, 数据库服务器 就会随机中断其中一个事务.你必须确保当数据库服务器中断其中一个事务时, 它将不 会中断更重要的那个事务.你该怎么做 (B) A、 为插入员工名字和地址信息的事务设置 DEADLOCK_PRIORITY 为 LOW B、 为插入员工人口统计信息的事务设置 DEADLOCK_PRIORITY 为 LOW C、 添加条件代码来核对插入员工名字和地址信息事务的 1205 服务器错误, 如果遇到 这个错误, 重启这个事务 D、 在事务中的数据操纵 SQL 语句中添加 ROWLOCK 最优化提示 76. 你是公司 SQL Server 2005 数据库的开发者.你更新了数据库里几个存储过程来创建新 的月终销售部门的报表.此存储过程包括综合查询从三个或者更多的数据表中检索数 据.所有数据库中的表至少有一个索引.用户反映新的月终报表比前一个版本的报表运 行速度慢很多.你想改善报表的性能.你该怎么做 (C) A、创建一个脚本, 包括每个存储过程中的数据定义语言(Data Definition Language), 使用这个脚本作为索引调整向导(Index Tuning Wizard) 的工作量文件 B、 在 SQL 部署跟踪器中捕获每个存储过程的执行, 使用跟踪文件作为索引调整向导 (Index Tuning Wizard) 的工作量文件 C、 更新存储过程使用的数据表统计索引 D、 在 SQL 查询分析器中执行每个存储过程, 并使用 Show Execution Plan 选项 E. 在 SQL 查询分析器中执行每个存储过程, 并使用 Show Server Trace 选项 77. 你是一家进口商的数据库管理员, 你正在创建一个存储订单信息的数据库.订单将会在 一个 client/server 应用系统中录入, 每次一个新的订单录入时, 必须分配一个唯一的 订单编号, 订单编号必须以升序分配.每天平均有 10000 个订单被录入.你创建了一个 新的名为 Orders 的表,并在这个表里添加了一个 OrderNumber 列.接下来你该做什么 (B)

A、设置这个列的数据类型为 uniqueidentifier B、 设置这个列的数据类型为 int,并为这个列设置 IDENTITY 属性 C、 设置这个列的数据类型为 int,创建一个用户定义的方法来选择表中最大的订单编号 D、 设置这个列的数据类型为 int, 创建一个 NextKey 表, 并被这个表添加一个 NextOrder 列, 设置 NextOrder 列的数据类型为 int, 创建一个存储过程来检索并更新 NextKey 中的值 78. 你正在设计一个包含客户订单的数据库, 每次当客户给出一个订单时, 都能够定购多种 产品.你检查了如下所示的数据库设计: 你想提高查询响应速度和最小化冗余数据, 你该怎么做 ( 选择两个可行的解决方 法)(C) A、 创建一个名为 OrderDetail 的新的订单表, 给这个表添加 OrderID, ProductID 和 Quantity 列 B、给表 Orders 中的 OrderID 和 ProductID 列创建一个复合主键约束 C、 从 Orders 表中移除 ProductID 和 Quantity 列 D、 给 Orders 表的 OrderID 列创建一个 UNIQUE 约束 E. 把 UnitPrice 列从 Products 表移到 Orders 表 79.你是某出版公司的数据库开发人员,你创建了下面存储过程来汇报某本书从年初至今的 销售情况: CREATE PROCEDURE get_sales_for_title %title varchar(80), @ytd_sales int OUTPUT AS SELECT @ytd_sales = ytd_sales FROM titles WHERE title = @title IF @@ROWCOUNT = 0 RETURN(-1) ELSE RETURN(0) 你正在创建一个脚本来执行这个存储过程, 如果存储过程执行成功, 它就会汇报某本书 从年初至今的销售情况,如果存储过程执行失败,就会报告以下信息: "No Sales Found", 你该如何创建这个脚本 (D) A、 DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title 'Net Etiquette', @ytd IF @retval < 0 PRINT 'No sales found' ELSE PRINT 'Year to date sales: ' + STR (@ytd) GO B、 DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title 'Net Etiquette', @ytd OUTPUT IF @retval < 0

PRINT 'No sales found' ELSE PRINT 'Year to date sales: ' + STR (@ytd) GO C、 DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title 'Net Etiquette',@retval OUTPUT IF @retval < 0 PRINT 'No sales found' ELSE PRINT 'Year to date sales: ' + STR (@ytd) GO D、 DECLARE @retval int DECLARE @ytd int EXEC @retval = get_sales_for_title 'Net Etiquette', @ytd OUTPUT IF @retval =c2.Country GROUP BY c1.Country ORDER BY 1 C、 DECLARE @Country char (20) DECLARE cursor_country CURSOR FOR SELECT Country FROM Customers OPEN cursor_country FETCH NEXT FROM cursor_country INTO @Country WHILE (@@FETCH_STATUS -1) BEGIN If NOT EXISTS (SELECT CountryID FROM Country WHERE CountryName = @Country) INSERT INTO Country (CountryName) VALUES (@Country) FETCH NEXT FROM cursor_country INTO @Country END CLOSE cursor_country DEALLOCATE cursor_country D、 DECLARE @SQL varchar (225) SELECT @SQL = 'bcp "SELECT ColID = COUNT(*), c1. Country' + 'FROM (SELECT DISTINCT Country FROM Sales..Customers) ASc1, ' + (SELECT DISTINCT Country FROM Sales..Customers) AS c2 '+ WHERE c1.Country >= c2.Country' + 'GROUP BY c1.Country ORDER BY 1' + 'query out c:\country.txt -c' EXEC master..xp_cmdshell @SQL, no_output EXEC master..xp_cmdshell 'bcp Sales..Country in c:\country. Txt-c', no_output 80.你正在为一个基于 web 的订票应用系统设计数据库.对任何一个事件都应当有 500 张或更 多的票.应用系统的大部分用户在他们购买票之前会浏览少于 50 张的可订的票.然而, 一个用

户必须能够浏览可订票的整个列表.当用户浏览订票列表的时候, 列表需要更新来反映已经 卖给其他用户的票.你需要为用户设计一个方法来浏览和购买可订的票.你该怎么做 (B) A、 使用一个卷动式静态游标来检索列表中的票, 使用游标定位更新来购买票 B、 使用一个卷动式动态游标来检索列表中的票, 使用游标定位更新来购买票 C、 使用一个存储过程来检索列表中的票, 使用另外一个存储过程来购买票 D、 使用用户定义的方法来检索列表中的票, 使用另外一个存储过程来购买票 81.你是一名数据库咨询顾问, 目前你被一家本地狗饲养场雇用来开发数据库.这个数据库将 被使用来存储关于饲养者的狗的信息.你使用下面的脚本创建了一个名为 Dogs 的表: CREATE TABLE[dbo].[Dogs] ( [DogID] [int] NOT NULL, [BreedID] [int] NOT NULL, [DateofBirth] [datetime] NOT NULL, [WeightAtBirth] [decimal] (5, 2) NOT NULL, [NumberOfSiblings] [int] NULL, [MotherID] [int] NOT NULL, [FatherID] [int] NOT NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[Dogs] WITH NOCHECK ADD CONSTRAINT [PK_Dogs]PRIMARY KEY CLUSTERED ( [DogID] ) ON [PRIMARY] GO 你必须确保每条狗的 MotherID 和 FatherID 列都有有效的值.你想在保证最小化磁盘 I/O 的条 件下执行这个规则.你该做什么 (C) A、 在 Dogs 表上创建一个 AFTER INSERT 触发器, 使其回滚 MotherID 或 FatherID 列事务 无效 B、 在 MotherID 和 FatherID 列上创建一个表级 CHECK 约束 C、 创建两个 FOREIGN KEY 约束: 一个在 MotherID 列, 一个在 FatherID 列; 指定每个约 束引用 DogID 列 D、 创建一个规则并把它和 MotherID 列绑定, 把同样规则和 FatherID 列绑定 82.你是某电力公司的数据库开发人员 , 当客户在声明的预定日期内没有支付帐单金额 , 此 金额就要每天增加 1% 直到支付了为止, 存储过程如下所示: 每次存储过程执行没有错误, 它就会报告 0 个帐单超期.然而, 你发现金额正在被这个存储过 程更新, 你该如何纠正这个问题 (D) A、 用下面的语句代替存储工程中的第 12-17 行: Return @@ROWCOUNT B、用下面的语句代替存储工程中的第 5-6 行: DECLARE @count int 用下面的语句代替存储工程中的第 12-17 行: SET @Count = @@ROWCOUNT

If @@ERROR = 0 Return @Count Else Return –1 C、 用下面的语句代替存储工程中的第 5 行: DECLARE @Err int, @Count int 用下面的语句代替存储工程中的第 12-17 行: SELECT @Err = @@ERROR, @Count = @@ROWCOUNT IF @Err = 0 Return @Count Else Return @Err D、 用下面的语句代替存储工程中的第 5 行: DECLARE @Err int, @Count int 用下面的语句代替存储工程中的第 9 行: SET Balance = Balance * 1.01, @Count = Count (*) 用下面的语句代替第 15 行: Return @Count 83. 你是某在线电子公司数据库开发人员 , 公司产品目录包含在一个名为 Products 的表 中.Products 表在正常工作时间经常被访问.对 Products 表的修改被写入 PendingProductUpdate 表中, 这些表如下所示: PendingProductUpdate 表下班后将用来更新 Products 表.数据库服务器运行 SQL Server 2005 并设置为 8.0 兼容模式.你需要创建一个脚本来更新 Products 表, 你该采用哪个脚本 (C) A、 UPDATE Products SET p1.[Description] = p2.[Description], p1.UnitPrice = p2.UnitPrice FROM Products p1, PendingProductUpdate p2 WHERE p1.ProductID= p2.ProductID GO TRUNCATE TABLE PendingProductUpdate GO B、 UPDATE Products p1 SET [Description] = p2.[Description], UnitPrice = p2.UnitPrice FROM Products, PendingProductUpdate p2 WHERE p1.ProductID= p2.ProductID GO TRUNCATE TABLE PendingProductUpdate GO C、 UPDATE Products p1 SET p1.[Description] = p2.[Description], p1.UnitPrice = p2.UnitPrice FROM (SELECT [Description], UnitPrice FROM PendingProductUpdate p2 WHERE p1.ProductID= p2.ProductID) GO TRUNCATE TABLE PendingProductUpdate

GO D、 UPDATE p1 SET p1.[Description] = p2.[Description], p1.UnitPrice = p2.UnitPrice FROM Products p1, PendingProductUpdate p2 WHERE p1.ProductID= p2.ProductID GO TRUNCATE TABLE PendingProductUpdate 84.你是某销售组织的数据库开发人员, 你的数据库有一个名为 Sales 表, 此表包括了来自销 售人员的销售订单概要信息.销售经理要求你创建一个销售额排在前 20 位的销售人员报表, 你该使用哪个查询来完成这个任务(D) A、 SELECT TOP 20 PERCENT LastName, FirstName, SUM (OrderAmount) AS ytd FROM sales GROUP BY LastName, FirstName ORDER BY 3 DESC B、 SELECT LastName, FirstName, COUNT(*) AS sales FROM sales GROUP BY LastName, FirstName HAVING COUNT (*) > 20 ORDER BY 3 DESC C、 SELECT TOP 20 LastName, FirstName, MAX(OrderAmount) AS ytd FROM sales GROUP BY LastName, FirstName ORDER BY 3 DESC D、 SELECT TOP 20 LastName, FirstName, SUM (OrderAmount) AS ytd FROM sales GROUP BY LastName, FirstName ORDER BY 3 DESC 85. 创建一个用户定义函数 Fn1 ,把一个字段的值设为空值。 CREATE Function Fn1 (@字段名 char(10)) Returns char As begin set @字段名 = NULL Return C End A NULL B Char C @字段名 D 不填 86.调用一个名为 Fn1 的内嵌表值函数函数,正确的方法是 C 。 A Select * from 表名 B Select Fn1 from 表名 C Select * from Fn1 D Select Fn1 from * 87. 触发器可以创建在 A 中。 A 表 B 视图 C 数据库 D 查询 88. Create Procedure 是用来创建 B 。 A 程序 B 过程 C 触发器 D 函数 89. 以下触发器是当对[表1]进行 D 操作时触发。

Create Trigger abc on 表1 For insert , update , delete As …… A 只是修改 B 只是插入 C 只是删除 D 修改、插入、删除 90. 要删除一个名为 A1 的过程,用命令: C Procedure A1 。 A Delete B Alter C Drop D Execute 91. 触发器可引用视图或临时表,并产生两个特殊的表 和 A 。 A Deleted ,Inserted B Delete,Insert C View,Table D View1,table1 92. 执行带参数的过程,正确的方法为 B 。 A 过程名(参数) B 过程名 参数 C 过程名=参数 D A,B,C 三种都可以 93.当一个过程执行的结果,要返回给一个整型变量时,正确的方法为 D 。 A 过程名(@整型变量) B 过程名 @整型变量 C 过程名=@整型变量 D @整型变量=过程名 94. 当上出 D 时,与它关联的触发器也同时被删除。 A 视图 B 临时表 C 过程 D 表 95.数据库设计中的概念结构设计的主要工具是(B ) 。 A、数据模型 B、E—R 模型 C、新奥尔良模型 D、概念模型 96.数据库设计中的逻辑结构设计的任务是把 ( D ) 阶段产生的概念数据库模式变换为逻 辑结构的数据库模式。 A、需求分析 B、物理设计 C、逻辑结构设计 D、概念结构设计 97.一个规范化的关系至少应当满足( C )的要求。 A、一范式 B、二范式 C、三范式 D、四范式 98.( A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户 或应用程序提供访问数据库的方法。 数据库在建立、 使用和维护时由其统一管理、 统一控制。 A、DBMS B、DB C、DBS D、DBA 99.( C )数据库是被长期存放在计算机内的、有组织的、统一管理的相关数据的集合。 A、DATA B、INFORMATION C、DB D、DBS 100. 数据库应用系统是由数据库、数据库管理系统(及其开发工具) 、应用系统、 ( D )和 用户构成。 A、DBMS B、DB C、DBS D、DBA 三 简答题 1. 人工管理阶段数据管理的特点: (1) 数据不保存在机器中(2) 无专用的软件对数据进行管理(3) 只有程序的概念,没 有文件的概念(4) 数据面向程序 2. 文件系统阶段数据管理的特点: (1) 数据可长期保存在外存的磁盘上(2) 数据的逻辑结构和物理结构有了区别(3) 文 件组织已呈多样化。有索引、链接和散列文件(4) 数据不再属于某个特定的程序,可重复 使用。 3. 文件系统显露出三个缺陷: (1) 数据冗余性(2) 数据不一致性(3) 数据联系弱 4. 数据库阶段的管理方式具有以下特点: (1) 采用复杂的数据模型表示数据结构(2) 有 较高的数据独立性(3) 数据库系统为用户提供方便的用户接口(4) 系统提供四方面的数 据控制功能(5) 对数据的操作既可以以记录为单位,又可以以数据项为单位 5. 数据描述三个领域之间的关系:

从事物的特性到计算机中的数据表示,经历了三个领域:现实世界、信息世界、机器世界。 (1) 现实世界:存在于人们头脑之外的客观世界,称为现实世界。 (2) 信息世界:是现实世界在人们头脑中的反映。 (3) 机器世界:信息世界的信息在机器世界中以数据形式存储。 信息世界中数据描述的术语有:实体、实体集、属性、实体标识符 机器世界中数据描述的术语有:字段、记录、文件、关键码 它们的对应关系是:在数据库中每个概念都有类型和值之区分,类型是概念的内涵,值是概 念的外延 6. 数据描述的两种形式: 数据描述有物理描述和逻辑描述两种形式。 物理数据描述指数据在存储设备上的存储方式,物理数据是实际存放在存储设备上的数据。 逻辑数据描述指程序员或用户用以操作的数据形式,是抽象的概念化数据。 数据管理软件的功能之一, 就是要把逻辑数据转换成物理数据, 以及把物理数据转换成逻辑 数据。 7. 物理存储介质层次: 8. 数据模型的种类: 目前广泛使用的数据模型可分为两种类型:概念数据模型、结构数据模型 概念数据模型:是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描 述某个特定组织所关心的信息结构; 它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具; 这一类中著名的模型是“实体联系模型”,简称“ER”模型。 结构数据模型:是直接面向数据库的逻辑结构; 它是现实世界的第二层抽象,涉及到计算机系统和数据库管理系统; 这一类中的例子有层次、网状、关系、面向对象等模型。 9. 结构数据模型的三个组成部分: 数据结构、数据操作、数据完整性约束是结构数据模型的三个组成部分。 数据结构:是指对实体类型和实体间联系的表达和实现 数据操作:是指对数据库的检索和更新(插、删、改)两类操作的实现 数据完整性约束:给出数据及其联系应具有的制约和依赖规则。 10. 层次模型的特点: 用树型结构表示实体类型及实体间联系的数据模型称为层次模型。 层次模型的特点是:记录之间的联系通过指针实现,查询效率较高。 缺点是: (1)只能表示1:N联系 (2)由于树型结构层次顺序的严格复杂,引起数据的查询和更新操作也很复杂,因此编写 应用程序也很复杂。 11. 网状模型的特点: 用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。 网状模型的特点是:记录之间联系通过指针实现,M:N联系也容易实现,查询效率较高。 缺点是:编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。 12. 关系模型的特点: 关系模型的主要特征是用二维表格结构表达实体集,用外键表示实体间联系。 特点是:关系模型与层次、网状的最大差别是用关键码而不是用指针导航数据,表格简单, 用户易懂,编程时不涉及存储结构、访问技术等细节。

15. DBMS的主要功能: (1) 数据库的定义功能:DBMS提供数据定义语言(DDL)定义数据库的三级结构及其相互 之间的映象、完整性、安全控制等约束。 (2) 数据库的操纵功能:DBMS提供数据操纵语言(DML)实现对数据库中数据的操作。 (3) 数据库的保护功能: DBMS对数据库的保护主要通过数据库的恢复、 数据库的并发控制、 数据库的完整性控制、数据库的安全性控制等四个方面实现。 (4) 数据库的存储管理: DBMS的存储管理子系统提供了数据库中数据和应用程序的一个界 面,其职责是把各种DML语句转换成低层的文件系统命令,起到数据的存储、检索和更新的 作用。 (5) 数据库的维护功能:DBMS中实现数据库维护功能的实用程序主要有数据装载程序、备 份程序、文件重组织程序、性能监控程序。 (6) 数据字典(DD):数据库系统中存放三级结构定义的数据库称为数据字典,对数据库 的操作都要通过访问DD才能实现。 16. DBMS的组成: DBMS是由两大部分组成:查询处理器和存储管理器。 (1) 查询处理器有四个主要成分:DDL编译器、DML编译器、嵌入型DML的预编译器、查询 运行核心程序。 (2) 存储管理器有四个主要成分:授权和完整性管理器、事务管理器、文件管理器、缓冲 区管理器。 19. 超键、主键、候选键的定义: 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键。 候选键(candidate key):不含有多余属性的超键称为候选键。(候选键可以有多个) 主键(primary key):用户选作元组标识的一个候选键称为主键。(主键是候选键中一个) 20. 关系模式、关系子模式和存储模式: 关系模型基本上遵循数据库的三级体系结构。 概念模式是关系模式的集合, 外模式是关系子 模式的集合,内模式是存储模式的集合。 (1) 关系模式:关系模式实际上是记录类型。它的定义包括:模式名,属性名,值域名以 及模式的主键。 (2) 关系子模式:是用户所用到的那部分数据的描述。除了指出用户的数据外,还应指出 模式与子模式之间的对应性。 (3) 存储模式:关系存储时的基本组织方式是文件,元组是文件中的记录。存储一个关系 可以用散列方法或索引方法实现。如果关系中元组数目较少,也可以用堆文件方式实现。 21. 关系模型的三类完整性规则: (1) 实体完整性规则:这条规则要求关系中元组在组成主键的属性上不能有空值。 (2) 参照完整性规则:这条规则要求“不引用不存在的实体”。 (3) 用户定义的完整性规则:它反映某一具体应用涉及的数据必须满足的语义要求。 22. 参照完整性规则的形式定义: 如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值 只允许两种可能,或者为空,或者等于R1关系中某个主键值。 此规则使用时还要注意三点: (1) 外键和相应的主键可以不同名,只要定义在相同值域上即可。 (2) R1和R2也可以是同一个关系模式,表示了属性之间的联系。 (3) 外键值是否允许空,应视具体问题而定。 上述形式定义中,关系模式R1称为“参照关系”模式,R2称为“依赖关系”模式。

30. 简述查询优化的优化策略: (1) 在关系代数表达式中尽可能早地执行选择操作。 (2) 把笛卡尔积和随后的选择操作合并成F联接运算。 (3) 同时计算一连串的选择和投影操作,以免分开运算造成多次扫描文件,从而能节省操 作时间。 (4) 如果在一个表达式中多次出现某个子表达式, 应该将该子表达式预先计算出结果保存 起来。以免重复计算。 (5) 适当的对关系文件进行预处理。 (6) 在计算表达式之前应先估计一下怎么计算合算。 34. SQL的组成分成几部分: SQL主要分成四部分: (1) 数据定义。(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。 (2) 数据操纵。(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插 入、删除、和修改三种操作。 (3) 数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。 (4) 嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。 35. SQL模式的撤消有哪两种方式: CASCADE(连锁式)方式:执行DROP语句时,把SQL模式及其下属的基本表、视图、索引等所 有元素全部撤消。 RESTRICT(约束式)方式:执行DROP语句时,只有当SQL模式中没有任何下属元素时,才能 撤消SQL模式,否则拒绝执行DROP语句。 36. SQL提供的基本数据类型有哪些?每种举两个例子: (1) 数值型:INTEGER长整数、SMALLINT短整数 (2) 字符串型:CHAR(N)长度为N的定长字符串、VARCHAR(N)具有最大长度为N的变长 字符串。 (3) 位串型:BIT(N)长度为N的二进制位串、BIT VARYING(N)最大长度为N的变长二进 制位串 (4) 时间型:DATE日期、TIME时间 SQL2允许用户使用“CREATE DOMAIN”语句定义新的域。 37. 完整性约束主要有哪三种子句: 完整性约束主要有三种子句:主键子句(PRIMARY KEY),检查子句(CHECK)和外键子句 (FOREIGN KEY) 38. 什么是视图,它与表的区别是什么: 在SQL中,外模式一级数据结构的基本单位是视图,视图是从若干基本表和(或)其他视图 构造出来的表。我们创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视 图对应的数据,因此,视图被称为“虚表”,这是它与表的主要区别。 40. SQL语言有哪两种使用方式: 一种是在终端交互方式下使用,称为交互式SQL; 另一种是嵌入在高级语言的程序中使用, 称为嵌入式SQL, 而这些高级语言可以是C、 PASCAL、 COBOL等,称为宿主语言。 42. 在宿主语言的程序中使用SQL语句有哪些规定: (1) 在程序中要区分SQL语言与宿主语句。所有SQL语句前必须加上前缀标识“EXEC SQL”, 并以“END_EXEC”作为语句的结束标志。(结束标志在不同的宿主语言中不同) (2) 允许嵌入的SQL语句引用宿主语言的程序变量(共享变量),但有两条规定:

1) 引用时,这些变量前必须加冒号“:”作为前缀,以示与数据库中变量有区别。 2) 这些变量由宿主语言的程序定义,并用SQL的DECLARE语句说明。 45. 什么是关系数据库: 关系数据库是以关系模型为基础的数据库, 它利用关系来描述现实世界。 一个关系既可以用 来描述一个实体及其属性,也可以用来描述实体间的联系。关系实质上是一张二维表。 47. 数据完整性约束分为哪两类: 数据完整性约束分为静态约束和动态约束。 静态约束:包括各种数据之间的联系(数据依赖),主键的设计和关系值的各种限制等等。 这一类约束是如何定义关系的有效数据问题。 动态约束:主要定义如插入、删除、和修改等各种操作的影响。 66. SQL数据库的体系结构要点是什么: (1) 一个SQL数据库是表(table)的汇集,它用一个或多个SQL模式定义。一个SQL模式是 表和授权的表态定义。 (2) 一个SQL表由行集构成,一行是列的序列,每列对应一个数据项。 (3) 一个表或者是一个基本表,或者是一个视图。(视图只保存定义,不保存数据) (4) 一个基本表可跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每 个存储文件与外部存储器上一个物理文件对应。 (5) 用户可用SQL语句对视图和基本表进行查询等操作。 (6) SQL用户可以是应用程序,也可以是终端用户。 67. SQL的组成分成几部分: SQL主要分成四部分: (1) 数据定义。(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。 (2) 数据操纵。(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插 入、删除、和修改三种操作。 (3) 数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。 (4) 嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。 70. 什么是视图,它与表的区别是什么: 在SQL中,外模式一级数据结构的基本单位是视图,视图是从若干基本表和(或)其他视图 构造出来的表。我们创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视 图对应的数据,因此,视图被称为“虚表”,这是它与表的主要区别。 77. 什么是软件生存期: 软件生存期是软件工程的一个重要概念。是指从软件的规划、研制、实现、投入运行后的维 护,直到它被新的软件所取代而停止使用的整个期间。通常分为六个阶段: (1) 规划阶段 (2) 需求分析阶段 (3) 设计阶段 (4) 程序编制阶段 (5) 调试阶段 (6) 运行维护阶段 116. 数据库的安全性: 是指保护数据库,防止不合法的使用,以免数据的泄漏、非法更改和破坏。对数据库不合法 的使用称为数据库的滥用。数据库的滥用可分为无意的和恶意的两类。 无意的滥用容易发生系统故障, 并发访问数据库时引起异常现象以及违反数据完整性约束等 逻辑错误。

恶意的滥用主要是指未经授权的读取数据(即偷窃信息)和未经授权的修改数据(即破坏数 据)。 117. 数据库的完整性与安全性的区别: 数据库的完整性是指尽可能避免对数据库的无意的滥用; 数据库的安全性是指尽可能避免对数据库的恶意的滥用。 SQL Server文件分为哪三类,各有什么特点 答:程序文件、数据文件和系统文件。程序文件和数据文件一般都安装在同一个目录底下, 如E:\Program Files\MSSQLSERVER\DATA。而系统文件一般都安装在系统目录底下。数据文 件会随程序运行而发生改变。 147.请阐述数据库操作系统文件的种类,以及每一种操作系统文件的作用 答:主数据文件:每个数据库都必须包含一个也只能包含一个主数据文件。主数据文件的默 认扩展名是.mdf 二级数据文件:数据库可以没有二级数据文件,也可以拥有多个二级数据文件。二级数 据文件的默认扩展名是.ndf 日志文件:用于存放和恢复数据库的所有日志信息。日志文件的默认扩展名是.ldf 148.请阐述所有四个系统数据库各自具有的功能 答:master数据库:记录了SQL Server 2005所有的服务器级系统信息,所有的注册帐户和 密码,和所有的系统设置信息 tempdb数据库:记录了所有临时表格、临时数据和临时创建的存储过程 model数据库:是用户建立新数据库的模版 msdb数据库:常被用来通过调度任务排除故障 149.请阐述SQL Server四层安全机制的意义 答:SQL Server的安全机制可以划分为四个层次 1、客户机操作系统的安全性:用户至少要获得用户机操作系统的用户和密码,才能够 使用这台客户端的计算机 2、SQL Server的登录安全性:SQL Server采用了标准SQL Server登录和集成Windows 登录两种方式,无论是使用那种登录方式,用户在登陆时提供的登录账号和口令, 将决定用户是否能获得SQL Server的访问权以及在访问SQL Server时可以拥有的权 力 3、数据库使用的安全性:数据库的访问权是通过映射数据库的用户与登录账户之间的 关系来实现的 4、数据库对象使用的安全性:数据库中的每一个对象都拥有自己的权限设置,这些设 置决定了用户最终是否可以访问这些数据对象,以及可以对这些数据对象进行的操 作 150.索引的意义 答:索引是SQL Server在列上建立的一种数据库对象。索引对表中的数据提供逻辑排序,可 以提高查询数据的访问速度。 SQL Server提供两种索引形式,分别是: (1)、簇集索引:根据键的值对行进行排序,每个标志能有一个簇集索引。 (2)、非簇集索引:不根据键值排序,索引数据结构与数据行是分开的。 索引的建立有利也有弊。 建立索引可以提高查询速度, 但建立过多的索引会占据过多的磁盘 空间

151.请比较存储过程和触发器的差异 答:存储过程是独立于表而存在的数据对象,虽然它的使用与表紧密相关。触发器的使用则 与表紧密结合。 可以使用存储过程来完善应用程序。 可以使用触发器来实现复杂的业务规则, 更有效地实施数据完整性。 五 操作题 1# 现有关系数据库如下: 数据库名:教师数据库 教师表(编号 char(6),姓名,性别,民族,职称,身份证号) 课程表(课号 char(6),名称) 任课表(ID,教师编号,课号,课时数) 用 SQL 语言实现下列功能的 sql 语句代码: 1. 创建上述三表的建库、建表代码(14 分); 要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、 默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别、课时数),自动编号(ID) 2. 将下列课程信息添加到课程表的代码(6 分) 课号 课程名称 100001 SQL Server 数据库 100002 数据结构 100003 VB 程序设计 修改 课号为 100003 的课程名称:Visual Basic 程序设计 删除 课号为 100003 的课程信息 3. 写出创建[任课表视图](教师编号,姓名,课号,课程名称,课时数)的代码;(4 分) 4. 写出创建[某门课任课教师]内嵌表值函数以及检索的代码;(6 分) 检索:所有代'SQL Server 数据库'这门课程的老师姓名; 5. 写出创建[统计课时数]:输出最大课时数、最低课时数、平均课时的存储过程以及执行 代码;(6 分) 6. 写出创建:计算某教师代课总课时,并将值返回的存储过程以及执行代码。(6 分) 执行:计算“郭老师”的总课时。(6 分) 7. 检索有一门或一门以上课程课时数大于 90 的所有教师的信息,包括编号、姓名。(4 分) 8. 建一个规则,并将其绑定到教师表的职称列上,规定取值为('教授','副教授','讲 师', '助教')之一。(4 分) 答案: 1. create database [教师数据库] --(2 分) use [教师数据库] go create table 教师表 --(6 分) ([编号] char(6) primary key, [姓名] nchar(4) not null, [性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(8) default '汉族' not null, [职称] nchar(12),

[身份证号] char(18) unique ) create table 课程表 --(2 分) ([课号] char(6) primary key, [名称] char(40) not null ) create table 任课表 --(4 分) (ID IDENTITY(1, 1), [教师编号] char(6) references 学生表(学号), [课号] char(6) references 课程表(课号), [课时数] integer check([课时数] between 0 and 200)) 2. insert 课程表 values('100001', 'SQL Server 数据库') insert 课程表 values('100002', '数据结构') insert 课程表 values('100003', 'VB 程序设计') update 课程表 set 名称='Visual Basic 程序设计' where 课号='100003' delete 课程表 where 课号='100003' 3. create view [任课表视图] as select 教师编号,姓名,课号, 课程名称,课时数 from 教师表,任课表 where 教师表.编号=任课表.教师编号 4. create function [某门课任课教师](@课程名 varchar(15)) returns table as return (select 课程名称, 课时数, 教师姓名=姓名 from 任课表视图 where 课程名=@课程名) go select * from [某门课任课教师]('SQL Server 数据库') 5. create procedure [统计课时数] as select 最大课时数=max(课时) ,最小课时数=min(课时),平均课时数=avg(课时) from 任 课表 go execute [统计课时] 6. create procedure [统计课时] @教师名 nchar(16), as begin declare @总课时 int select @总课时=sum (课时) from 任课表视图 where 姓名 = @教师名 end go

execute [统计课时] '郭老师' 7. select 编号, 姓名 from 教师表 where 编号 in (select distinct 教师编号 from 任课表 where 课时数>=90) 8. create rule zhicheng _rule as @zhicheng in ('教授','副教授','讲师', '助教') go sp_bindrule zhicheng_rule, '教师表.职称' 2# 有一个[学生课程]数据库,数据库中包括三个表: 学生表 Student 由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五 个属性组成,记为: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。 课程表 Course 由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性 组成,记为:Course(Cno,Cname,Cpno,Ccredit) Cno 为关键字。 成绩表 SG 由学号(Sno)、 课程号(Cno)、 成绩(Grade)三个属性组成, 记为:SG(Sno,Cno,Grade) (SNO, CNO)为关键字。 用 SQL 语言实现下列功能: 1.建立学生表 Student,其中学号属性不能为空,并且其值是唯一的。 2.向 Student 表增加“入学时间(Scome)”列,其数据类型为日期型。 3.查询选修了 3 号课程的学生的学号及其成绩,查询结果按分数的降序排列。 4.查询学习 1 号课程的学生最高分数、平均成绩。 5.查询与“李洋”在同一个系学习的学生。 6.将计算机系全体学生的成绩置零。 7.删除学号为 05019 的学生记录。 8.删除计算机系所有学生的成绩记录。 答案: 1. create table student (Sno char(5) primary key, Sname char(20), Ssex char(2), Sage int, Sdept char(15) ) 2. select distinct sno from sg where grade < 60 3. update student set sage=22 where sno='05001'

4. select avg(grade) from sg where cno='1' 5. create procedure getdetailbyname @name nvarchar(10) as if (select count(*) from student where sname = @name) > 0 select * from student where sname = @name else print '不存在姓名为 ' + @name + ' 的学生资料' 6. select sname,ssex,sage from sdudent where sdept=’计算机系’and sname like '赵 %' and ssex ='女' 7. create view [学生成绩表视图] as select sno, sname, cno, cname, grade from sg, sdudent where sC、sno=sdudent.sno 8. insert into student values ('05020', '丁莉', '女', 17, '计算机系') 3# 假定使用的“图书” 、 “读者” 、 “借阅”和 ZGJ K 库的定义如下: 图书(总编号 C(6),分类号 C(8),书名 C<16),作者 C(6),出版单位 C<16),单价 N(7,2)) 读者(借书证号 C(4),单位 C<l0>,姓名 C(6),性别 C<2),职称 C<6),地址 C(16)) 借阅(借书证号 C(4),总编号 C(6),借书日期 D()) ZGJK(职工号 C(6),姓名 C(6),性别 C(2),出生日期 D<),职称 C(6),基本工资 N(7,2)) 1. 查 询 出“图书”数据库中高等教育出版社出版的单价不低于 20 元的所有各类的图书。 2. 按 单 价升序显示“图书”库中清华大学版的所有图书。 3. 分 组 统计出“借阅”库中每一种借书证号所借图书的册数。 4. 联 接 查询“借阅” 、 “读者”和“图书”三个库,得到每一本所借图书的读者的借书证 号、姓 名、单位和书名。 5. 显 示 出 ZGJK 库中基本工资在 300 至 500 元之间的所有职工记录。 6. 在 ZG JK 库上按职工号建立一个单索引文件 zgh.id x,并自动成为主索引。 7. 使 ZG JK 库上的结构化复合索引文件中的标记为“职称”的索引成为主控索引。 1. selectd istinct 书名,作者,单价; from 图书; where 出版单位=“高等教育”AND 单价>=20.0 0 2. select} ;

from 图 书; where 出版单位=“清华大学”; orderb y 单价 3. select 借书证号,count(} ); from 借 阅; group by 借书证号 4. select x.借书证号,Y.姓名,Y.单位,z.书名; from 借 阅 x,读者 Y,图书 z; where x. 借书证号=Y.借书证号 and x.总编号=z.总编号 5. usez gjk List for 基本工资>=300.anD、基本工资<= 500 6. usez gjk index o n 职工号 toz gh 7. usez gjk set order t ot ag 职称 4# 在名称为商品库的数据库中包含有商品表 1 和商品表 2,它们的定义分别为: 商 品表 1(商品代号 char(8),分类名 char(8),单价 float,数量 int) 商 品表 2(商品代号 char(8),产地 char(6),品牌 char(6)) 在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为: 学生 ( 学 生号 char(7),姓名 char(6),性别。har(2),出生日期 datetime, 专 业 ch ar (1 0 ), 年级 int) 课程 ( 课 程号 char<4),课程名 char(10),课程学分 int) 选课 ( 学 生号 char(7),课程号。har(4),成绩 int) 1. 从 商 品库中查询出所有商品的不同品牌。 2. 从 教 学库中查询出学生号为@s1 的学生和学生号为@s2 的学生所选修的共同课程的 课程号。 3. 从 教 学库中查询出每个专业的学生人数,并按人数多少降序排列。 4.从商品库中查询出每类(即分类名相同)商品的最高单价。 5.从商品库中查询出同一类商品多于一种的所有分类名 1. select distinct 品牌 fro m 商 品 表 2 2. s electx .学生号,Y.学生号,Y.课程号 fro m 选 课 x, 选课 Y wh er e x . 学 生号=@s1a ndy .学生号=@s2 and x .课 程 号 = Y. 课 程 号 3. select 专业,count(,)as 专业人数 from 学 生 group by 专 业 order by 专 业人数 desc 4. select 分类名,max(单价)as 最高单价 fro m 商 品 表 1 group by 分 类 名 5. selectd istinct 分类名

fro m 商 品 表 1 group by 分 类 名 havingc ount( } ) > 1 5# 假定使用的”图书“、 ”读者“、 ‘1 借阅“和 ZGJK 库的定义如下: 图书(总编号 C(6),分类号 C(8),书名 C(16),作者 C(6),出版单位 C(16),单价 N(7,2)) 读者(借书证号 C(4),单位 C(10),姓名 C(6),性别 C(2),职称 C(6),地址 C(16)) 借阅(借书证号 C(4),总编号 C(6),借书日期 D()) ZGJK (职工号 C(6),姓名 C(6),性别 C(2),出生日期 D(),职称 C(6),基本工资 N(7,2) 1. 查 询 出“图书”数据库中作者姓“李”的所有图书。 2. 按 分 类号升序显示“图书”库中各种图书的分类号、书名和作者。 3. 查 询 出“图书”库中书名含有“数据库”字串的所有图书。 4. 联 接 查询“借阅”库和“读者”库,得到每一借阅读者的借书证号、姓名和单位。 5. 显 示 出 ZGJK 库中职称为教授或副教授,并且在 1945 年(含该年)以后出生的所有职 工记录。 6. 向 Z GJK 库中第五条记录之后插人一条新记录。 7. 在 ZG JK 库上打开独立型复合索引文件 FHSY,并使该文件中第一个索引标记成为主 控索引。 l. select 二; fro m 图书; wher。作者=”李“ 2. select distinct 分类号,书名,作者; fro m 图书; order by 分类号 3. select from 图书; where 书名 like“%数据库%“ 4. select distinct x.借书证号,姓名,单位; from 借阅 x,读者 Y+ where x.借书证号=Y.借书证号 5. use zgjk list for 教授$职称.anD、出生日期>= {1945/01/01} 6. use zgjk go 5 insert 7. use zgjk set index to fhsy. cdx order 1 of fhsy 6# 在名称为商品库的数据库中包含有商品表 1 和商品表 2,它们的定义分别为: 商品 表 1 (鱼鱼些呈 char(8),分类名 char(8),单价 float,数量 int) 商品 表 2 <鱼鱼些呈 char(8),产地 char(6),品牌 char<6)) 在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为: 学生 ( 堂生 呈 char(7),姓名 char(6) , 性别 char(2),出生日期 datetime, 专业 char (10 ), 年 级 int)

课程 ( 遇矍 呈 char(4),课程名 char(10),课程学分 int) 选课 ( 堂生 呈 char(7),途鱼呈 char(4),成绩 int) 1. 从 教 学库中查询出每个学生选课的门数。 2. 从 教 学库中查询出所有已被学生选修的课程。 3. 从 教 学库中查询出每个专业每种性别的学生人数,并按专业排序。 4.从商品库中查询出单价大于等于元、或者数量大于等于 15 的所有商品。 5.从教学库中查询出至少有两名学生所选修的全部课程。 select * from 课 程 where 课 程 号 in (select 课程号 from 选 课 group by 课 程 号 having count(,)>=2 ) 1725 1. s elect 学生,学生号,count(二)as 选课门数 from 学生,选课 where 学生.学生号”选课.学生号 group by 学生.学生号 2. select from 课程 where exists<select from 选课 where 课程.课程号今选课.课程号 ) 3. select 专业,性别,count(,)as 人数 from 学 生 group by 专业,性别 order by 专 业 4. select from 商 品 表 1 where 单 价 > = o r 数量>=15 5. selec td istinctx . from 课程 x,选课 Y,选课: where y.课程号二 z.课程号 and y.学生号<}z.学生号 and x .课 程 号 = Y. 课 程 号 或 : select } from 课 程 where 课 程 号 in (select 课程号 from 选 课 group by 课 程 号 havingc ount(,)>=2 )号


更多相关文档:

复习题2

复习题2_经济学_高等教育_教育专区。考试复习题 1.阐述反馈循环的概念,并举例说明正反馈和负反馈。反馈循环是一种封闭路径,这种路径将一个行为与它对环境的影响...

数据库复习题2

数据库复习题2_IT认证_资格考试/认证_教育专区。复习题 2 1. 设关系 r1(A, B,C),r2(C,D,E)有如下特性:r1 有 200000 个元组,r2 有 45000 个元组,...

复习题2及答案

复习题 2 (1)微电子技术是现代信息技术的基础之一,而微电子技术又以集成电路为核心,下列关 于集成电路(ic)的叙述中,错误的是( C ) (A)集成电路是 20 ...

复习题2

复​习​题​2 暂无评价|0人阅读|0次下载|举报文档复习题()┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄...

复习题2及答案

复习题2及答案_数学_小学教育_教育专区。化学分析试卷班级 姓名 分数 一、选择题 ( 共 14 题 28 分 ) 1. 2 分 (1023) 1023 Ag2S 的 Ksp=2.0×10-48,...

第一章复习题2

若不正确, 指出其中错误之处___ 四、计算题(本题共 2 小题,共 16 分) 29、实验室需要 0.1mol /L 氢氧化钠溶液 100mL,现有 2mol /L 氢氧化钠溶液...

试题2

试题2_数学_小学教育_教育专区。试卷代号:6044 河北广播电视大学开放教育 2010—2011 学年度第一学期期末考试 财务管理 试题 2 一、 单项选择 (从下列每小题的四...

信息系统复习题2

信息系统复习题2_IT认证_资格考试/认证_教育专区 暂无评价|0人阅读|0次下载|举报文档 信息系统复习题2_IT认证_资格考试/认证_教育专区。一、判断题(本题满分 ...

201512期末复习题2

201512期末复习题2_初三数学_数学_初中教育_教育专区。初三数学期末题(2)期末海淀区统考范围:代数:二次函数、反比例函数、锐角三角函数. 几何:旋转、圆、相似. ...

试题2

免费 总复习试题2 暂无评价 4页 免费 期末试题2 暂无评价 13页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 ...
更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com