版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQLServer数据库管理与开发PAGE12PAGEPAGE1SQLSERVER数据库管理与开发参考答案TOC\o"1-4"\h\z\u1章习题参考答案 12章习题参考答案 33章习题参考答案 54章习题参考答案 75章习题参考答案 106章习题参考答案 127章习题参考答案 168章习题参考答案 199章习题参考答案 2410章习题参考答案 26
1章习题参考答案1.选择题(1)()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。A.DBMS B.DB C.DBS D.DBA正确答案:A(2)()数据库是被长期存放在计算机内的、有组织的、统一管理的相关数据的集合。A.DATA B.INFORMATION C.DB D.DBS正确答案:C(3)数据库应用系统是由数据库、数据库管理系统(及其开发工具)、应用系统、()和用户构成。A.DBMS B.DB C.DBS D.DBA正确答案:D(4)目前()数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最为流行的商用数据库系统。A.关系 B.面向对象 C.分布正确答案:A2.填空题(1)目前最常用的数据库模型有_______、_______和_______。20世纪80年代以来,_______逐渐占主导地位。答案:层次模型、网状模型、关系模型;关系模型(2)数据库三个要素是_______、_______和_______。答案:数据结构、数据操作、完整性约束(3)数据库系统体系结构的三级模式是:________、________、__________,而两级映像是:__________/__________、________/_____________)答案:内部级(内模式)、概念级(模式)、外部级(外模式),外模式/模式映像、模式/内模式映像。(4)关系运算主要有________、________、________。答案:选择运算、投影运算、连接运算(5)选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割。答案:水平、垂直(6)完整性约束包括____________、____________和用户定义完整性。答案:实体完整性、参照完整性(7)一个关系数据模型的逻辑结构是________,它由______和______组成。答案:二维表、行、列(8)关系数据库的操纵主要包括________、________、________和________数据。答案:查询、插入、删除和更新数据(9)从最终用户角度来看,数据库应用系统分为单用户结构、__________、__________、______________和浏览器/服务器结构。答案:主从式结构、分布式结构、客户/服务器结构3.简答题(1)什么是数据库管理系统?它的主要功能是什么?答案:DBMS是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。包括数据库的建立、查询、更新及各种数据控制。功能:数据定义、数据操纵、数据库运行管理、数据库的建立和维护(2)常用的三种数据库模型的数据结构各有什么特点?答案:层次模型用树形结构表示各类实体以及实体间的联系;网状模型是用一个网络图表示各类实体以及实体间的联系;关系模型用二维表格结构表示实体集,用键来表示实体间联系。(3)简述关系的含义及性质。答案:关系是笛卡尔积的有意义的子集,用二维表格表示;关系的性质如下:关系表中的每一列都是不可再分的基本属性;表中的各属性不能重名;表中的行、列次序不分前后;表中的任意两行不能完全相同。2章习题参考答案1.选择题⑴数据库设计中的概念结构设计的主要工具是()。A.数据模型 B.E—R模型C.新奥尔良模型 D.概念模型正确答案:B⑵数据库设计中的逻辑结构设计的任务是把()阶段产生的概念数据库模式变换为逻辑结构的数据库模式。A.需求分析 B.物理设计C.逻辑结构设计 D.概念结构设计正确答案:D⑶一个规范化的关系至少应当满足()的要求。A.一范式 B.二范式C.三范式 D.四范式正确答案:C2.填空题⑴数据库设计的特点是_______和_______。答案:综合性、动态行为设计与静态结构设计分离⑵需求分析阶段常用的调查方法有____、_______、_______、_______和_______等5种。答案:跟班作业、开调查会、业务询问、问卷调查、查阅资料⑶需求分析的主要方法有_______、_______。答案:自顶向下、自底向上⑷概念结构设计的主要策略有_______、_______和_______三种。答案:自顶向下、自底向上、混合策略3.判断题⑴物理设计的主要工作是建立实际数据库结构。(n)⑵最常用的概念结构设计的方法是自底向上的设计策略。(y)⑶编写程序不属于数据库的模式设计阶段。(y)⑷设计好的数据库系统在投入使用后出现问题由使用方负责。(n)4.简答题⑴数据库设计包括哪几个阶段?答案:需求分析阶段概念结构设计阶段逻辑结构设计阶段物理设计阶段⑵试述把E—R图转换成关系模型的规则。答案:①一个实体型转换为一个模式,实体的属性就是关系模式的属性,实体的键即为关系模式的键。②对于实体间的联系,就要视1:1,1:N,M:N三种不同情况做不同的处理。一个1:1的联系,可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系下连的各实体的键以及联系本身的属性均转换为关系的属性,每个实体的键均是该关系的键。如果是与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的键和联系本身的属性。一个1:N的联系,可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体转换成的关系模式的键以及联系本身的属性均转换为关系的属性,而关系的键为N端实体对应的关系模式的键。如果与N端对应的关系模式合并,则在N端实体转换的关系模式中加入1端实体转换成的关系模式的键和联系的属性。一个M:N的联系,则将该联系转换为一个独立的关系模式,其属性为两端实体类型的键加上联系类型的属性,而关系到的键盘为两端实体转换成的关系模式键的组合。(3)什么是数据库规范化理论?它对数据库设计有什么指导意义?答案:所谓关系的规范化,是指一个低一级范式的关系模式,通过投影运算,转化为更高级别范式的关系模式的集合的过程。我们把满足不同程度要求的关系称为不同的范式。关系规范化的基本思想:逐步消除数据依赖中不合适的部分,使关系模式达到一定程度的分离,即“一事一地”的模式设计原则,使概念单一化,即让一个关系描述一个概念、一个实体或者实体间的一种关系。5.简述题现有关于班级、学生、课程的信息如下:描述班级的属性有:班级号、班级所在的专业、入校年份、班级人数、班长的学号。描述学生的属性有:学号、姓名、性别、年龄。描述课程的属性有:课程号、课程名、学分。假设每个班有若干学生,每个学生只能属于一个班,学生可选修多门课程,每个学生选修的每门课程有一个成绩记载。根据语义,画出他们的E-R模型。成绩答案:成绩MNN1MNN1属于学生班级课程选修属于学生班级课程选修3章习题参考答案1填空题(1)SQLServer2000启动SQLServer服务的服务账号有_________和_________账号。本地系统账户、域用户账户(2)SQLServer2000采用的身份验证模式有_________模式和_________模式。Windows身份验证模式和混合模式(3)安装一个用于教学的SQLServer2000数据库服务器,在向导的帮助下,基本上是一路选择_________和单击_________按钮。【下一步】按钮,确定。(4)SQLServer2000最常用的4个工具是________管理器、________管理器_________分析器和联机帮助。企业、服务、查询(5)SQLServer服务管理器用于_________、_________、和暂停服务器上的SQLServer2000组件。服务器,服务器(5)SQLServer企业管理器是一个具有图形界面的综合管理工具,它提供了一个管理控制台的用户界面,具有管理SQLServer_________和注册配置_______,管理SQLServer_________、数据库以及数据表、视图、存储过程、触发器、索引等功能,定义并执行所有SQLServer管理任务,唤醒调用SQLServer定义的各种向导等功能。服务器,服务器,登陆账号和用户(6)SQL查询分析器是一种图形界面的实用工具,可以编写调试T-SQL语句或脚本实现对数据库、表等项目的_________、_________和_________,以及对数据的_________、_________和_________等功能。创建、修改、删除,查询、增加、修改、删除(7)SQL联机帮助文档介绍了关于SQLServer2000的相关的_________和_________。技术文档使用说明2简答题(1)在安装SQLServer2000时,在[服务账户]对话框中,如何进行选择?一般接受默认的选项,输入域的密码,然后点击【下一步】按钮,对于个人而言,如果不是在网络环境,而仅仅是在单独的PC机上使用,应选择[使用本地系统账户]项,然后单击【下一步】按钮。(2)如何启动、停止SQLServer2000服务器?通常情况下,SQLServer是自动启动服务的,并在【任务栏】中显示服务器启动图标。当服务器图标小圆中显示一个右向的三角形时,表示SQLServer已经启动;当服务器图标小圆中显示一个小正方形时,表示SQLServer已经停止,即没有启动。通常情况下,不需要停止SQLServer。但如有必要,也可以手动停止,具体方法如下:a、双击【任务栏】中服务图标,出现SQLServer服务管理器对话框。b、单击对话框中的【停止】按钮,出现提示信息。c、单击提示信息框中的【是】按钮,即可停止SQLServer服务(3)如何注册一个SQLServer2000服务器?在利用SQL管理服务器之前,必须注册一个本地的或远程的服务器,具体步骤如下:a、右键单击一个服务器组或者服务器图标,然后选择【新建SQLServer注册】选项。我们可以通过【注册SQLServer向导】来完成。b、单击【下一步】后,在出现的对话框中添加服务器,然后单击【下一步】按钮。c、在【选择身份验证模式】对话框中根据用户的需要选择验证模式。单击【下一步】按钮。d、在【选择SQLServer组】中,单击一个服务器组。然后单击【下一步】按钮。e、完成注册,系统可能花几分钟时间进行连接,并确认服务器存在以及连接信息有效。(4)如何创建、删除SQLServer2000服务器?创建服务器:a、右键单击一个服务器组或者服务器图标,然后选择【新建SQLServer注册】选项。b、在【选项】下,单击添加(【...】)按钮。c、在【名称】框中,为该新组输入唯一名称。d、根据用户的需要,可以自由选择【顶层组】、【下面项目子组】。如果选择了【下面项目子组】,则需要选择一个希望新组位于其下的顶层组。e、重复以上步骤,创建每个新服务器组。删除服务器:在【控制台根目录】下,展开服务器组,然后展开服务器,我们就可以对服务器进行直接删除,选定你所要删除的服务器,单击右键【删除】,便可直接删除此服务器。
4章习题参考答案1填空题(1)SQLServer2000支持的整数型数据类型包括_________、int、_________、_________,其中int的数值范围为_________。Bigint,smallint,tinyint-21万亿-21万亿(2)SQLServer2000支持的货币型数据类型包括_________、smallmoney,其中smallmoney的数值范围为_________。精确到____分之一。Money,-21万亿-21万亿,万(3)SQLServer2000支持的日期时间型数据类型包括_________、smalldatetime,其中smalldatetime的数值范围为_________。精确到____。Datetime,1900-1-1,2079-12-31,分钟(4)假设表中某列的数据类型为varchar(100),而输入的字符串为“ahng3456”,则存储的字节是________。8(5)SQLServer2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头。@@@(6)在SQLServer2000中,字符串常量由_________引起来,日期型常量由_________引起来。单引号单引号(7)在SQLServer2000中,货币型常量由_________前缀引导,双字节字符串型常量由_________前缀引导,二进制型常量由_________前缀引导。$N0x(8)语句selectfloor(17.4),floor(-214.2),round(13.4382,2),round(-18.4562,3)的执行结果是:_________、_________、_________和_________。17-21513.4400-18.4560(9)语句selectascii('B'),char(67),len('你是tiger')的执行结果是:_________、_________和_________。66C9(10)语句selectupper('beautiful'),lower('BEAUtiful')的执行结果是:____________和___________。BEAUTIFUL,beautiful(11)语句selectreverse(6789),selectreverse('你是狼')的执行结果是:____________和___________。9876狼是你(12)语句selectltrim('我心中的太阳'),rtrim('我心中的月亮')的执行结果是:__________________和____________________。我心中的太阳我心中的月亮(13)语句selectleft('bye',2),right('人活百岁不是梦',5),substring('人活百岁不是梦',3,2)的执行结果是:_________、_____________和_____________。by百岁不是梦百岁(14)语句selectyear('1931-9-18'),month('1937-7-7'1931714_______(15)语句select15/2,15/2.,17%4,'1000'-15,'2000'+15的执行结果是:_________、_________、_________、_________和_________。77.519852015(16)语句SELECT(7+3)*4-17/(4-(8-6))+99%4的执行结果是:_________。35(17)算术运算符有:加(+)、_________、_________、_________和_________。减(-)乘(*)除(/)余(%)(18)常用的比较运算符有:大于(>)、大于等于(>=)、_________、_________、_________和_________,测试两个相同类型表达式的顺序、__________和_________。等于(=)、不等于(<>)、小于(<)、小于等于(<=)大小是否相等(19)T-SQL语言中,有:算术运算、_____________、___________和____________。字符串连接运算、比较运算、逻辑运算(20)T-SQL语言中,有:精确数字类型、_____________、___________、___________和____________。近似数字类型日期时间类型字符串与二进制串特殊类型2简答题(1)在SQL语言中,什么是全局变量?什么是局部变量?变量是由用户定义并可赋值的实体。变量有全局变量和局部变量两种。全局变量由系统定义和维护,名字由@@符号开始。局部变量用DECLARE语句声明,声明时它被初始化为NULL,并由SET语句或SELECT语句赋值,它只能用在声明该变量的过程实体中,即使用范围是定义它的批、存储过程和触发器等。其名字由一个@符号开始。定义局部变量的语法格式:DECLARE局部变量名数据类型[,…n]局部变量赋值的语法格式:SET局部变量名=表达式[,…n]全局变量是SQLServer系统所提供并赋值的变量。用户不能建立全局变量,也不可能使用SET语句去修改全局变量的值。全局变量的名字以@@开头。大部分全局变量的值是报告本次SQLServer启动后发生的系统活动。通常应该将全局变量的值赋给在同一个批中的局部变量,以便保存和处理。(2)Transact-SQL语言中运算符的优先顺序?当一个复杂的表达式有多个运算符时,运算符优先性决定执行运算的先后次序。执行的顺序可能严重地影响所得到的值。运算符有下面这些优先等级。在较低等级的运算符之前先对较高等级的运算符进行求值。当一个表达式中的两个运算符有相同的运算符优先等级时,基于它们在表达式中的位置来对其从左到右进行求值。例如,在下面的示例中,在SET语句中使用的表达式中,在加号运算符之前先对减号运算符进行求值。(见表4.7)3设计题(1)用dateadd函数、算术运算编写求今天100天后日期的查询语句。selectgetdate()+100,dateadd(getdate(),100)(2)用datediff函数、算术运算编写出生日期为:1983-9-30生人的年龄、月龄的查询语句。selectdatediff(year,'1983-9-30',getdate()),datediff(month,'1983-9-30',getdate())(3)设学位代码与学位名称如下表,用case语句编写学位代码转换为名称的程序。代码名称1博士2硕士3学士declare@代码intdeclare@名称nchar(2)set@代码=3set@名称=case@代码when1then'博士'when2then'硕士'when3then'学士'endprint@名称(4)用while循环控制语句编写20!=1*2*3*…*20程序,并由print语句输出。declare@iint,@pbigintset@p=1set@i=1while@i<21beginset@p=@p*@iset@i=@i+1endprint'20!='+str(@p,22)
5章习题参考答案1.选择题答案:(1)C,(2)C(3)A2.填空题(1)SQLSERVER2000在安装过程中创建的________、________、________和msdb4个数据库,________和northwind两个示例数据库。Maser,model,tempdb,pubs(2)SQLServer2000数据库中的所有数据和对象(如表、存储过程、触发器和视图)都存储在文件中。这些文件有三种:主文件(Primary)、次要文件(Secondary)和事务日志文件(TransactionLog)。主文件的扩展名为.MDF次要文件的扩展名为.NDF。日志文件的扩展名为.LDF。3简答题(1)事务日志文件的作用是什么?事务日志文件包含用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。(2)什么是文件组?其作用是什么?文件组允许对文件分组,以便对它们进行管理。比如,可以将三个数据文件(data1.mdf、data2.mdf和data3.mdf)分别创建在三个盘上,这三个文件组成文件组fgroup1,在创建表的时候,就可以指定一个表创建在文件组fgroup1上。这样该表的数据就可以分布在三个盘上,在对该表执行查询时,可以并行操作,大大提高了查询效率。2操作题(1)利用企业管理器创建教学成绩管理数据库。(2)修改教学成绩管理数据库的数据文件和事务日志文件的存放位置。(3)在教学成绩管理数据库中创建以下各表,其结构见第2章。学院信息表(编号,名称,简称,院长,书记)系部信息表(编号,名称,主任,书记)专业信息表(编号,院系编号,名称)教研室信息表(编号,名称,主任)班级信息表(编号,名称,年级,专业编号,人数,学制,班主任,班长,书记)课程信息表(编号,名称,院系编号,学时,学分,类别,考试类型)教师信息表(编号,登录名,姓名,密码,性别,教研室编号,出生日期,工作日期,职称,职务,学历,学位,工资,照片)学生信息表(学号,姓名,密码,性别,出生日期,民族,籍贯,家庭地址,邮政编码,联系电话,身份证号,政治面貌,班级编号,入学日期,备注,简历,照片)班级课程设置表(id,班级编号,教师编号,课程编号,学年学期,学时)教学成绩表(id,学号,课程编号,教师编号,学年学期,成绩,分数,考试类别,考试考查类型,考试日期,录入日期)(4)在教学成绩管理数据库的每个表中输入记录。记录要符合现实意义。(5)向课程信息表中插入一条记录,再删除该表中的第5条记录。(6)修改班级课程设置表中的数据。(7)用T-SQL语句创建表student,结构如下:字段名字段类型范例学号char(10)2002010201姓名varcharc(8)王大力性别char(2)男出生日期smalldatetime1985-11-3民族varcharc(6)汉生源varcharc(10)山西班号tinyint1(8)用T-SQL语句删除表student。(9)用T-SQL语句创建名为TEST的数据库。
6章习题参考答案1填空题(1)在T-SQL中使用SELECT语句来实现数据查询。(2)条件查询是指在数据表中查询满足某个条件的记录。(3)模糊查询是指根据一些并不确切的线索来搜索信息。(4)视图是由一个或多个数据表(基本表)或视图导出的虚拟表。2简答题(1)什么是嵌套子查询?嵌套子查询的执行不依赖于外部嵌套。嵌套子查询的执行过程为:首先执行子查询,子查询得到的结果集不被显示出来,而是传给外部查询,作为外部查询的条件使用,然后执行外部查询,并显示查询结果。(2)什么是相关子查询?相关子查询,是指在子查询中,子查询的查询条件中引用了外层查询表中的属性值。相关子查询的结果集取决于外部查询当前的数据行,这一点是与嵌套子查询不同的。嵌套子查询和相关子查询在执行方式上也有不同。嵌套子查询的执行顺序是先内后外,即先执行子查询,然后将子查询的结果作为外层查询的查询条件的值。而在相关子查询中,首先选取外层查询表中的第一行记录,内层的子查询则利用此行中相关的属性值进行查询,然后外层查询根据子查询返回的结果判断此行是否满足查询条件。如果满足条件,则把该行放入外层查询结果集合中。重复这一过程的执行,直到处理完外层查询表中的每一行数据。3操作题 (1)在教学成绩管理数据库的学生信息表中查询年龄为20岁或22岁的学生use教学成绩管理数据库select姓名,性别,年龄=datediff(year,出生日期,getdate())from学生信息表where(datediff(year,出生日期,getdate())=20)or(datediff(year,出生日期,getdate())=22)(2)在教学成绩管理数据库的学生信息表中查询年龄为20岁或22岁、性别为‘男’的学生use教学成绩管理数据库select姓名,性别,年龄=datediff(year,出生日期,getdate())from学生信息表where((datediff(year,出生日期,getdate())=20)or(datediff(year,出生日期,getdate())=22))and(性别='男')(3)在教学成绩管理数据库的学生信息表中查询年龄大于18岁或小于22岁的学生use教学成绩管理数据库select姓名,性别,年龄=datediff(year,出生日期,getdate())from学生信息表wherenotdatediff(year,出生日期,getdate())between18and22(4)在教学成绩管理数据库的学生信息表中查询学生刘某的姓名、性别和联系电话use教学成绩管理数据库select姓名,性别,联系电话from学生信息表wherertrim(姓名)LIKE'刘_'(5)在教学成绩管理数据库的学生信息表中查询籍贯不在山西的学生的姓名、性别和籍贯use教学成绩管理数据库select姓名,性别,籍贯from学生信息表wherenot籍贯LIKE'山西省%'(6)在教学成绩管理数据库的学生信息表中查询不姓刘也不姓张的学生的姓名、性别和联系电话use教学成绩管理数据库select姓名,性别,联系电话from学生信息表where姓名LIKE'[^刘张]%'(7)在教学成绩管理数据库的学生信息表中查询同姓的学生的姓名use教学成绩管理数据库selectleft(xs1.姓名,1)as姓氏,xs1.姓名,xs2.姓名from学生信息表asxs1join学生信息表asxs2onleft(xs1.姓名,1)=left(xs2.姓名,1)wherexs1.学号<>xs2.学号(8)在教学成绩管理数据库的学生成绩表中查询每个班各门课程的平均成绩,结果按均分降序排列,均分向同案班机编号排列use教学成绩管理数据库select班级编号,名称,avg(分数)均分from教学成绩表asajoin学生信息表asbona.学号=b.学号join课程信息表ascona.课程编号=c.编号groupby班级编号,名称orderbyavg(分数)desc,班级编号asc(9)在教学成绩管理数据库中查询每个学生的班级、学号、姓名、均分,结果按均分降序排列,均分相同者按班级排列use教学成绩管理数据库select班级编号,a.学号,a.姓名,avg(分数)均分from学生信息表asajoin教学成绩表asbona.学号=b.学号groupby班级编号,a.学号,a.姓名orderbyavg(分数)desc,班级编号asc(10)在教学成绩管理数据库中查询学习了900011课程且其分数在该课程均分以上的学生学号、姓名和分数use教学成绩管理数据库select学生信息表.学号,姓名,分数from学生信息表,教学成绩表where课程编号='900011'and学生信息表.学号=教学成绩表.学号and分数>(selectavg(分数)from教学成绩表where课程编号='900011')(11)在教学成绩管理数据库中查询200303班学生的学号、姓名、所学课程名称及分数use教学成绩管理数据库select学生信息表.学号,姓名,名称,分数from学生信息表,教学成绩表,课程信息表where学生信息表.学号=教学成绩表.学号and课程信息表.编号=教学成绩表.课程编号and教学成绩表.学号in(select学号from学生信息表where班级编号='200303')(12)在教学成绩管理数据库中查询学习杜老师所授课程的学生的学号,姓名,课程名称,分数use教学成绩管理数据库SELECT学号,姓名,课程名称,分数FROM学生成绩视图Where教师姓名=’杜老师’(13)建立班级课程成绩统计表视图,其中包括班级编号、课程名称、均分、最高分、最低分use教学成绩管理数据库gocreateview班级课程成绩统计表asselect班级编号,名称as课程名称,avg(分数)均分,max(分数)最高分,min(分数)最低分from教学成绩表asajoin学生信息表asbona.学号=b.学号join课程信息表ascona.课程编号=c.编号groupby班级编号,名称(14)在上题建立的学生成绩视图上建立分数在90分以上的优秀学生成绩视图use教学成绩管理数据库gocreateview优秀教学成绩表asSELECT学号,姓名,教师姓名,课程名称,分数FROM学生成绩视图where分数>=90
7章习题参考答案1填空题(1)是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围。域完整性(2)用于保证数据库中数据表的每一个特定实体的记录都是唯一的。实体完整性(3)有两种方式可以实现数据完整性,即和。声明数据完整性、过程数据完整性(4)数据完整性有四钟类型、、和实体完整性、域完整性、参照完整性、用户定义完整性(5)futureonly_flag仅当将规则绑定到才使用。用户自定义类型(6)复合主键是指要定义为主键的列有个。两个以上或多个(7)在定义约束时可以在定义表的同时定义,也可以在表建好以后,通过来实现。修改表(8)当向表中现有的列上填加主键约束时,必须确保该列数据。无空值和无重复值(9)在现有列上填加CHECK约束,对现有数据不检查,则需要写。withnocheck(10)将规则绑定到列或自定义类型的语法格式为sp_unbindrule[@objname=]‘对象名’[,[@futureonly=]‘futureonly_flag’]2判断题(1)在一个表中如果了定义了主键就不能再在任何列上定义唯一约束(Unique)(n)(2)保证相关表之间数据的一致性,必须在关联表中定义主键和外键。(y)(3)规则必须使用一次就必须定义一次。(n)(4)如果规则当前绑定到某列或用户定义的数据类型,不解除绑定,就能直接删除规则。(n)(5)在表中创建一个标识列。当用户向表中插入新的数据行时,系统自动为该行的IDENTITY列赋值吗?(y)3简答题(1)数据完整性的用途?完整性有哪些类型?数据完整性用于保证数据库中数据的正确性、一致性和可靠性。完整性的类型有实体完整性、域完整性、参照完整性、用户定义完整性。(2)什么是规则?它与CHECK约束的区别在哪里?规则是保证域完整性的主要手段。是对输入到列中的数据所实施的完整性约束条件,它指定可以插入一个列的可接受值,保证数据要么在指定的范围内,要么符合特定的模式,要么是指定的列表中的项。功能和CHECK约束一样。但规则是作为独立的对象定义一次,可在多个对象上使用,而CHECK不是独立的对象,它在创建表或修改表时定义到指定的一列上。(3)为表中数据提供默认值有几种方法?有两种方法。一种是在创建表或修改表时为指定的列定义默认值,一种是创建默认对象,将默认对象绑定到指定的列或用户自定义类型上。(4)定义好的规则和默认使用什么方法对列或用户自定义数据类型起作用?将规则或默认绑定到列或用户自定义数据类型才能起作用。4设计题(1)创建教学成绩表,并建立一个IDENTITY列,种子为200501,递增量为2,并设置该列为主键,不允许为空。ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[教学成绩表]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[教学成绩表]GOCREATETABLE教学成绩表]( IDintIDENTITY(200501,2)PRIMARYKEYNOTNULL, 学号char(6)NOTNULL, 课程编号char(6)NOTNULL, 教师编号char(6)NULL, 学年学期char(11)NOTNULL, 成绩char(10)NOTNULL, 分数numeric(5,1)NULL, 考试类别nchar(4)NOTNULL, 考试考查类型nchar(2)NOTNULL, 考试日期datetimeNOTNULL, 录入日期datetimeNOTNULL)ONPRIMARYGO(2)修改课程信息表,设置课程名称为UNIQUE约束。ALTERTABLE课程信息表addconstraintuq_名称unique(名称)(3)修改课程信息表,设置类别列类型为nchar(14),check约束值只能为('公共基础课','选修课','专业基础课','专业课'),且不允许为空。ALTERTABLE课程信息表ALTERCOLUMN类别nchar(14)goALTERTABLE课程信息表addCONSTRAINTck_类别CHECK(类别IN('公共基础课','选修课','专业基础课','专业课'))(4)修改学生信息表,添加检查约束,限定联系电话的格式为区号0351加7位电话号码,形如(0351)-4720883ALTERTABLE学生信息表ADDCONSTRAINTck_电话CHECK(联系电话LIKE'(0351)-[0-9][0-9][0-9][0-9][0-9][0-9][0-9]’)(5)学生信息表,为列籍贯添加DEFAULT约束,默认值为山西省。ALTERTABLE学生信息表ADDCONSTRAINTdf_籍贯DEFAULT'山西省'FOR籍贯(6)教学成绩表,设置列学号为外键,参照学生信息表的学号列,课程编号外键参照课程信息表的编号列。ALTERTABLE教学成绩表ADDCONSTRAINTfk_学号FOREIGNKEY(学号)REFERENCES学生信息表(学号)GOALTERTABLE教学成绩表ADDCONSTRAINTfk_课程编号FOREIGNKEY(课程编号)REFERENCES课程信息表(编号)(7)创建一个默认,并将其绑定到教学成绩表的成绩列上,默认值为“及格”CREATEDEFAULTchengjiAS'及格'GOEXECsp_bindefault'chengji','教学成绩表.成绩'(8)建一个规则,并将其绑定到学生信息表的政治面貌列上,规定取值为('其他','群众','共青团员','中共党员)之一。CREATERULEmianmao_ruleAS@mianmaoin('其他','群众','共青团员','中共党员')GOSp_bindrule'mianmao_rule','学生信息表.政治面貌'(9)将上面创建的默认和规则绑定解除,然后删除。EXECsp_unbindefault'教学成绩表.成绩'DROPDEFAULTmianmao_ruleGOEXECsp_unbindrule'学生信息表.政治面貌'DROPRULEmianmao_ruleGO(10)定义一个数据类型,练习绑定默认或规则EXECsp_addtypescore,integerEXECsp_bindefault'chengji','score','futureonly'索引部分1填空题(1)索引的类型主要有_聚集索引_和_非聚集索引__。(2)使用DBCCSHOWCONTIG语句,可以显示表的数据和索引的碎块信息。(3)在启动MicrosoftSearch服务后才能使用SQLServer2000的全文检索功能。(4)在SQLServer中一个表的存储是由数据页和索引页两个部分组成的。(5)SQLServer2000的标准版和企业版两个版本提供了全文索引功能。2判断题(1)Y(2)N(3)N(4)Y(5)N3简答题(1)可以大大加快数据的检索速度,这也是创建索引的最主要的原因;通过创建唯一性索引,可以确保数据库表中每一行数据的唯一性;可以加速表和表之间的连接,特别有利于实现数据的参考完整性;在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。(2)创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加;带索引的表在数据库中会占据更多的空间。除了数据表占数据空间之外,每一个索引还要占一定的物理空间;当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就需要花费更多的维护时间,降低了数据的维护速度。(3)对于索引的重建主要有两种方法:一种是用CREATEINDEX语句加DROP_EXISTING参数,删除并重新创建聚集索引。另一种是使用DBCCDBREINDEX语句重建表的一个或多个索引。8章习题参考答案1单项选择题=1\*GB2⑴创建一个用户定义函数Fn1,把一个字段的值设为空值。CREATEFunctionFn1(@字段名char(10))ReturnscharAsbeginset@字段名=NULLReturnEndANULLBCharC@字段名D不填=2\*GB2⑵调用一个名为Fn1的内嵌表值函数函数,正确的方法是。ASelect*from表名BSelectFn1from表名CSelect*fromFn1DSelectFn1from*=3\*GB2⑶触发器可以创建在中。A表B视图C数据库D查询=4\*GB2⑷CreateProcedure是用来创建。A程序B过程C触发器D函数=5\*GB2⑸以下触发器是当对[表1]进行操作时触发。CreateTriggerabcon表1Forinsert,update,deleteAs……A只是修改B只是插入C只是删除D修改、插入、删除=6\*GB2⑹要删除一个名为A1的过程,用命令:ProcedureA1。ADeleteBAlterCDropDExecute=7\*GB2⑺触发器可引用视图或临时表,并产生两个特殊的表和。ADeleted,InsertedBDelete,InsertCView,TableDView1,table1=8\*GB2⑻执行带参数的过程,正确的方法为。A过程名(参数)B过程名参数C过程名=参数DA,B,C三种都可以=9\*GB2⑼当一个过程执行的结果,要返回给一个整型变量时,正确的方法为。A过程名(@整型变量)B过程名@整型变量C过程名=@整型变量D@整型变量=过程名=10\*GB2⑽当上出时,与它关联的触发器也同时被删除。A视图B临时表C过程D表答:=1\*GB2⑴C=2\*GB2⑵C=3\*GB2⑶A=4\*GB2⑷B=5\*GB2⑸D=6\*GB2⑹C=7\*GB2⑺A=8\*GB2⑻B=9\*GB2⑼D=10\*GB2⑽D2填空题=1\*GB2⑴是由一个或多个Transact-SQL语句组成的子程序,可用于封装代码以便重复使用,用来补充和扩展系统支持的。答:自定义函数,内置函数=2\*GB2⑵返回在RETURNS子句中定义的类型的单个数据值。答:标量函数=3\*GB2⑶可用于实现参数化视图的功能,这种类型的函数在使用参数和扩展索引视图方面提供了比更多的灵活性答:内嵌标值函数,视图=4\*GB2⑷要调用自定义函数,要在调用的时候指明函数的和函数的,标量函数函数名出现在子句中,内嵌表值函数函数名出现在子句中。答:拥有者,名称,select,from=5\*GB2⑸是已经存储在SQLServer服务器中的一组预编译过的Transact-SQL语句。答:存储过程=6\*GB2⑹在SQLServer中存储过程分为两类:的存储过程和的存储过程。答:系统提供,用户自定义=7\*GB2⑺是特殊类型的存储过程,它能在任何试图改变中由触发器保护的数据时执行。答:触发器,表=8\*GB2⑻触发器定义在一个表中,当在表中执行、、操作时被触发自动执行答:插入(INSERT),修改(UPDATE),删除(DELETE)=9\*GB2⑼在对数据库的维护和管理等任务中以及在维护数据完整性等方面,存储过程保证操作。触发器可以完成能够完成的功能,但它可以完成更为复杂的检查。,答:一致性,约束3判断题=1\*GB2⑴自定义函数在对任何表的查询中都可以使用。(y)=2\*GB2⑵由于存储过程和函数都是有输入参数的,因此在SELECT查询中也可以调用存储过程。(n)=3\*GB2⑶由于触发器是特殊类型的存储过程,因此它可以在程序中被调用执行。(n)=4\*GB2⑷内嵌表值函数是返回一个Select语句查询结果的表,当这个表被删除时,该函数也同时被删除。(n)=5\*GB2⑸存储过程的输出结果可以传递给一个变量。(y)=6\*GB2⑹用“selectis中文字符串(’计算机系’)”语句,调用[is中文字符串]函数的方法是正确的。(n)=7\*GB2⑺删除触发器,此时原来的触发表以及表中的数据不受影响。(y)=8\*GB2⑻视图具有与表相同的功能,在视图上也可以创建触发器。(n)=9\*GB2⑼触发器与约束发生冲突,触发器将不执行。(y)=10\*GB2⑽在过程中修改表,触发器将不执行。(n)4简答题=1\*GB2⑴自定义函数与存储过程的区别是什么?答:自定义函数有返回值,过程没有返回值=2\*GB2⑵自定义标量函数和内嵌表值函数的区别是什么?答:自定义标量值函数返回一个数据值,内嵌表值函数返回一个查询表=3\*GB2⑶自定义内嵌表值函数与视图的使用有什么不同?答:内嵌标值函数可用于实现参数化视图的功能。这种类型的函数在使用参数和扩展索引视图方面提供了比视图更多的灵活性。=4\*GB2⑷修改一个存储过程和重建一个存储过程哪个更有效率?答:修改一个存储过程效率高,因为修改存储过程不修改权限的授予情况以及不影响任何其他的独立存储过程。=5\*GB2⑸为什么复杂存储过程第二次执行时通常比第一次执行时更快?答:存储过程是已经存储在SQLServer服务器中的一组预编译过的Transact-SQL语句,当第一次执行是要对它进行编译,因此第二次执行时比第一次更快。=6\*GB2⑹存储过程与触发器有什么不同?答:触发器是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。触发器主要通过事件进行触发而被执行,触发器不能直接调用执行,也不能被传送和接受参数,而存储过程可以通过存储过程名被直接调用。触发器与表有关,存储过程与表无关。=7\*GB2⑺请叙述表与触发器的关系,什么时候触发器被触发?答:触发器与表是不能分开的,触发器定义在一个表中,当在表中执行插入(INSERT)、修改(UPDATE)、删除(DELETE)操作时被触发自动执行。当表被删除时与它关联的触发器也一同被删除。5设计题=1\*GB2⑴编写一个自定义函数,根据[学生信息表]中的[出生日期]列,计算年龄。答:CREATEFUNCTIONdbo.计算年龄(@vardatedatetime,@Curdatedatetime)RETURNStinyintASBEGINreturndatediff(yyyy,@vardate,@Curdate)END=2\*GB2⑵编写一个存储过程,输入学号,显示该学生的姓名、课程名、分数。答:CREATEPROCEDURE成绩1@xhchar(6)asselect姓名,课程名称,分数from教学成绩表视图where学号=@xh=3\*GB2⑶编写一个存储过程,修改[课程信息表]中的课程名称,带两个参数:课程编号和修改后的课程名称。答:CREATEPROCEDURE修改课程名@kchchar(6),@kcmvarchar(50)asupdate课程信息表set名称=@kcmwhere编号=@kch
9章习题参考答案1填空题(1)游标(cursor)是允许用户能够从满足条件的记录集中,___________地访问记录,可以按照自己的意愿逐行地______、______或删除这些记录的数据访问处理机制。显示、修改(2)游标的类型有____________和____________、____________和____________。静态游标动态游标只进游标滚动游标(3)游标被打开后,可以用FETCHNEXT、____________、____________、____________、____________和____________语句从该游标集合中移动位置指针并提取一行数据。FETCH
PRIOR、FETCHFIRST、FETCHLAST、FETCHABSOLUTEn、FETCHRELATIVEn(4)事务(Transaction)可以看成是由对数据库干操作组成的一个单元,这些操作要么______,要么________(如果在操作执行过程中不能完成其中任一操作)。都完成都取消(5)事务的ACID属性有____________、____________、__________和__________。原子性、一致性、独立性、持久性(6)在SQLServer™中事务模式有____________、__________和__________。自动提交事务、显式事务和隐性事务(7)用于事务控制中的全局变量有____________、__________和__________。@@rowcount、@@error、@@trancount2判断题(1)能在游标中插入数据记录吗?(n)(2)能在游标中修改数据记录吗?(y)(3)能在游标中删除数据记录吗?(y)(4)在事务中能包含createdatabase语句吗?(n)(5)在事务中能包含createtable语句吗?(n)3简答题(1)什么是游标?游标(databasecursor)是允许用户能够从满足条件的记录集中,逐条逐行地访问记录,可以按照自己的意愿逐行地显示、修改或删除这些记录的数据访问处理机制。(2)使用游标的步骤是什么?(1)声明游标;(2)打开游标;(3)处理数据(读取、删除、修改)(4)关闭游标;(5)释放游标。(3)关闭游标和释放游标的区别是什么?关闭游标,释放与游标关联的当前结果集;游标释放,释放其占用的系统资源。(4)什么是事务?事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,这些操作要么都完成,要么都取消(如果在操作执行过程中不能完成其中任一操作)。在SQLServer2000中,事务是由一条或者多条Transact-SQL语句组成的一个工作单元,这些语句要么都正常执行,要么如果有其中任意一条语句执行失败被取消的话,这些语句的执行都被取消。SQL利用事务机制保证数据修改的一致性,并且在系统出错时确保数据的可恢复性。(5)事务控制语句的使用方法是什么?begintransaction……--A组语句序列savetransaction保存点1……--B组语句序列if@@error<>0rollbacktransaction保存点1--回滚到:保存点1elsecommittransaction--提交A组语句,同时如果未回滚B组语句则提交B组语句。4叙述题:简述事务回滚机制。如果服务器错误使事务无法成功完成,SQLServer将自动回滚该事务,并释放该事务占用的所有资源。如果客户端与SQLServer的网络连接中断了,那么当网络告知SQLServer该中断时,将回滚该连接的所有未完成事务。如果客户端应用程序失败或客户计算机崩溃或重启,也会中断该连接,而且当网络告知SQLServer该中断时,也会回滚所有未完成的连接。如果客户从该应用程序注销,所有未完成的事务也会被回滚。如果批处理中出现运行时语句错误(如违反约束),那么SQLServer中默认的行为将是只回滚产生该错误的语句。但在SETXACT_ABORTON语句执行之后,任何运行时语句错误都将导致当前事务自动回滚。编译错误(如语法错误)不受SETXACT_ABORT的影响。如果出现运行时错误或编译错误,那么程序员应该编写应用程序代码以便指定正确的操作(COMMIT或ROLLBACK)。
10章习题参考答案1填空题(1)数据库管理系统的安全性通常包括两个方面,一是指_____
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (5)原子坐标与投影图(A卷)-2025年高考化学二轮复习
- 四川省成都石室双楠实验学校2024-2025学年九年级上学期期中考试英语试卷(含答案无听力原文及音频)
- 辽宁省沈阳市第七中学2024-2025学年七年级上学期期中生物学试题(含答案)
- 河南省洛阳市洛宁县2024-2025学年九年级上学期12月月考物理试题(无答案)
- 安徽省安庆市桐城市实验中学办学集团校2024-2025学年上学期第三次质量检测七年级数学试题(无答案)
- 分析影响学生英语学习成绩提高的心理因素及对策
- 高一必修上册 统编版 语文 第六单元《反对党八股(节选)第二课时》课件
- 吉林省通化市梅河口市2023-2024学年八年级上学期数学期末考试试卷
- 《材料无损检测》课件
- 年产300万台专业电动工具智能化技改项目可行性研究报告模板-立项拿地
- 保密教育基本知识考试题库(含答案)
- 【瑞幸咖啡企业财务造假问题的实例探究6800字(论文)】
- 居间人与居间人之间合作协议
- 水利部大赛视图、剖视图、剖面图(含答案)
- 2024届高考作文模拟写作:“已读乱回”导写及范文
- 承包商供应商入厂作业须知
- 国际金融(第七版)全套教学课件
- 《中国溃疡性结肠炎诊治指南(2023年)》解读
- 幼儿园培训老师的拼音
- 运筹学(B)智慧树知到期末考试答案2024年
- 宋小宝杨树林宋晓峰小品《甄嬛后传》年会台词剧本完整版欢乐喜剧人
评论
0/150
提交评论