第九章课后答案 一. 选择题
1. 下面说法正确的是(B)
A. 所谓的ER模型就是实体对象模型 B. 所谓的ER模型就是实体关系模型 C. ER模型是建立设计数据库的唯一方法 D. 实体一定是客观存在的事物。
2.关于ER图的描述,下述说法正确的是(A,D) A.矩形表示实体 B.圆形表示属性 C.正方形表示关系 D.椭圆表示属性
3.ER模型中的关系类型有以下哪几种(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 int
B. Declare @name varchar
Set @name='hello,world' print @name
C. 用户可以定义局部变量和全局变量
D. 使用Select语句和Set语句给变量赋值是完全一样的 2. 下面哪个全局变量是合法的(A,B) A. Select @@ServiceName B. Select @@ServerName C. Select @@RowCounts D. Select @@ErrorNum
3. 关于T-SQL中逻辑结构的说法正确的是(D) A. IF ?.ELSE不能嵌套使用
B. For循环结构适合知道循环次数的循环方式 C. While和Do While执行结果完全一样 D. 可以使用break语句跳循环
4. CASE语句的说法正确的是(C): A. CASE语句可以使用IF?ELSE替代 B.CASE语句可以不需要END C.CASE?.WHEN?.有两种表达方式 D.不能给CASE表达式起别名 5.关于批处理的说法正确的是() A.所谓的批就是一系列命令的集合 B.多个批之间用分号(;)进行分隔 C.一个批必须包含多条SQL语句
D.批之间相互不受影响,即其中一个批失败了不影响其它批的执行 二。简答题
1.简述局部变量的多种赋值方式的区别 以set和select分别介绍
2.简述T-SQL中批命令的概念和用法
批就是一系列sql命令的集合,一次性发送到服务器执行 批之间用GO语句结束 三。代码题
1.使用T-SQL计算1~100的和 declare @result int declare @count int set @count=1 set @result=0
while(@count<=100) begin
set @result=@result+@count set @count=@count+1 end
print '1~100的和为:'+cast(@result as varchar(4))
2.统计各个季度的销售额,并按照销量显示评价,销量>50显示“业绩优秀”,销量在20
到50之间显示“业绩一般”,否则显示“业绩差” select DATEPART(q,SalesDate)季度, SUM(a.quantity) 销售量, 评价=case
when SUM(a.quantity)>50 then '业绩优秀'
when sum(a.Quantity) between 20 and 50 then '业绩一般' else '业绩差' end
from salesdetails a,SalesMaster b
where a.SalesMasterID=b.SalesMasterID group 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_bookname on 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.Truncate C.Drop D.Alter 二.简答题
1.简述存储过程的概念以及优缺点
概念:一些预编译好的,完成特定功能的,存储在服务器端的SQL语句 优点:安全,高效,模块化,网络传输少 缺点:不便调试,不能跨数据库 三.代码题
1.按用户输入的年份统计该年份各个季度的图书的销售量,按销量降序排列。 create proc select_book_by_year @year int as
select DATEPART(q,a.salesdate)季度,SUM(b.quantity)销量