课后习题参考解答.doc_第1页
课后习题参考解答.doc_第2页
课后习题参考解答.doc_第3页
课后习题参考解答.doc_第4页
课后习题参考解答.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课后习题解答 第一章 课后习题一、选择题1、数据库系统的核心是(A ) A、数据库管理系统 B、数据库 C、操作系统 D、数据2、以下( C )不是数据库的模型 A、网状型 B、关系模型 C、层次型 D、实体联系型3、SQL Server 2008个人版不能安装在下列那个操作系统上( C )A、Windows 2000/XP B、Windows 98 C、Unix D、Windows NT4、下列那个不是SQL Server的安装版本( A )A、客户工具版 B、企业版 C、标准版 D、开发版5、数据冗余是指( D )。A、 数据和数据之间没有联系 B、数据有丢失C、 数据量太大 D、存在重复的数据6、下列哪一种说法是对SQL Server的描述是错误的(C )A、客户机/服务器数据库。 B、关系型数据库。C、层次化数据库。 D、企业级数据库。二、简答题1,SQLServer2008一共分为几个版本?各都是什么?答:SQLServer2008共分5个版本,它们分别是:企业版、标准版、开发版、工作组版和简化版(EXPRESS)2,如何理解数据完整性?答:数据完整性是指数据的有效性和相容性,有效性是指表存放数据是正确有效的,不存在垃圾数据。 第二章 课后习题一、选择题1、下列不属于SQL Server的系统数据库是(C )A、model B、tempdb C、pubsD、master2、 你是一个SQL Server的数据库管理员,该SQL Server已经几乎没有任何空余空间了。你想要删除任何并非必要的内容,以获得更多的空间。你可以删除以下哪个数据库,而并不引起任何问题?(A )A、PubsB、Master C、Msdb D、Tempdb3、下列关于SQL Server 2000数据库日志的说法错误是( A)A、日志文件是维护数据库完整性的重要工具。B、所有的对SQL数据库的操作都需要写日志。C、当日志文件的空间占满时,将无法写日志。 D、当修改数据库时,必先写日志。4、SQL Server数据库的主数据文件的扩展名为(B )。A、 .sql B、 .mdf C、 .mdb D、 .db二、简答题 1, SQL Server数据库的系统数据库都有哪些?何时创建?答:master tempdb msdb model ,数据库安装时由DBMS创建2,文件组有哪些优点?答:1)使用文件组可以将.mdf和.ndf文件放在不同磁盘上,减少磁盘驱动器争用,提高数据访问效率2)系统管理员可以备份或恢复独立的文件或文件组,以此代替备份或恢复整个数据库,对于需要拥有有效备份和恢复策略的大型数据库来说,必须备份文件或文件组。第三章 课后习题一、选择题1在学生成绩表sc中的列Score用来存放某学生学习某课程的考试成绩(0100分,没有小数),用下面的哪种类型最节省空间?(C)A、intB、smallint C、tinyintD、decimal(3,0)r2订单表Orders的列OrderID的类型是小整型(smallint),根据业务的发展需要改为整型(integer),应该使用下面的哪条语句? ( C )A、ALTER COLUMN OrderID integer FROM OrdersB、ALTER TABLE Orders(OrderID integer)C、ALTER TABLE Orders ALTER COLUMN OrderID integerD、ALTER COLUMN Orders.OrderID integer3要求表中的列在组成主键的属性上不能为空值,这是( B )A、参照完整性规则 B、实体完整性规则C、用户定义完整性规则 D、域完整性规则4要在SQL Server中创建一个员工信息表,其中员工的薪水、医疗保险和养老保险分别采用三个字段来存储,但是该公司规定:任何一个员工,医疗保险和养老保险两项之和不能大于薪水的1/3,这一项规则可以采用(C )来实现。A、 主键约束 B、 外键约束 C、 检查约束D、 默认约束5. 在SQL server 2008中,设计用户表时,固定长度的身份证号最好采用下面( A )数据类型进行存储。A、Char B、Text C、Varchar D、Int二、简答题:1,数据的完整性有哪几种,分别有什么作用?答:数据的完整性是为了保证数据库数据准确又有意义,主要通过表的设计和约束来实现,主要有实体完整性、域完整性和引用完整性实体完整性:将数据行定义为特定表的唯一实体,用来保证主键的唯一性。域完整性:是指列的取值范围,保证某列的值在某个范围内是有意义的数据。引用完整性:是用来限制两个有关联关系的表之间的数据。 2, 说出你对自动编号Identity数据类型的理解?自动编号即标识列,该列的值是自动增长的一些序号,该列的字段通常用来做主键,当输入含有标识列的表数据时,该列值是自动增长的。建表时该列的数据类型只能是数字。三、代码题:在员工管理系统中已经创建了员工信息表empInfo和部门信息表DeptInfo,而且这两个表都存放了不少数据。创建表的语句如下: CREATE TABLE DeptInfo ( DeptNo char(2) PRIMARY KEY, DeptName varchar(20) not null, Loc varchar(100) ) CREATE TABLE empInfo (empNo char(8) PRIMARY KEY,empName varchar(20) not null,sal int null,DeptNo char(2) not null ) 员工信息表empInfo的列DeptNo,用来存放员工所在部门的编号。该列引用系信息表DeptInfo的列DeptNo,但是在创建表时没有创建该约束,请在不删除表的情况下,写出创建该约束的SQL语句。解答:ALTER TABLE empInfo ADD CONSTRAINT fk_emp_dept FOREIGN KEY(DeptNo) REFERENCES DeptInfo(DeptNo) 第四章 课后习题一、选择题1、在数据库管理系统中,能实现对数据库中的数据查询、插入、修改和删除,这类功能称为(C )A、数据定义功能 B、数据管理功能C、数据操纵功能 D、数据控制功能2,在表中使用IDENTITY列时,每张表只允许有( A )IDENTITY列。A、一个 B、两个 C、三个 D、四个3, 下列哪一个命令为删除sample数据库的tb_name表(C )A、delete from tb_name B、delete from sample.tb_nameC、drop table tb_name D、drop table sample.tb_name 4、在SQL Server中,对数据的修改是通过(D )语句实现的。 A、MODIFY B、EDIT C、REMAKE D、UPDATE 5、下列执行数据的删除语句在运行时不会产生错误信息的选项是(B )。 A、 Delete * From A Where B = 6 B、 Delete From A Where B = 6C、 Delete A Where B = 6 D、 Delete A Set B = 6 第五章 课后习题一、选择题:1. 在SQL server 2008中提供了一些字符串函数,以下说法错误的是( B )。A、select right(hello,3)返回值为:llo;B、select trim(hello)返回值为:hello(前后都无空格);C、select replace(hello,e,o)返回值为:hollo;D、select ltrim(rtrim(hello)hello(前后都无空格);2.在SQL server 2008中,有语句“update members set Salary=Salary+300”,下列表述正确的是( A )。A、 将members表中工资都增加300 B、 删除工资为300的记录C、查询工资为300的记录 D、修改members工资都扣除3003在SQL server 2008中,有students(学生表),包含字段:SID(学号),SName(姓名),Grade(成绩)。先要将所有的学生成绩加10分,以下SQL语句正确的是(D )。A、update students set Grade=Grade+10 where SID=1;B、update * set Grade=Grade+10;C、update * from students set Grade=Grade+10;D、update students set Grade=Grade+10;4. 假设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生姓名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要把“张二的化学成绩80分”插入到S中,则可用( D )。A、 add into S values(张二,化学,80);B、insert into S values(张二,化学,80);C、add into S values(张二,化学,80);D、insert into S values(张二,化学,80); 5. 需要显示2001年1月1日2001年12月31日雇佣的所有职员的姓名和雇佣日期。职员信息表tblEmployees包含列Name和列HireDate,下面哪些语句能完成该功能? D A. SELECT Name, HireDate FROM tblEmployees B. SELECT Name, HireDate FROM tblEmployees WHERE HireDate=2001-01-01 OR 2001-12-31 C. SELECT Name, HireDate FROM tblEmployees WHERE HireDate BETWEEN 2000-12-31 AND 2002-01-01 D. SELECT Name, HireDate FROM tblEmployees WHERE DATEPART(yy,HireDate)=2001 第六章 习题解答一、选择题1、在SQL server2008中,假定grade(成绩)表中包含字段:sid(学号),lang(语文成绩)。那么列出语文成绩在80分到90分的学生的SQL语句是( C )。A、 select*from grade where lang in(80,90);B、select*from grade having lang in(80,90);C、select*from grade where lang between 80 and 90;D、select*from grade having lang between80and90;2、在SQL server 2008中,要查找eatables表中item_desc字段的值以“CHOCO”开头(如CHOCOLATE、CHOCOPIE)的所有记录。下列SQL语句正确的是( C )。A、select*from eatables where item_desc like“CHOCO”;B、select*from eatables where item_desc =“CHOCO”;C、select*from eatables where item_desc like“CHOCO%”;D、select*from eatables where item_desc like“%CHOCO?”;3、在SQL server 2008中,有一个product(产品)表,包含字段:pname(产品名称),要从此表中筛选出产品名称为“苹果”或“香蕉”的记录,下列语句正确的是( C )。A、select *from product on pname=“苹果”or pname=“香蕉”;B、select *from product on pname=“苹果”and pname=“香蕉”;C、select *from product where pname=“苹果”or pname=“香蕉”;D、select *from product where pname=“苹果”and pname=“香蕉”;4、在SQL server 2008中,当要处理学生表中name(学生姓名)列所有姓“王”的记录时,在SQL语句中where子句的写法应该是( C )。A、where name=王% B、where name like 王*C、where name like 王% D、where name like *王% 第七章 习题解答1、在SQL server2008中,假定grade(成绩)表中包含字段:cID(班级编号) lang(语文课成绩)math(数学课成绩)eng(英语成绩),那么计算不同班级每门课程的平均成绩的SQL语句是( D )。A、select cid,avg(lang,math,eng),from grade group by lang,math,eng ;B、select cid,avg(lang)avg(math)avg(eng),from grade group by lang,math,eng ;C、select cid,avg(lang math eng),from grade group by cid ;D、select cid,avg(lang)avg(math)avg(eng),from grade group by cid2、在SQL server2008中,有一个proinfo(商品信息)表,包含字段:proid(商品编码号),procatg(商品类别),proprice(商品价格),下列选项( B )可以查询每一类的平均价格。A、 select procatg,avg(proprice)from proinfo;B、 select procatg,avg(proprice)from proinfo group by procatg;C、 select avg(proprice)from proinfo order by procatg;D、 select avg(proprice)from proinfo ;3、在SQL server2008中,当执行:Select au_id, title_id, sum(royaltyper)from titleauthor group by title_id, au_id order by title_id, au_idSQL语句时,会发生( A )。A、 在结果集中,对每一个不同的au_id的值和title_id的值的组合都会有一行;B、 在结果集中,每一行中au_id的值都不会相同;C、 该语句会运行失败,因为查询输出的次序和分组的次序不一样;该语句会运行失败,因为royaltyper列也应进行分组4、 在SQL server2008中,执行如下的SQL语句:select*from item as a left join ordredetails as b on a.icode=b.itemcod,将返回( C )。A、 item和orderdetails表中的相关记录以及orderdetails表中其余的不相关记录;B、 item和orderdetails表中的相关记录;C、 item和orderdetails表中的相关记录以及item表中其余的不相关记录;D、 提示语法错误;5、在SQL server 2008中,学生表student中包含字段:学生编号sid(主键),学生姓名SaName。成绩表score包含字段:课程编号cid,学生编号sid(外键),学生成绩score;其中学生表包含10行数据,成绩表包含6行记录(且sid列没有重复值),那么执行sql语句:select*from student left outer join score on student.sid=score.sid,将返回( C )条记录。A、0 B、6 C、10 D、166、在SQL server2008中,假定grade(成绩)表中包含字段:sID(学号)cID(班级编号) lang(语文课成绩)math(数学课成绩),那么计算所有学生人数和各科最高成绩的SQL语句是( A )。A、select count(*),max(lang),max(math)from grade;B、select count(*),max(lang),max(math)from grade group by sID;C、select sum(*),max(lang),max(math)from grade group by sID; 第八章 习题解答1, 在SQL Server2008数据库中创建了如下两个表: CREATE TABLE 雇员表 ( 雇员代号 int IDENTITY(10001,1) PRIMARY KEY, 雇员姓名 varchar(20) NOT NULL, 通信地址 varchar(200) NULL ) CREATE TABLE 订单表 ( 订单号 int IDENTITY(1,1) PRIMARY KEY, 雇员代号 int NOT NULL, 客户代号 int NOT NULL, 订购日期 datetime NOT NULL, 订购金额 money NOT NULL)需要获得2003年9月1日每个雇员的最高的一笔销售金额,要求列出“雇员代号”、“雇员姓名”、“订购日期”、最高的“订购金额”。下面哪些语句能完成该功能? ( B )A. SELECT a.雇员代号, a.雇员姓名,b.订购日期,b.订购金额 FROM 雇员表 a LEFT JOIN 订单表 b ON a.雇员代号=b.雇员代号WHERE b.订单日期=09/01/2003AND 订单金额 IN (SELECT MAX(订单金额) FROM 订单表)B. SELECT a.雇员代号, a.雇员姓名,b.订购日期,MAX(订购金额) FROM 雇员表 a LEFT JOIN 订单表 b ON a.雇员代号=b.雇员代号 AND b.订单日期=09/01/2003GROUP BY a.雇员代号,a.雇员姓名, b.订购日期 C. SELECT a.雇员代号, a.雇员姓名,b.订购日期,MAX(订购金额) FROM 雇员表 a INNER JOIN 订单表 b ON a.雇员代号=b.雇员代号 WHERE b.订单日期=09/01/2003GROUP BY a.雇员代号,a.雇员姓名, b.订购日期, b.订单号D. SELECT a.雇员代号, a.雇员姓名,b.订购日期,MAX(订购金额) FROM 雇员表 a INNER JOIN 订单表 b ON a.雇员代号=b.雇员代号 WHERE b.订单日期=09/01/2003AND 订单金额 IN (SELECT MAX(订单金额) FROM 订单表)第九章课后答案一.选择题1.下面说法正确的是(B)A.所谓的ER模型就是实体对象模型B.所谓的ER模型就是实体关系模型C.ER模型是建立设计数据库的唯一方法D.实体一定是客观存在的事物。 2关于ER图的描述,下述说法正确的是(A,D) A矩形表示实体 B圆形表示属性 C正方形表示关系 D椭圆表示属性3ER模型中的关系类型有以下哪几种(ABCD) A. 一对一 B一对多 C 多对一 D. 多对多4关于范式的作用下列说法正确的是(B,C,D) A. 使用范式可以提高数据库的效率 B. 使用范式可以消除数据冗余 C. 范式可以用来检验数据库设计的是否合理,规范数据库 D. 范式可以消除插入异常,删除异常,更新异常5关于范式的说法正确的是(D) A.范式级别越高越好 B.范式最高级别为3级 C.第二范式要求每个列必须是不可再分的 D.第三范式要求不能存在传递依赖二。简答题1简述数据库设计的步骤标识实体,标识关系,设计表,规范化2描述三个范式的基本要求1NF:每一列不可再分,2NF:非主键字段必须完全依赖主键字段3NF:不存在传递依赖3如何将ER模型转化为数据库表所有的实体都对应一章表,一对一合并为一张表,一对多在多的一端创建外键关联主表,多对多是三张表,由关系的多端的主键字段组合成一章新表第十章课后答案:一选择题:1关于变量的使用正确的是(A,B)A.Declare no intB.Declare name varchar Set name=hello,worldprint nameC.用户可以定义局部变量和全局变量D.使用Select语句和Set语句给变量赋值是完全一样的2下面哪个全局变量是合法的(A,B)A.Select ServiceNameB.Select ServerNameC.Select RowCountsD.Select ErrorNum3关于T-SQL中逻辑结构的说法正确的是(D)A.IF .ELSE不能嵌套使用B.For循环结构适合知道循环次数的循环方式C.While和Do While执行结果完全一样D.可以使用break语句跳循环4. CASE语句的说法正确的是(C):A. CASE语句可以使用IFELSE替代B.CASE语句可以不需要ENDC.CASE.WHEN.有两种表达方式D.不能给CASE表达式起别名5关于批处理的说法正确的是()A.所谓的批就是一系列命令的集合B.多个批之间用分号(;)进行分隔C一个批必须包含多条SQL语句 D批之间相互不受影响,即其中一个批失败了不影响其它批的执行二。简答题1简述局部变量的多种赋值方式的区别以set和select分别介绍2简述T-SQL中批命令的概念和用法批就是一系列sql命令的集合,一次性发送到服务器执行批之间用GO语句结束三。代码题1使用T-SQL计算1100的和declare result intdeclare count intset count=1set result=0while(count50显示“业绩优秀”,销量在20到50之间显示“业绩一般”,否则显示“业绩差”select DATEPART(q,SalesDate)季度,SUM(a.quantity) 销售量,评价=casewhen SUM(a.quantity)50 then 业绩优秀when sum(a.Quantity) between 20 and 50 then 业绩一般else 业绩差endfrom salesdetails a,SalesMaster bwhere a.SalesMasterID=b.SalesMasterIDgroup by datepart(q,SalesDate)第十一章课后习题答案一选择题:1关于事务的说法正确的是(D)A.事务是一些SQL操作B.一个事务必须包含至少2个SQL语句C.事务的类型有自动事务,显式事务D.事务要么提交,要么回滚,不存在中间状态2关于事务的隔离级别说法正确的是(D)A.默认的隔离级别为未提交读B.隔离级别对并发行没有任何影响C.事务隔离级别越高,并发性越好D.事务隔离级别越高,并发行越差3以下哪些(A,B)特性属于事务的特性A.原子性B.持久性C.单独性D.并发性4以下哪些(A,C,D)属于事务的隔离级别A未提交读B不可重复读C已提交读D可序列化5关于死锁的说法正确的是(A,C)A死锁就是资源循环竞争引起的B死锁是不可避免的C降低事务的隔离级别可以降低死锁的风险D如果出现死锁只能停掉服务器重启SQLServer才能解决二。简答题:1简述事务的概念和特性 事务是不可分割的一系列SQL操作,要么全都执行要么都不执行 特性:ACID(原子性,一致性,隔离性,持久性) 2简述死锁的解决方案 降低事务的隔离级别,SELECT 语句加 With(NoLock)第十二章 视图索引 课后答案一选择题1关于视图的说法正确的是(A)A视图是一张虚拟的表B用户不能通过视图修改表中的数据C视图会根据SQL语句创建对应的表D视图只能来自于多个表2以下哪些属于视图的优点(A,B)A使用视图可以简化数据的操作B使用视图可以提高安全性C视图使用起来更加麻烦D使用视图比直接写SQL语句复杂3以下哪些属于索引的优点(B,C)A使用索引可以提高数据增删改的效率B使用索引可以提高数据查询的效率C使用索引可以提高数据排序的效率D使用索引对数据操作没有影响 4以下哪些SQLServer的索引类型(A,B,C,D)A聚集索引B组合索引C唯一索引D非聚集索引5关于索引的说法正确的是(C)A索引只能建立在表上B一个表允许有多个聚集索引C索引越多数据增删改效率越低D只要用户会用表的某个字段进行查询,就应该以该字段创建索引二简答题1简述视图的优势 安全,简单2简述索引的优点和缺点,创建索引的原则 优点:查询排序效率高 缺点:增删改效率低,因为要重建索引 原则:经常做条件筛选的列,经常排序的列,做关联条件的列适合做索引 三代码题1给图书表BookInfo的BookName添加索引,并用创建的索引进行查询 -创建索引create NONCLUSTERED index ix_booknameon BookInfo(BookName)-查询 SELECT * FROM BookInfo WITH (INDEX=ix_bookname) WHERE BookName like C#% 第十三章 存储过程 一选择题1.关于存储过程的优点说法正确的是(A,B,C,D)A.模块化编程B.减少网络传输C.执行效率高D.安全性好2关于存储过程的说法正确的是(B,D)A. 存储过程既可以存在服务器端又可以存在客户端B存储过程可分为系统的和用户的C存储过程一定要有参数D存储过程有输入参数和输出参数 3。执行带参数的存储过程时,正确的语法是(B)A.过程名(参数)B.过程名 参数C.过程名=参数D.以上三种都可以 4要将一个存储过程执行结果返回一个整型变量时,不正确的语法是(C)A.过程名(整型变量)B.过程名 整型变量C.过程名=整型变量D.整型变量=过程名 5删除存储过程用的关键字是(C) A.Delete B.TruncateC.DropD.Alter二简答题1.简述存储过程的概念以及优缺点概念:一些预编译好的,完成特定功能的,存储在服务器端的SQL语句优点:安全,高效,模块化,网络传输少缺点:不便调试,不能跨数据库三代码题1按用户输入的年份统计该年份各个季度的图书的销售量,按销量降序排列。create proc select_book_by_yearyear intas select DATEPART(q,a.salesdate)季度,SUM(b.quantity)销量 from SalesMaster a, SalesDetails b where a.SalesMasterID=b.SalesMasterID and datepart(yyyy,a.SalesDate)=year group by datepart(q,a.SalesDate) order by SUM(b.quantity) desc 第十四章 触发器 一选择题1.以下哪些是SQLServer2008的触发器类型(A,B,D) ADML触发器 BDDL触发器 CTCL触发器 D登录触发器 2以下哪些是DML触发器的类型(B,D) ABEFORE触发器BINSTEAD OF触发器CCLS触发器DAFTER触发器3关于触发器的说法正确的是(A,C)A使用约束能够完成的验证完全可以用触发器实现B约束比触发器更为灵活C触发器可以防止恶意或错误的 INSERT、UPDATE 以及 DELETE 操作D及联引用完整性不能通过触发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论