重庆科创职业学院SQL Server数据库管理助理工程师.doc
科目编号:2322身份证号码数据库系统工程师认证类别姓名准考证号码地区, 考 , 生 , 答 , 题 , 不 , 准 , 超 , 过 , 此,线,全国信息化计算机应用技术水平教育培训试卷(考试时间:120分钟考试总分:100分 专业认证课程:SQL Server数据库管理)注意事项1、 请首先按要求在试卷的标封处填写您的姓名、准考证号等;2、 请仔细阅读各种题目的回答要求,在规定的位置填写您的答案;3、 请保持试卷卷面的整洁,不要在标封区填写无关内容。题 号一二三四总分总分人分 数一、选择题(30分,共30题,每题1分)1、SQL Server 2000不包含以下哪个版本( )A、 SQL Server 2000 企业版(Enterprise Edition)B、 SQL Server 2000 专业版(Professional Edition)C、 SQL Server 2000 个人版(Personal Edition)D、 SQL Server 2000 开发版(Developer Edition)2、下面哪个不是SQL Server数据库的系统数据类型( ) A、 int、smallintB、 char、varcharC、 String、charD、 datetime、int3、触发器可引用视图或临时表,并产生两个特殊的表是( )。ADeleted、InsertedB. Delete、InsertC. View、TableD. View1、table14、 SQL Server标准版不支持的操作系统是( C )。A、Windows 2000 Server B、Windows NT ServerC、Windows 98 D、Windows 2000 Advanced Server5、你是sql server 2000服务器管理员。该服务器上数据库设置了数据库碎片检测选项。数据库设置了每日备份。服务器突然掉电1分钟,当恢复供电时,检测到了碎片;同时你注意到数据库被标记为”可疑”状态。你现在需要采取什么方法来纠正该问题? ( )A. 执行DBCC CHECKDB,指定PHYSICAL_ONLY选项B. 执行DBCC CHECKDB,指定REPAIR_REBUILD选项C. 执行sp_resetstatus存储过程D. 从数据库备份恢复可疑数据库6、SQL Server 2000采用的身份验证模式有( )。 A仅Windows身份验证模式 B仅SQL Server身份验证模式 C仅混合模式 DWindows身份验证模式和混合模式 7、关于SQL Server 2000文件组的叙述正确的是( )。 A一个数据库文件不能存在于两个或两个以上的文件组里 B日志文件可以属于某个文件组 C文件组可以包含不同数据库的数据文件 D一个文件组只能放在同一个存储设备中 8、 你是SQL SERVER 2000的管理员,你创建了一个数据库维护的任务;该任务需要当服务器启动的时候运行。 你使用SQL SERVER企业管理器为该任务创建了一个新的计划条目,而且指定了该任务自动启动。 通过重新启动服务器来测试该任务,你通过检测该任务的历史记录发现该任务并未运行。你需要该任务能在服务器重新启动的时候自动运行,你需要怎么做? ( )A. 创建一个存储过程:当MSSQLService服务启动时,使用sp_start_job启动该任务B. 为该任务添加另外一个计划条目,指定该任务每小时启动,然后禁止该任务C. 改变该任务的类别为数据库维护模式D. 配置SQLServerAgent服务启动类型为自动9、下面关于视图的描述不正确的是() A、视图是一个虚表,即视图所对应的数据不进行实际存储B、修改和删除数据时如涉及到视图的多个基本表时,将会影响多个基本表C、视图的创建可使用命令CREATE VIEW,查看视图可使用系统存储过程Sp_helptextD、视图一经定义以后,就不可以更改10、用户报告:当他们试图修改数据时,数据库响应超时。你使用“当前活动窗口”检查当前数据库锁状态。结果图如下:你需要发现为什么用户不能修改数据,但是不想中断正常的数据库活动。你该怎么做? ( )A. 使用spid 52图标发现哪一条SQL语句正在执行B. 使用sp_who存储过程来发现谁使用spid 52登录C. 使用SQL日志分析捕捉登录为spid 52的用户活动D. 使用系统监视工具查看数据库里的锁定记录信息11、下面关于触发器的描述不正确的是( )A、每张表只有3种触发器动作,而且一个触发器只能作用在一个表上。B、触发器中有两个逻辑表,其中一个逻辑表命名为deleted(删除表),另一个命名为inserted(插入表)C、当试图从触发器所定义的目标表中删除数据的时候,DELETE触发器被激发,同时,需要删除的数据被放置到inserted表中。D、当试图插入数据到触发器所定义的目标表中时,INSERT触发器被激发,同时,需要插入到目标表中的数据被放置到inserted表中。12、 SQL Server 2000支持的整数型数据类型包括bigint,int,smallint,tinyint,其中tinyint的数值范围为()A、-263到263-1B、-231到231-1C、-215到215-1D、0到25513、 SQL Server2000触发器主要针对下列语句创建( )。A、 SELECT、INSERT、DELETEB、INSERT、UPDATE、DELETEC、 SELECT、UPDATE、INSERTD、INSERT、UPDATE、CREATE14、 你是SQL Server 2000服务器管理员。该服务器存储着2个数据库,一个客户/服务器程序访问其中一个数据库。另外个客户/服务器程序访问另外个数据库。每个应用程序使用存储过程查询和更新数据库,用户报告两个应用程序响应都比较缓慢。 你使用SQL时间监视器查看服务器活动。你得到了如下结果图:你需要采取什么方法来提高应用程序性能? ( )A 修改应用程序使用视图来查询数据B 修改程序过程,采用select into 临时表C 修改存储过程,不使用with recompile选项D 修改两个数据库禁止自动更新状态选项15、内连接是最常用的连接类型,内连接的关键字是( )。A、left join B、right joinC、inner join D、inner16、你是一金融公司数据库管理员。雇员每天24小时输入数据进入SQL SERVER 2000数据库。雇员报告从分支机构收集新账号信息进入数据库的时候响应缓慢。你当前使用的是BULKINSERT语句添加账号信息:BULK INSERT finance.dbo.customersFROM dibulkaccts143_.txtWITH DATAFILETYPE = char,FIELD/TERMINATOR = t,ROWTERMINATOR = n,TABLOCK你想添加新账号信息进入数据库的时候响应不再缓慢。你需要如何做? ( )A. 在数据加载以前,删除客户信息表上的索引,数据加载完成以后重新建立索引B. 对BULK INSERT语句删除TABLOCK选项C. 对BULK INSERT语句添加BATCHSIZE选项,设置选项等于数据加载量的10%D. 对BULK INSERT增加ROWS_PER_BATCH选项,设置选项等于数据加载量的10%17、 存放Master数据库的磁盘失败,导致你的用户数据库无法使用,而且你无法找到最近的Master数据库备份,你如何来重新建立Master数据库。( )A从存在的备份上恢复用户数据库B附加已存在的用户数据库到新的master数据库C手动修改master数据库系统目录,添加用户数据库D不需要做任何事情.重建master数据库进程自动恢复用户数据库的连接18、你作为SQL SERVER 2000的管理员,该服务器存储着名为SALES的数据库。你们公司使用该数据库存储销售部门的报价信息。公司开发人员创建了一个应用程序来保存报价信息。该应用程序执行以下SQL语句:UPDATE QuotationSummarySET CustomerName = Jean-Paul DeloriaWHERE QuotationID = 12当应用程序执行时,开发人员收到了如下错误信息:Server: Mrh4403, Level 16, Stats 1, Line 1View or function QuotationSummary is not updateable because itcontains aggregates:你想开发人员能不产生错误信息地使用该UPDATE语句。你需要怎么做? ( )A. 在视图上创建一个INSTEAD OF触发器,以更新复合表B. 在每个基础表上授予开发人员UPDATE权限C. 在每个基础表上添加级联更新触发器D. 建立一个报价汇总表,从基础表上植入数据19、 你正在从磁带上恢复数据库。当超过50%的时候,磁带驱动器故障,你重新更换磁带驱动器以后想完成恢复。现在你该如何做? ( )A. EXEC RESTORE WITH RECOVERYB. EXEC RESTORE WITH RESTARTC. EXEC RESTORE WITH STANDBYD. EXEC RESTORE WITH REPLACEE. EXEC RESTORE WITH NORECOVERY 20、关于Drop Table命令的正确说法是( )。 A删除表里的数据,保留表的数据结构 B删除表里的数据,同时也删除表的数据结构 C保留数据,删除表的数据结构 D删除此表,并删除数据库里所有与此表关联的表 21、SQL Server支持在线备份,但在备份过程中,不允许执行的操作是( )(1)、创建或删除数据库文件(2)、创建索引(3)、执行非日志操作(4)、自动或手工缩小数据库或数据库文件大小A、(1)B、(1)(2)C、(1)(2) (3) D、(1)(2)(3)(4) 22、SQL中,下列涉及空值的操作,不正确的是( )A、age IS NULL B、age IS NOT NULL C、age = NULL D、NOT (age IS NULL)23、下列关于数据库备份的叙述错误的是( )。 A如果数据库很稳定就不需要经常做备份,反之要经常做备份以防数据库损坏 B数据库备份是一项很复杂的任务,应该由专业的管理人员来完成 C数据库备份也受到数据库恢复模式的制约 D数据库备份策略的选择应该综合考虑各方面因素,并不是备份作得越多、越全就越好 24、在SQL Server中,统计记录个数的函数是() A、count() B、avg()C、max() D、sum()25、你为一个医院设计SQL SERVER 2000数据库。数据库包含医生和病人信息的两个表,分别为Physicians和Patients。医生要处理多个病人。病人具有一个主治医生,同时还有辅助医生。主治医生必须被标示为病人的主治医生。Patients表不超过2百万行。你想要提高数据查询时的I/O性能。数据库为第三方表单标准化。你将选择以下哪个脚本来建立表? ( )A. CREATE TABLE Physicians(Physicians ID int NOT NULL CONSTRAINT PK_Physicians PRIMARY KEY CLUSTERED,LastName varchar(25) NOT NULL,)GOCREATE TABLE Patients(PatientID bigint NOT NULL CONSTRAINT PK_Patients PRIMARY KEY CLUSTERED,LastName varchar (25) NOT NULL,FirstName varchar (25) NOT NULL,PrimaryPhysician int NOT NULL,SecondaryPhysician int NOT NULL,CONSTRAINT PK_Patients_Physicians1 FOREIGN KEY (PrimaryPhysician) REFERENCESPhysicians (PhysicianID),CONSTRAINT PK_Patients_Physicians2 FOREIGN KEY (SecondaryPhysician) REFERENCESPhysicians (PhysicianID)B. CREATE TABLE Patients(PatientID smallint NOT NULL CONSTRAINT PK_Patients PRIMARY KEY CLUSTERED,LastName varchar(25) NOT NULL,FirstName varchar (25) NOT NULL,PrimaryPhysician int NOT NULL,SecondaryPhysician int NOT NULL,)GOCREATE TABLE Physicians(PhysicianID smallint NOT NULL CONSTRAINT PK_Physicians PRIMARY KEY CLUSTERED,LastName varchar (25) NOT NULL,FirstName varchar (25) NOT NULL,CONSTRAINT PK_Physicians_Patients FOREIGN KEY (PhysicianID) REFERENCES Patients(PatientID)C. CREATE TABLE Patients(PatientID bigint NOT NULL CONSTRAINT PK_Patients PRIMARY KEY CLUSTERED,LastName varchar (25) NOT NULL,FirstName varchar (25) NOT NULL,)GOCREATE TABLE Physicians(PhysicianID int NOT NULL CONSTRAINT PK_Physician PRIMARY KEY CLUSTERED,LastName varchar (25) NOT NULL,FirstName varchar (25) NOT NULL,)GOCREATE TABLE PatientPhysician(PatientPhysicianID bigint NOT NULL CONSTRAINT PK_PatientsPhysicians PRIMARY KEYCLUSTERED,PhysicianID int NOT NULL,PatientID bigint NOT NULL,PrimaryPhysician bit NOT NULL,FOREIGN KEY (PhysicianID) REFERENCES Physicians (PhysicianID),FOREIGN KEY (PatientID) REFERENCES Patients (PatientID)D. CREATE TABLE Patients(PatientID int NOT NULL PRIMARY KEY,LastName varchar (25) NOT NULL,FirstName varchar (25) NOT NULL,)GOCREATE TABLE Physicians(PhysicianID int NOT NULL PRIMARY KEY,LastName varchar (25) NOT NULL,FirstName varchar (25) NOT NULL,)GOCREATE TABLE PatientPhysician(PhysicianID int NOT NULL REFERENCES Physicians (PhysicianID),PatientID int NOT NULL REFERENCES Patients (PatientID), PrimaryPhysician bit NOT NULL,CONSTRAINT PK_PatientsPhysicians PRIMARY KEY (PhysicianID, PatientID)26、关于SQL Server 2005的数据库权限叙述不正确的是( )。 ASQL Server 2005的数据库权限可以分为服务器权限、数据库权限和对象权限 B服务器权限能通过固定服务器角色进行分配,不能单独分配给用户 C数据库管理员拥有最高权限 D每个用户可以分配若干权限,并且用户有可能可以把其权限分配给其他用户 27、你为多个公司开发数据库。其中一个公司用SQL SERVER 2000集中处理在线事务处理。改数据库具有一个表Sales,保存这该公司的销售信息。经过一年以后,超过150,000行数据添加到Sales表。用户报告说,经过这一年以后数据库性能明显下降。为了提高数据库查询性能。你需要在查询分析器里面执行一下哪条语句? ( )A. EXEC sp_updatestats 'resample'B. CREATE STATISTICS Sales WITH FULLSCANC. Sp_autostats SalesD. UPDATE STATISTICS Sales WITH FULLSCAN ALL28、你开发一个电话目录数据库。一个名为PhoneNumber表如下:在加入100,000个姓名进入表以后,你使用一下语句创建索引:ALTER TABLE dbo. PhoneNumbers WITH NOCHECK ADDCONSTRAINTPK_PhoneNumbersPRIMARY KEY CLUSTERED (FirstName,LastName,) ON PRIMARYGOCREATE UNIQUE INDEXIX_PhoneNumbers ON dbo.PhoneNumbers(PhoneNumberID) ON PRIMARYGO经过对数据库性能测试,你发现类似一下查询需要消耗比较长的时间:返回居住在一个特定城市,而且其姓从W开始的所有人的姓名和电话号码你需要如何来提高这类型的查询的性能?(选择2个答案) ( )A. 修改主键约束,使用FIRSTNAME列,LASTNAME列B. 在City列上添加非聚集索引C. 删除PhoneNumberID列上的唯一索引D. 修改主键约束为非聚集索引E. 在查询分析器里执行UPDATE STATISTICS FULLSCAN ALL29、要查询XSH数据库CP表中产品名含有冰箱的产品情况,可用()命令.A、SELECT * FROM CP WHERE 产品名称 LIKE '冰箱'B、SELECT * FROM XSH WHERE 产品名称 LIKE '冰箱'C、SELECT * FROM CP WHERE 产品名称 LIKE '%冰箱%'D、SELECT * FROM CP WHERE 产品名称='冰箱'30、使用SQL语言修改表时,正确的命令是()A、Delete Table B、Create TableC、Alter TableD、Drop Table二、实践题(60分)现有关系数据库如下: 数据库名:医院数据库医生表(编号,姓名,性别,出生日期,职称) 病人表(编号,姓名,性别,民族,身份证号) 病历表(ID,病人编号,医生编号,病历描述) 用SQL语言实现下列功能的sql语句代码:1.创建上述三表的建库、建表代码; 要求使用:主键(师医生表.编号,病人表.课号)、外键(病历表.医生编号,病历表.病人课号)、非空(职称,姓名)、检查(性别),自动编号(ID) (16分)2.将下列医生信息添加到医生表的代码 编号 姓名 性别 出生日期 职称 杜医生 男 1963-5-18 副主任医师 郭医生 女 1950-7-26 副主任医师 刘医生 男 1973-9-18 医师 修改 编号为的医生职称为主任医师 删除 编号为的医生信息 (8分)3.写出创建:医疗表视图(医生编号,姓名,病人姓名,病历)的代码;(6分)4.写出所有病人编号、姓名、病历、以及病人所对应的医生编号的查询语句;(6分)5. 写出创建: 输出某医生(根据医生编号即可)看病人数存储过程以及执行过程(要求输入医生姓名的参数,输出病人数)(10分)。6. 写出查询1970年以前出生的医生(4分)。7.创建一个默认,并将其绑定到医生表的成绩职称列上,默认值为“医师”。(10分)三、论述题(10分)2. 什么是事务?事务控制语句的使用方法是什么?(10分) 四、问答题(10分)1、 Accounting数据库备份计划任务如下表:1:00 A.M.完全备份7:00 A.M.事务日志备份8:00 A.M.事务日志备份9:00 A.M.事务日志备份2007年10月10日上午8:45,一用户运行一新的事务导致了错误更新多个表的数据。财务部门经理告诉你:在那个时间以后的数据可以通过纸质表单重建。你需要采取哪些步骤以恢复数据到最接近上午8:45的状态? (6分)2、存储过程与触发器有什么不同?(4分)