版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库考试习题及答案数据库考试习题及答案数据库考试习题及答案xxx公司数据库考试习题及答案文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度第一章习题一、判断题1.安装MicrosoftSQLServer2005企业版对操作系统的最低要求可以是MicrosoftWindowsXPProfessionalSP2。(错)2.每一个服务器必须属于一个服务器组。一个服务器组可以包含0个、一个或多个服务器。(对)二、填空题3. MSSQLServer提供多个图形化工具,其中用来启动、停止和暂停SQLServer服务的图形化工具称为SQLServer配置管理器。三、选择题4. 下列系统数据库中,(D)数据库不允许进行备份操作。A.masterB.msdbC.modelD.Tempdb5. 下列关于SQLServer2005实例的说法中,正确的是(C)。A.不同版本的默认实例数可能不一样多B.不同版本的命名实例数一定一样多C.不同版本的默认实例只有一个,命名实例数不一样多D.不同版本的命名实例只有一个,默认实例数不一样多6. 下列(C)数据库是SQLServer2005在创建数据库时可以使用的模板。A.masterB.msdbC.modelD.mssqlsystemresoure7. 默认情况下,SQLServer2005的系统数据库有(B)。A.1个B.5个C.4个D.6个8. 在一台计算机上能安装(A)个默认实例。A.1B.509. 访问默认实例使用(B)作为实例名。A.计算机名B.MSSQLSERVER10. 下列叙述中正确的是(A)。A.SQLSERVER实例是提供服务的,所以一个SQLServer实例称为一个数据库服务器B.SQLSERVER实例也叫做数据库引擎C.若计算机上安装多个SQLSERVER实例,则它们可以相互管理11. SQLSERVER2005实例主要提供哪些服务?(BCD)//全文搜索、报表服务、通知服务A.查询服务B.数据库服务C.集成服务D.分析服务12. 一台计算机的计算机名为computer,若在该计算机上打开配置管理器看到如图1所示内容,则说明本机上已安装3个实例,其实例名分别是(BCD)A.computerB.MSSQLSERVERC.computer\SQLEXPRESSD.computer\SERVER13. 连接数据库服务器时需要提供哪些信息?(A或者B)A.要连接的服务器名B.身份验证信息C.连接协议信息14. 能否将他人计算机上运行的实例注册到你的SSMS中
(A)A.不能B.能四、简答题15. 什么是SQLServer2005实例,其主要功能有哪些?
答:SQLServer2005的实例实际上就是虚拟的SQLServer服务器。每个实例都包括一组私 有的程序和数据文件,同时也可以和其他实例共用一组共享程序或文件。在数据库实例中,可以创建数据库及其对象,实现安全性,对服务器对象、复制和SQLServer代理等进行管理。数据库引擎是服务器的核心部件,SQLServerManagementStudio是SQLServer2005最重要的管理工具,用于访问、配置和管理SQLServer2005的组件。简述SQLServer2005服务器与客户端的关系答:在使用SQLServer2005软件过程中,客户机通常是指一些适合在家庭、实验室、办公环境下使用的安装了一些享用网络服务的PC,这些PC上网的目的是享受各种网络服务。服务器是指能够适应大容量数据存储和频繁的客户机访问操作的计算机,这类计算机一般配置大容量硬盘和24小时不间断的UPS电源、具备可热插拔功能、安装服务器和操作系统下的IIS软件,能够在计算机网络中提供各种网络服务。客户机通过网络将要求传递给服务器,服务器按照客户机的要求返回结果。第二章习题一、选择题1. 在sqlserver2000中,关于数据库说法错误的是(C)。A.数据库在磁盘上默认的存储位置是:SQLServer安装路径\MicrosoftSQLServer\MSSQL\DataB.一个数据库至少应包含一个数据库文件(*.mdf)和一个事务日志文件(*.ldf)C.只有当数据库中不存在数据的情况下,才可以进行数据库的收缩操作。D.可以通过从A机器拷贝数据库文件和事务日志文件至B机器,然后通过在B机器上执行相应的附加数据库操作,实现数据库从A机器到B机器的复制。2. 下列哪个不是sql数据库文件的后缀。(C)A..mdfB..ldfC..tif D..ndf3. 每个数据库有且只有一个(A)A、主要数据文件B、次要数据文件C、日志文件 D、索引文件4. 在MSSQLServer中,关于数据库的说法正确的是(D)A、一个数据库可以不包含事务日志文件B、一个数据库可以只包含一个事务日志文件和一个数据库文件C、一个数据库可以包含多个数据库文件,但只能包含一个事务日志文件D、一个数据库可以包含多个事务日志文件,但只能包含一个数据库文件5. 以下名称中,(ABC)是SQLSERVER2005的系统数据库名:A.masterB.modelC.tempdbD.AdventureWorks6. 一个SQLSERVER2005数据库至少有2个数据库文件,其文件扩展名分别是(AC)A.mdfB.ndfC.ldf7. 下列正确的标识符有(BDE)A.mytableB.my_tableC.123D.[123]E.table18. 一个数据库至少有1个文件组,这个文件组名是(B)A.mainB.primary9. 删除数据库使用(B)语句。A.alterdatabaseB.dropdatabase10. 使用(B)方法,可以使数据库物理存储扩展到多个不同的物理或逻辑盘区。A.无需使用什么方法,数据库可自行实现物理存储扩展B.为数据库创建多个数据文件,这些数据文件的位置分别在多个不同的物理或逻辑盘区中11. 创建SQLServer2005的用户数据库时,最多不能超过(D)个。A.100B.40000C.20D.3000012. SQLServer2005数据库文件有3类,其中主数据文件的后缀为(C)。A..ndfB..ldfC..mdfD..idf13. SQLServer2005中每个数据文件的基本存储单位的大小是(A)。A.8KBB.8060BC.64KBD.512B14. 用于决策支持的数据库称为(A)数据库。A.OLAPB.OLTPC.系统D.用户15. 以下关于数据存储的描述错误的是(C)。A.所以数据库都有一个主要数据库文件(.mdf)B.创建数据库时,会将model数据库复制到新数据库C.同一行的数据可以随意存储在不同的页上D.一个数据库中每1兆字节的空间能存储128个页二、简答题16. 简述系统数据库master,msdb,model,tempdb的功能答:Master数据库:是SQLServer系统最重要的数据库,记录了SQLServer系统的所有系统信息。Master数据库还记录了所有其他数据库的存在、数据库文件的位置以及SQLServer的初始化信息。msdb数据库:是代理服务数据库,为其报警、任务调度和记录操作员的操作提供存储空间。model数据库:用于在SQLServer实例上创建所有数据库的模板。Tempdb数据库:是一个为所有的临时表、临时存储过程及其他临时操作提供存储空间的临时数据库。SQLServer每次启动时,tempdb数据库被重新建立。当用户与SQLServer断开连接时,其临时表和存储过程自动被删除。Tempdb数据库由整个系统的所有数据库使用,不管用户使用哪个数据库,所建立的所有临时表和存储过程都存储在tempdb上。17. 简述SQLServer2005中文件组的作用和分类答:主要作用:1、对于大型数据库,如果硬件设置上需要多个磁盘驱动器,就可以把特定的对象或文件分配到不同的磁盘上,将数据库文件组织成用户文件组。2、文件组可以帮助数据库管理人员执行相应的数据布局,以及某些管理任务。3、利用文件组,可以在特定的文件中定位特定的对象,从而将频繁查询修改的文件分离出来,以提高磁盘驱动器的效率,减少磁盘驱动器的争用。4、为便于分配和管理,可以将数据库对象和文件一起分成文件组。文件组有两种类型:1、主文件组。2、用户定义文件组。简述收缩数据库的作用以及在SQLServerManagementStudio中收缩数据库的步骤答:作用:当系统为数据库分配的磁盘空间过大时,可以收缩数据库,以节省存储空间。数据文件和事务日志文件都可以进行收缩。数据库也可设置为按给定的时间间隔自动收缩。该活动在后台进行,不影响数据库内的用户活动。19. 说明数据库中事务日志文件与数据文件的不同点答:数据库事务日志文件保存用于恢复数据库的日志信息;数据文件包含的是数据和对象。20. 在SQLServer2005中,数据库对象包括哪些对象,列出其中5种。答:表、索引、触发器、视图、键、约束、默认值、规则、用户定义数据类型、存储过程第三章习题选择题:1. 以下哪种类型不能用作表列的数据类型?(D)A.tinyintB.timestampC.xmlD.cursor2. 以下关于表列数据类型的描述中,(A)是正确的。A.float是浮点数。B.decimal是精确小数。C.decimal和float都是精确小数。3. 以下关于表列数据类型的描述中,(B)是正确的。A.bit类型的值只有两个,即0、1。B.tinyint类型的值大于等于0,小于等于255。C.存储一个int类型的数占2个字节。 4. 为表列定义哪些约束,可以防止向该列中输入重复值(AC)。A.主键约束。B.外键约束。C.唯一约束。5. 不允许向表的主键列中输入(AB)。A.NULL。B.重复值。C.默认值。6. 定义check约束,限制性别列的取值必须是“男”或“女”。以下哪个约束表达式是正确的?(C)A.性别=='男'or性别=='女'B.性别='男'and性别='女'C.性别='男'or性别='女'D.性别in('男','女')7. 以下哪个关键字用来定义记录在某属性上的约束条件(CD)ADEFAULTBDISTINCTCUNIQUEDCHECK8. 在创建表的过程中,哪个关键字用来定义默认值(D)A.DISTINCTB.UNIQUEC.CHECKD.DEFAULT9. 假定有一个用户表,表中包含字段:userid(int)、username(varchar)、password(varchar)、等,该表需要设置主键,以下说法正确的是(B)。A.如果不能有同时重复的username和password,那么username和password可以组合在一起作为主键。B.此表设计主键时,根据选择主键的最小性原则,最好采用userid作为主键。C.此表设计主键时,根据选择主键的最小性原则,最好采用username和password作为组合键。D.如果采用userid作为主键,那么在userid列输入的数值,允许为空。10. 若要删除book表中所有数据,以下语句错误的是(C)。A.truncatetablebookB.delete*frombookC.droptablebookD.deletefrombook11. 关于Truncatetable,以下(AD)描述是错误的。A.Truncatetable可跟Where从句,根据条件进行删除B.Truncatetable用来删除表中所有数据C.触发器对Truncatetable无效D.delete比Truncatetable速度快12. 创建一个名为‘Customers’的新表,同时要求新表中包含表‘clients’的所有记录,sql语句是(A)。A.Select*intocustomersfromclientsB.SelectintocustomersfromclientsC.Insertintocustomersselect*fromclientsD.Insertcustomersselect*fromclients13. 关于主键,以下(D)说法是错误的。A.主键可以用来确保表中不存在重复的数据行。B.一个表必须有一个主键。C.一个表只能有一个主键。D.只能对整数型列设置主键。14. 限制输入到列的值的范围,应使用(A)约束。A.CHECK B.PRIMARYKEYC.FOREIGNKEY D.UNIQUE15. 关于数据库关系图下列哪一个是正确的(B)。A.关系图是在同一个表中不同字段之间建立关联B.关系图是表与表之间建立关联,与字段无关C.关系图是在不同表中的字段之间建立关联D.关系图是在不同数据库之间建立关联填空题16. 表是由行和列组成的,行有时也称为记录,列有时也称为字段或域。17. SQLServer完整性约束包括域完整性、实体完整性、参照完整性和用户定义完整性。18. 在下面的createtable语句中,计算列是(pingjun)。createtablet1(xhchar(3),xmvarchar(8),yuwendecimal(4,1),yingyudecimal(4,1),shuxuedecimal(4,1),pingjunasyuwen+yingyu+shuxue)19. 在下面的createtable语句中,id是标识列(即自动编号列)。其中,标识种子和标识增量都是(1)。createtablet2(idbigintidentity(1,1),snochar(3),snamevarchar(8),scoredecimal(4,1),emailvarchar(30),phonevarchar(18))20. 使用SQL语句创建一个班级表CLASS,属性如下:CLASSNO,DEPARTNO,CLASSNAME;类型均为字符型;长度分别为8、2、20且均不允许为空。CREATETABLECLASS(CLASSNOCHAR(8)NOTNULL,DEPARTNOCHAR(2)NOTNULL,CLASSNAMECHAR(20)NOTNULL)简答题SQLServer2005数据类型中用varchar(max)取代TEXT有意义吗?
可以保证良好的向后兼容SQLServer2005的表有哪几种?
按用途分类:系统表、用户表、分区表按表的存储时间分类:永久表、临时表标识列和计算列有什么用?编写一个用到这两种列的CREATETABLE语句。答:设计数据表时都会给表ID添加一个标识列,使表按照递增规则增长,故标识列也称为自增列。标识列有三种特点:列的数据类型必须是不带小数的数值类型;在进行出入操作时,该列得值是由系统统一按规律生成,不允许有空值;列值不重复,每个表只能有一个标识列。计算列区别于需要我们手动或者程序给予赋值的列,它的值来源于该表中其它列的计算值。比如,一个表中包含有数量列Number与单价列Price,我们就可以创建计算列金额Amount来表示数量*单价的结果值,创建Amount列后,在程序中需要使用计算金额这个值时,就不用取出Number列与Price列的值后相乘,而是直接取Amount列的值就可以了。Createtablescore(Snonchar(9),Cnonchar(6),Usuallynumeric(4,1),Finalnumeric(4,1),CONSTRAINTPK_scoreprimarykey(Snoasc,Cnoasc),CONSTRAINTfk1foreignkey(Sno)referencesstudent(Sno),CONSTRAINTfk2foreignkey(Cno)referencescourse(Cno),)第四章习题填空题1. 语句selectascii('D'),char(67)的执行结果是68C。2. 语句selectlower('Beautiful'),rtrim('我心中的太阳')的执行结果是:beautiful我心中的太阳。3. 语句selectday('2004-4-6'),len('我们快放假了.')的执行结果是:__6_7_。4. 语句selectround(13.4321,2),round(13.4567,3)的执行结果是:_13.4313.457。5. T-SQL语言中,有算术运算、字符串连接运算、比较运算和逻辑运算。6. 语句SELECT(7+3)*4-17/(4-(8-6))+99%4的执行结果是35。7. SQLServer聚合函数有最大、最小、求和、平均和计数等,它们分别是MAX、MIN、SUM、avg和count。8. SQLServer以_____#____开头的标识符,表示临时表或过程;局部变量名字必须以____@_____开头,而全局变量名字必须以@@开头。9. 语句selectchar(65),len('我们快放假了.')的执行结果是A7。10. 语句selectlower('beautiful'),rtrim('我心中的太阳')的执行结果是:beautiful我心中的太阳____________。阅读程序,说明它的功能:在数学成绩管理数据库中查询年龄为20,性别为女的姓名,性别和年龄use教学成绩管理数据库select姓名,性别,年龄=datediff(year,出生日期,getdate())from学生信息表where(datediff(year,出生日期,getdate())=20)and(性别='女')11. 如下代码段的输出是__579___。DECLARE@xint,@yfloatselect@x=123,@y=456SELECT@x+@y12. 以下代码段的输出结果为pass____。DECLARE@pointASintSet@point=95IF@point>=60select'pass'ELSEselect'nopass'13. 以下代码段的输出结果为中等Set@point=75SELECTCASEWHEN@point>=90THEN'优秀'WHEN@point>=80THEN'良好'WHEN@point>=70THEN'中等'WHEN@point>=60THEN'及格'ELSE'不及格'ENDAS'分数等级'选择题14. Select语句中用来连接字符串的符号是_A_.A.“+”B.“&”C.“||”D.“|”15. SQLServer数据库对象的完整名称由4部分组成。以下哪种是正确的?(B)A.服务器名.架构名.数据库名.对象名 B.服务器名.数据库名.架构名.对象名C.数据库名.服务器名.架构名.对象名16. 语句“useteaching”的作用是什么?(B)A.打开数据库teachingB.使用数据库teachingC.关闭数据库teaching17. .语句“selectDatepart(mm,getdate())”的输出结果及其类型为(A)A.当前月份、整型B.当前月份、字符型C.当前月份的英文名、字符型18. .语句“selectDatediff(year,'1990-5-1','2012-5-1')”的输出结果为(A)A.22B.-2219. 语句“selectfloor(99.5),round(99.457,1)”的输出结果为(B)A.10099.4B.9999.5C.10099.520. 语句“selectSubstring('王晓宇',2,2)”的输出结果为(A)A.晓宇B.晓C.王晓宇21. 下面哪个不是SQLServer的合法标识符(B)。A.a12B.12aC.@a12 D.#qq22. SQL语言中,不是逻辑运算符号的是(D)。A.ANDB.NOTC.OR D.XOR23. 下面哪个函数是属于字符串运算的(C)。A.ABSB.SINC.STRD.ROUND24. 下面关于SQLServer中变量的操作正确的是(D)。 A. DECLARE@namevarchar(8)SET@name='lkl'print'姓名是'+@name B. DECLAREnamevarchar(8)SETname='lkl'print'姓名是'+name C. print@@VERSIONAS'版本',,应该用“+”@@SERVERNAMEAS'服务器' D. SELECT@@VERSIONAS'版本',@@SERVERNAMEAS'服务器'简答题自定义函数主要有分哪两类其返回值有什么区别
答:标量函数、表值函数。标量函数返回单个值,表值函数返回单个表。Transact-SQL给变量赋值的语句有哪些输出变量值的语句有哪些
答:set和selectselect简述Transact-SQL的各个聚合函数的用途。答:聚合函数用于对一组值进行计算并返回一个单一的值。除count函数之外,聚合函数忽略空值。聚合函数经常与select语句的groupby子句一同使用。聚合函数的作用是在结果集中通过对被选列值的收集处理,返回一个数值型的计算结果。Transact-SQL语句共分几类?答:数据定义语言、数据操纵语言、数据控制语言、控制流语言。第五六章习题选择题1. SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示(C)A.零个字符B.1个字符串C.多个字符串D.以上都是2. 使用空值查询是,表示一个列RR不是空值的表达式是(D)A.RRISNULLB.RR=NULLC.RR<>NULLD.RRISNOTNULL3. 下面聚集函数中哪个只能用于计算数值类型的数据(D)A.COUNT()B.MIN()C.MAX()D.SUM()还有一个AVG()4. 以下哪一个不是逻辑运算符(D)A.NOTB.ANDC.ORD.IN5. 以下(B)语句从表TABLE_NAME中提取前10条记录。A.select*fromTABLE_NAMEwhererowcount=10B.selectTOP10*fromTABLE_NAMEC.selectTOPof10*fromTABLE_NAMED.select*fromTABLE_NAMEwhererowcount<=106. 现有表book,字段:id(int),title(varchar),price(float);其中id字段设为标识,使用insert语句向book表中插入数据,以下语句错误的是(CD)。A.insertintobook(id,title,price)values(1,'java',100)B.insertintobook(title,price)values('java',100)C.insertintobookvalues('java',100)这辆都不可以啊,如果不指定列需要明确的给出空值D.insertbookvalues('java',100)7. 查询student表中的所有非空email信息,以下语句正确的是(D)。A.Selectemailfromstudentwhereemail!=nullB.SelectemailfromstudentwhereemailnotisnullC.Selectemailfromstudentwhereemail<>nullD.Selectemailfromstudentwhereemailisnotnull8. 关于聚合函数,以下说法错误的是(B)。A.Sum返回表达式中所有数的总合,因此只能用于数字类型的列。B.Avg返回表达式中所有数的平均值,可以用于数字型和日期型的列。C.Max和Min可以用于字符型的列。D.Count可以用于字符型的列。9. 使用以下(A)不可以进行模糊查询。A.ORB.NotbetweenC.NotIND.Like10. 语句:select*fromstudentswhereSNOlike‘010[^0]%[A,B,C]%’,可能会查询出的SNO是(AD)。(选择两项)A.01053090A#Hm3?//[^0]表示不可以为0B.01003090A01C.01053090D09D.0101A0111. 查询毕业学校名称与“清华”有关的记录应该用(D)。A.SELECT*FROM学习经历WHERE毕业学校LIKE’*清华*’B.SELECT*FROM学习经历WHERE毕业学校=’%清华%’C.SELECT*FROM学习经历WHERE毕业学校LIKE’清华’
D.SELECT*FROM学习经历WHERE毕业学校LIKE’%清华%’12. 假定表table1中phone列有空值,则selectcount(*)fromtable1与selectcount(phone)fromtable1相等吗
BA.相等B.不相等填空题13. 声明一个名为CRSCOURSE的游标,并利用游标遍历,显示整个结果集。USEXKDECLARE@COUNOVARCHAR(3),@COUNAMEVARCHAR(20)___declareCRSCOURSE______________________FORSELECTCOUNO,COUNAMEFROMCOURSEORDERBYCOUNO_____OPENCRSCOURSE____________________FETCHNEXTFROMCRSCOURSEINTO@COUNO,@COUNAMEWHILE@@FETCH_STATUS=0BEGINPRINT’课程号:’+@COUNO+’课程名称:’+@CouNameFETCHNEXTFROMCRSCOURSEINTO@COUNO,@COUNAMEEND____CLOSECRSCOURSE_____________________DEALLOCATECRSCOURSSE14. leftjoin运算是___左连接__________。15. SELECT语句的基本格式如下:SELECTselect_list[INTOnew_table][FROMtable_source][WHEREsearch_condition][GROUPBYgroup_by_expression][HAVINGsearch_condition][ORDERBYorder_expression[ASC|DESC]](1)SELECT语句的各个子句书写的是否有先后顺序要求?是(2)WHERE子句作用是数据过滤;GROUPBY子句作用是按某一列或多列进行的值分组,值相等的为一组;HAVING子句作用是对分组进行筛选;ORDERBY子句作用是对查询结果,按某一个或多个属性列的升序(ASC)或降序(DESC)排序;16. 操作Transact-SQL游标使用的语句有:定义游标使用(DECLARE)语句;打开游标使用(OPEN)语句;移动游标取得一条记录使用(FETCH)语句;关闭游标使用(CLOSE)语句。简答题17. 什么是动态游标什么是静态游标
动态:定义一个游标,以反应在滚动游标时对查询结果集内的各行所做的所有数据更改静态:定义一个游标,以创建将由该游标使用的数据的临时复本,不反应对基本所做的更改第七章判断题1. SQLServer自动为primarykey约束的列建立一个索引。(对)填空题2. ____试图____是由一个或多个数据表(基本表)或视图导出的虚拟表。3. 索引的类型有_唯一、聚集________和非聚集索引。选择题4. SQL的视图是从(C)中导出的。A.基本表B.视图C.基本表或视图 D.数据库5. 使用索引下列哪个说法是正确的(B)。A.节省磁盘空间B.缩短查询时间C.在执行插入、修改、删除时节省时间D.与表无关6. 关于视图下列哪一个说法是错误的(B)。A.视图是一种虚拟表B.视图中也存有数据C.视图也可由视图派生出来D.视图是保存在数据库中的SELECT查询7. 索引是依附于表而存在的,建立索引的目的是(A)A.提高查询表中数据的速度B.建立聚集索引可以使表中的记录按索引关键字的顺序排列C.提高表的安全性8. SQLServer中索引分为哪三类(
)这个有待商议A.主键索引B.复合索引C.唯一索引D.普通索引9. 建立视图的目的是(BC)A.提高查询数据的速度B.提高数据库安全性C.简化复杂查询10. 在SQLServer2005中,索引的顺序和表中记录的物理顺序相同的索引时(C)。A.主键索引B.非聚集索引C.聚集索引D.唯一索引11. 下面对索引的相关描述正确的是(D)。//不确定A.经常被查询的列不适合建索引B.小型表适合建索引C.有很多重复值的列适合索引值D.是外键或主键的列不适合建索引12. 在使用CREATEINDEX命令创建索引时,FILLFACTOR选项定义的是(A)。A.填充因子B.误码率C.冗余度D.索引页的填充率13. 对视图的描述错误的是(D)。A.视图是一张虚拟表B.视图定义包含TOP子句时才能设置排序规则C.可以像查询表一样查询视图D.被修改的视图只能引用一个基表的列14. WITHCHECKOPTION属性对视图有(A)。A.进行检查约束B.进行删除监测C.进行更新监测D.进行插入监测简答题15. 按照索引的存储结构划分,索引分为哪几种按照是否允许在索引列中输入重复值,索引分为哪几种
存储结构:聚集和非聚集,是否允许重复:唯一和非唯一16. SQLSERVER对在视图上进行INSERT、UPDATE、DELETE操作,主要有哪些限制?
在进行插入操作时:用户必须具备插入数据的相关权限试图只能引用一个基表的列试图所包含的列必须直接引用表列中的基础数据,不能通过聚合函数或计算等方式派生Insert语句不允许为空值必须符合在相关列上定义的约束条件试图中不能包含DISTINICT,GROUPBY或HAVING子句在试图定义中使用了WITHCHECKOPTION,插入时将检查是否符合定义视图中SELECT语句所设置的条件在更新时:修改视图中的数据时,不能同时修改两个或多个基表当视图来自多个基表时,通常只能对非主属性进行修改试图中被修改的列必须直接引用基表中的列,不能通过聚合函数或计算等方式派生在删除时:试图只能引用一个基表的列,且删除操作必须满足基表中定义的约束条件第八章习题选择题1. 以下描述不正确的是(D)A.存储过程能够实现较快的执行速度。B.内嵌表值型函数相当于一个带参数的视图。C.不指定所有者时,调用标量函数会出错。D.可以通过视图更改任意基表2. 在MSSQLServer中,用来显示数据库信息的系统存储过程是(D)。A.sp_dbhelpB.sp_dbC.sp_help D.sp_helpdb3. 触发器可以创建在(AC)中。A.表B.过程C.数据库D.函数4. 以下触发器是当对[表1]进行(D)操作时触发。CreateTriggerabcon表1Forinsert,update,deleteAs……A.只是修改B.只是插入C.只是删除D.修改、插入、删除5. 执行带参数的过程,正确的方法为(A)。A.过程名参数B.过程名(参数)C.过程名=参数D.A,B,C三种都可以6. 执行带参数的过程,正确的方法为(A)。A.过程名参数B.过程名(参数)C.过程名=参数D.A,B,C三种都可以7. 触发器可引用视图或临时表,并产生两个特殊的表是(A)。A.Deleted、Inserted B.Delete、InsertC.View、Table D.View1、table18. 在SQLServer数据库中,下面调用存储过程的语句错误的是(B)。 A. EXECproc_stu@sumOUTPUT,64,78 B. EXECproc_stu@sumOUTPUT,@totaloutput,78 C. EXECproc_stu@sumOUTPUT,604 D. EXECCalculate@sumOUTPUT,@totaloutput9. 在SQLSERVER中,声明并创建以下存储过程,正确调用该存储过程的的语句是(BC)。CREATEPROCEDUREPRO@passNumintOUTPUT,@passPointint=60ASSelect@passNum=count(*)FromstuTableWherepoint>@passPointGO A. Declare@sumintEXECPRO@passNum,70 B. Declare@sumintEXECPRO@sumoutput,70 C. Declare@sumintEXECPRO@sumoutput D. EXECPRO7010. 在SQLServer中,创建如下存储过程:createprocstu_exam@writtenExamint=null as if@writtenExamisnull begin print'请输入笔试成绩及格线' return end select*fromstudentwherestu_idin (selectstu_idfromstu_marks wherewrittenExam>@writtenExam)GO下列选项正确的是(C)。 A. 执行EXECstu_exam语句,控制台显示所有笔试成绩及格的学生信息记录集 B. 存储过程(stu_exam)代码存在语法错误 C. 执行EXECstu_exam语句,控制台显示“请输入笔试成绩及格线” D. 执行EXECstu_exam75语句,控制台显示“请输入笔试成绩及格线”11. 在SQL语言中,如果要建立一个工资表包含职工号,姓名,职称。工资等字段。若要保证工资字段的取值不低于800元,最合适的实现方法是:(B)A.在创建工资表时为”工资“字段建立缺省B.在创建工资表时为”工资“字段建立检查约束C.在工资表建立一个触发器D.为工资表数据输入编写一个程序进行控制12. 你是一个出版公司的数据库开发人员,对特定的书名的每天的销售情况建立了如下的存储过程:CREATEPROCEDUREget_sales_for_titletitlevarchar(80),@ytd_salesintOUTPUTASSELECT@ytd_sales=ytd_salesFROMtitlesWHEREtitle=@titleIF@@ROWCOUNT=0RETURN(-1)ELSERETURN(0)另外建立了一个脚本执行这个存储过程,如果执行成功,将返回对应于书名的每天的销售情况的报表,如果执行失败,将返回“NoSalesFound”,怎样建立这个脚本(C)A.DECLARE@retvalintDECLARE@ytdintEXECget_sales_for_title‘NetEtiquette’,@ytdIF@retval<0PRINT‘Nosalesfound’ELSEPRINT‘Yeartodatesales:’+STR(@ytd)GOB.DECLARE@retvalintDECLARE@ytdintEXECget_sales_for_title‘NetEtiquette’,@ytdOUTPUTIF@retval<0PRINT‘Nosalesfound’ELSEPRINT‘Yeartodatesales:’+STR(@ytd)GOC.DECLARE@retvalintDECLARE@ytdintEXECget_sales_for_title‘NetEtiquette’,@retvalOUTPUTIF@retval<0PRINT‘Nosalesfound’ELSEPRINT‘Yeartodatesales:’+STR(@ytd)GOD.DECLARE@retvalintDECLARE@ytdintEXEC@retval=get_sales_for_title‘NetEtiquette’,@ytdOUTPUTIF@retval<0PRINT‘Nosalesfound’ELSEPRINT‘Yeartodatesales:’+STR(@ytd)GO13. 假定你是一个保险公司的数据库开发人员,公司的保单信息存储在SQLServer2000数据库中,你使用以下脚本建立了一个名为Policy的表:CREATETABLEPolicy(PolicyNumberintNOTNULLDEFAULT(0),InsuredLastNamechar(30)NOTNULL,InsuredFirstNamechar(20)NOTNULL,InsuredBirthDatedatetimeNOTNULL,PolicyDatedatetimeNOTNULL,FaceAmountmoneyNOTNULL,CONSTRAINTPK_PolicyPRIMARYKEY(PolicyNumber))13.每次公司销售出一份保单,Policy表中就增加一条记录,并赋予其一个新的保单号,你将怎么做(
A)A.建立一个INSTEADOFINSERT触发器来产生一个新的保单号,并将这个保单号插入数据表中。B.建立一个INSTEADOFUPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。C.建立一个AFTERUPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。D.用AFTERUPDATE触发器替代DEFAULT约束条件产生一个新的保单号,并将这个保单号插入数据表中。14. .SQLServer存储过程分为三类,包括(ABD)A.系统存储过程B.扩展存储过程C.数据库存储过程D.用户自定义存储过程15. DDL触发器分为两种,包括(AB)A.服务器触发器B.数据库触发器C.表触发器16. 按触发操作的不同,DML触发器分为(BCD)A.select触发器B.insert触发器C.update触发器D.delete触发器17. 按触发后是否代替标准操作,DML触发器分为(B)A.after触发器B.insteadof触发器C.alter触发器判断题18. 创建存储过程必须在企业管理器中进行。(F)19. 触发器主要是通过表操作事件进行触发而被执行的。(T)20. 删除表时,表中的触发器被同时删除。(T)21. 创建触发器的时候可以不是表的所有者或数据库的所有者。(F)填空题22. 使用SQL语句在XK数据库中创建一个名为P_STUDENT的存储过程,该存储过程返回“STUDEND”表中所有班级代码为200000001的记录。USEXKCREATE_PROCEDURE_P_STUDENTASSELECT*__FROM_STUDENTWHERECLASSNO=’20000001’23. 创建触发器TEST,要求每当在STUDENT表中修改数据时,将向客户端显示一条“记录已修改”的消息。USEXKCREATETRIGGER_ONSTUDENTAFTER__UPDATE__ASPRINT‘记录已修改’24. ___存储过程______是已经存储在SQLServer服务器中的一组预编译过的Transact-SQL语句。25. 触发器定义在一个表中,当在表中执行__insert__、_update__或delete操作时被触发自动执行。简答题:26. 阅读程序,说明它功能use成绩数据库Ifexists(selectnamefromsysobjectsWherename=’student_inf’andtype=’p’)Dropprocedurestudent_infGoCreateprocedurestudent_infoasSelect学号,姓名,总学分fromxsqk程序功能;检查在系统表sysobjects中有没有名为student_inf的存储过程,如果有则删除该存储过程;再创建一个存储过程命名为student_info;该存储过程的功能是从xsqk表中选出学号、姓名、总学分来显示。27. 阅读程序,说明它功能use成绩数据库CREATETRIGGERabcON[dbo].[XSCJ]FORUPDATEASifupdate(成绩)updatexscjsetxscj.学分=(select学分fromxskcwheredeleted.课程号=xskc.课程号)fromxscj,xskc,deletedwherexscj.成绩>=60anddeleted.学号=xscj.学号anddeleted.课程号=xscj.课程号程序功能:在XSCJ表中创建一个名为abc的触发器;在该表进行更新后,检查表中成绩列是否更新,若更新则将该科成绩大于60分的学生的该科学分设置为从课程表中获得该科的学分。28. 什么是存储过程使用存储过程的好处有哪些为什么存储过程要比单纯的Sql语句执行起来要快答:SQLServer2005中存储过程用于完成某项任务的Transact-SQL语句,它可以接受参数、返回数值和状态值。使用存储过程的好处:(1)提供了SQLServer服务器处理复杂任务的能力。(2)增强了Transact-SQL语句代码的重用性的能力。(3)减少了网络中数据的流量。(4)加快了SQLServer系统的运行速度。(5)加强了SQLServer系统的安全性。存储过程只需要编译一次后运行这个存储过程就不需要在编译了但是SQL语句每次都需要编译。在程序里使用存储过程减少网络传输量。29. 一个存储过程需要修改但又不希望影响现有的权限,应使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年饰品商铺租赁与品牌合作与市场拓展合同3篇
- 2025版互联网数据中心相关方环境管理协议3篇
- 二零二五版钢筋焊接工艺用工合同模板范文2篇
- 二零二五版模具维修改型与产业融合合同4篇
- 2025年道路工程质量检测与验收合同3篇
- 2025年度个人股份代持及转让法律文件3篇
- 2025年度采矿权出让合同范本:矿产资源勘查开发技术规范3篇
- 2025年度冰箱智能互联技术合作协议3篇
- 二零二五年度新能源用地抵押借款合同3篇
- 二零二五版定制家具销售与售后服务协议7篇
- 2024年社区警务规范考试题库
- 2024年食用牛脂项目可行性研究报告
- 消防安全隐患等级
- 温室气体(二氧化碳和甲烷)走航监测技术规范
- 部编版一年级语文下册第一单元大单元教学设计
- 《保单检视专题》课件
- 北京地铁13号线
- 2023山东春季高考数学真题(含答案)
- 职业卫生法律法规和标准培训课件
- 高二下学期英语阅读提升练习(二)
- 民事诉讼证据清单模板
评论
0/150
提交评论