《SQLServer实用教程》习题答案Word下载.docx

上传人:b****2 文档编号:3001388 上传时间:2023-05-01 格式:DOCX 页数:21 大小:23.36KB
下载 相关 举报
《SQLServer实用教程》习题答案Word下载.docx_第1页
第1页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第2页
第2页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第3页
第3页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第4页
第4页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第5页
第5页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第6页
第6页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第7页
第7页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第8页
第8页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第9页
第9页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第10页
第10页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第11页
第11页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第12页
第12页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第13页
第13页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第14页
第14页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第15页
第15页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第16页
第16页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第17页
第17页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第18页
第18页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第19页
第19页 / 共21页
《SQLServer实用教程》习题答案Word下载.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《SQLServer实用教程》习题答案Word下载.docx

《《SQLServer实用教程》习题答案Word下载.docx》由会员分享,可在线阅读,更多相关《《SQLServer实用教程》习题答案Word下载.docx(21页珍藏版)》请在冰点文库上搜索。

《SQLServer实用教程》习题答案Word下载.docx

三、填空题

1.主数据文件和从数据文件,.MDF、.NDF。

2.CreateDatabase。

3.SP_HelpDB。

4.ALTERDATABASE数据库名MODIFYFILE。

5.ALTERDATABASE数据库名MODIFYFILE、DBCCshrinkdatabase。

6.SP_DBOPTION。

7.DROPDATABSE。

8.SP_DETACH_DB'

数据库名'

[,[@skipchecks=]'

skipchecks'

]。

9.SP_ATTACH_DB'

’主数据文件的路径’。

10.CREATETABLE。

11.ALTERTABLE。

12.DROPTABLE。

13.INSERT。

14.UPDATE。

15.DELETE。

四、问答题

1.什么是约束?

其作用是什么?

约束定义了关于允许什么数据进入数据库的规则。

使用约束的目的是为了防止列出现非法数据,以保证数据库中数据的一致性和完整性。

2.什么是数据完整性?

完整性有哪些类型?

为了维护数据库中的数据和现实世界的一致性,SQLServer提供了确保数据库中数据的完整性技术。

数据完整性是指存储在数据库中的数据的一致性和准确性。

数据完整性有3种类型:

域完整性、实体完整性和参照完整性。

关系数据库的数据与更新操作必须满足这3种完整性规则。

3.已知数据库Sales中有两张表E1和E2,其数据结构和相应内容如表3.8和表3.9所示。

(1)写出删除表E2中那些已在表E1中存在的记录的命令序列。

DeleteE2Where编号=’007’

DeleteE2Where编号=’009’

(2)写出将表E2的记录插入到表E1中的命令序列。

InsertintoE1values(002,方秀丽,女)

InsertintoE1values(004,江静,女)

InsertintoE1values(006,苏立,男)

InsertintoE1select*fromE2

4.已知数据库Sales中有两张表G1和G2,其数据结构和相应内容如表3.10、表3.11所示。

第四章

1.去除重复记录

2.升序,降序。

3.字段,行。

4.返回汇总行。

5.附加行

二、单项选择题

1.B

2.C

3.B

4.C

5.A

三、针对本章使用的sales数据库,利用SELECT语句查询下列问题。

1.查询进货表中前6件商品的信息。

Selecttop6*fromgoods

2.查询商品的进货价格,并按进货价从大到小排序。

Select商品名称,进货价

fromgoods

orderby进货价desc

3.查询销售商品的名称、进货价、零售价和售出时间。

Select商品名称,进货价,零售价,售出时间

fromgoodsjoinsellongoods.商品编号=sell.商品编号

4.查询商品的平均零售价格。

Select商品名称,avg(零售价)

Fromgoods

Groupby商品名称

5.查询销售时间在2004年1月1日至2005年1月1日之间的商品名称、进货数量、销售时间。

Select商品名称,goods.数量,售出时间

fromgoodsjoinsellongoods.商品编号=sell.商品编号

where售出时间>

=’2004-1-1’and售出时间<

=’2005-1-1’

6.使用COMPUTEBY分别查询每一个销售人员的销售总数量。

Select*fromsell

orderby售货员工编号

COMPUTEsum(数量)BY售货员工编号

7.使用LIKE查询显示器类商品的名称、进货数量和销售数量。

Select商品名称,goods.数量as进货数量,sell.数量as销售数量

where商品名称like‘%显示器%’

8.查询打印机的销售数量。

Select商品名称,sum(sell.数量)as销售数量

where商品名称=‘打印机’

groupby商品名称

第五章

1.索引。

2.非唯一索引。

3.聚集索引。

4.唯一聚集索引。

5.更新表的索引统计信息。

1.B

3.C

4.D

5.E

三.简答题

1.什么叫索引,索引有哪些优点?

索引是一个单独的、物理的数据库结构。

它由某个表中的一列或者若干列的值,以及这些值记录在表中存储位置的物理地址所组成。

使用索引可以极大的改善数据库的性能,其表现在如下方面。

●通过创建唯一性索引,可以保证每一行数据的唯一性。

●可以大大的加快数据的检索速度,这正是使用索引的最主要的原因。

●在使用ORDERBY和GROUPBY子句进行数据检索时,可以减少查询中分组和排序的时间。

●加速表与表之间的连接,特别是在实现数据库的参照完整性上很有意义。

●可以在检索数据的过程中提高系统性能。

2.设置索引的原则是什么?

●在主键上创建索引。

●在经常需要检索的字段上创建索引。

●在外键上创建索引。

●在经常需要排序的列上创建索引。

3.聚集索引和非聚集索引有什么区别,哪个的检索效率更高?

P87

第六章

1.查询

2.ALTERVIEW

3.WITHENCRYPTION。

4.使用视图修改基表中的数据时,必须保证修改后的数据满足定义视图的限制条件。

5.1

1.C

2.B

3.C

4.D

5.A

1.视图和表有什么区别?

2.视图有哪些优点?

(1)视点集中。

使用户只关心感兴趣的某些特定数据和他们所负责的特定任务,那些不需要或无用的数据则不必在视图中显示。

(2)简化操作。

视图大大简化了用户对数据的操作。

因为在定义视图时,若视图本身就是一个复杂查询的结果集,这样在每一次执行相同的查询时,不必重新编写这些复杂的查询语句,只要一条简单的查询视图语句即可。

(3)定制数据。

视图能够实现让不同的用户以不同的方式看到不同或相同的数据集。

因此,当有许多不同水平的用户共用同一数据库时,这就显得极为重要。

(4)合并分割数据。

可以重新保持表原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。

(5)安全性。

视图可以作为一种安全机制。

通过视图用户只能查看和修改他们所能看到的数据,其他数据库或表既不可见也不可以访问。

如果某一用户想要访问视图的结果集,其必须被授予访问权限。

视图所引用表的访问权限与视图权限的设置互不影响。

3.通过视图插入、更新和删除数据操作的注意事项是什么?

(1)修改视图中的数据时,可以对基于两个以上基表或视图的视图进行修改,但是不能同时影响两个或者多个基表,每次修改都只能影响一个基表。

(2)不能修改那些通过计算得到的列,例如年龄和平均分等。

(3)若在创建视图时定义了WITHCHECKOPTION选项,那么使用视图修改基表中的数据时,必须保证修改后的数据满足定义视图的限制条件。

(4)执行UPDATE或DELETE命令时,所更新或删除的数据必须包含在视图的结果集中。

(5)当视图引用多个表时,无法用DELETE命令删除数据,若使用INSERT或UPDATE语句对视图进行操作时,被插入或更新的列必须属于同一个表。

第七章

1.系统,用户

2.符号和运算符

3.算术运算符、比较运算符、逻辑运算符、赋值运算符

4.set或select。

5.声明、读取、关闭

2.BC

3.A

5.C

1.什么叫批处理?

批处理的结束标志是什么?

建立批处理要注意什么事项?

批处理就是单个或多个T-SQL语句的集合,由应用程序一次性发送给SQLServer解释并执行批处理内的所有语句指令。

使用GO命令和使用EXECUTE命令可以将批处理发送给SQLServer。

(1)CREATEDEFAULT、CREATERULE、CREATEVIEW、CREATEPROCEDURE、和CREATETRIGGER语句,只能在单独的批处理中执行。

(2)将默认值和规则绑定到表字段或用户自定义数据类型上之后,不能立即在同一个批处理中使用它们。

(3)定义一个CHECK约束之后,不能立即在同一个批处理中使用这个约束。

(4)修改表中的字段名之后,不能立即在同一个批处理中使用这个新字段名。

(5)用户定义的局部变量的作用范围局限于一个批处理内,并且在GO命令后不能再引用这个变量。

(6)如果一个批处理中的第一条语句是执行某存储过程的EXEC语句,则EXEC关键字可以省略不写;

如果不是批处理的第一条语句,则必须要有EXEC关键字。

2.简述局部变量的声明和赋值方法。

(1)局部变量的声明。

在使用局部变量以前,必须使用DECLARE语句来声明这个局部变量。

DECLARE语句的语法格式如下:

DECLARE@局部变量名数据类型[,…n]

(2)局部变量的赋值。

给局部变量赋值有两种方法,可以使用SET语句赋值,也可以使用SELECT语句赋值。

使用SET语句赋值的语法格式为:

SET{@局部变量名=表达式}[,…n]

使用SELECT语句赋值的语法格式为:

SELECT@局部变量名=表达式[,…n]

3.写出Transact-SQL语句,将SQLServer2005服务器的名称放在局部变量@srv中,并将该局部变量的值输出显示在屏幕上。

想一想,可以用几种方法实现该局部变量的赋值和显示?

Declare@srvchar(20)

Set@srv=@@servername

Select@srv

4.下面的语句错在什么地方?

应该如何修改才能显示@的值为2?

DECLARE@aint

SELECT@a=1

GO

SET@a=@a+1

SELECT@a

--GO

SET@a=@a+1

5.在Sales数据库中查询各商品的进货数量及剩余数量。

Select商品名称,goods.数量-isnull(sum(sell.数量),0)剩余数量

fromgoodsleftjoinsellongoods.商品编号=sell.商品编号

GROUPBY商品名称,goods.数量

第八章

1.存储过程

2.存储过程。

字符串变量

3.T-SQL和CLR

4.WITHENCRYPTION

5.master、sp_。

1.A

2.B

3.D

5.B

1.存储过程与存储在客户计算机的本地T-SQL语句相比,它具有什么优点?

(1)执行速度快,改善系统性能。

(2)减少网络流量。

(3)增强代码的重用性和共享性。

(4)提供了安全机制。

2.SQLServer支持哪几类存储过程?

在SQLServer2005中,存储过程有3种类型。

(1).用户自定义存储过程

用户自定义存储过程包括Transact-SQL和CLR两种。

(2).系统存储过程

(3).扩展存储过程

3.希望人力资源部门的用户可以在Sales数据库中插入、更新和删除数据,但不希望他们有访问基表的权限。

那么除了创建一个视图以外,还能如何实现该目标?

可以创建能实现相应功能的存储过程

4.在Sales数据库中建立一个名为proc_find的存储过程,如果查询到指定的商品,则用RETURN语句返回1,否则返回0。

--创建存储过程

createprocproc_find

@spmcchar(20)

as

ifexists(select*fromgoods

where商品名称=@spmc)

return1

else

return0

--执行存储过程

declare@iint

exec@i=proc_find'

打印机'

select@ias返回值

5.在Sales数据库中建立一个名为date_to_date_sales的存储过程,该存储过程将返回在两个指定日期之间的所有销售记录。

createprocdate_to_date_sales

@d1datetime,@d2datetime

select*fromsell

where售出时间between@d1and@d2

execdate_to_date_sales'

2004-1-1'

'

2005-1-1'

第九章

1.Inserted、DELETE和UPDATTE

2.After和insteadof

3.Create、Alter、Drop

4.表或触发器、表

5.DML

1.D

2.A

3.B

6.D

1.什么是触发器,触发器有什么功能?

触发器是一种特殊的存储过程,在语言事件发生时,所设置的触发器就会自动被执行,以进行维护数据完整性或其他一些特殊的任务。

触发器功能:

1).DML触发器

DML触发器有助于在表或视图中修改数据时强制业务规则,扩展数据完整性,它具有以下功能。

(1)级联修改数据库中相关的表。

(2)实现比CHECK约束更为复杂的约束操作。

(3)拒绝或回滚违反引用完整性的约束操作。

(4)比较表修改前后数据之间的差别,并根据差别采取相应的操作。

2).DDL触发器

DDL触发器用于执行管理任务,并强制影响数据库的业务规则。

它具有以下功能。

(1)防止对数据库架构进行某些更改。

(2)使得数据库中发生某种情况以响应数据库架构中的更改。

(3)记录数据库架构中的更改或事件。

2.在Sales数据库中,创建触发器tri_ReportGoods,当商品库存低于5件时发出库存量少请求进货的提示信息。

createtriggertri_ReportGoods

onsell

forinsert

declare@sbhchar(6),@smcchar(20),@syslint

select@sbh=inserted.商品编号,@smc=商品名称

frominsertedjoingoodsoninserted.商品编号=goods.商品编号

Select@sysl=goods.数量-isnull(sum(sell.数量),0)

fromgoodsleftjoinsellongoods.商品编号=sell.商品编号

wheregoods.商品编号=@sbh

GROUPBYgoods.商品编号,goods.数量

if@sysl<

5

print@smc+'

的库存少于5件,请及时进货'

--测试触发器

insertintosell

values('

2'

2,'

2009-12-1'

1301'

3.在Sales数据库中,创建触发器tri_GoodsCount,当商品销售之后,相应的库存要有所变化。

createtriggertri_GoodsCount

declare@sbhchar(6),@slint

select@sbh=inserted.商品编号,@sl=inserted.数量

frominsertedjoinselloninserted.商品编号=sell.商品编号

updategoods

set数量=数量-@sl

wheregoods.商品编号=@sbh

2009-12-2'

select*fromgoods

4.更改tri_ReportGoods触发器,当商品库存低于10件时才发出库存量少请求进货的提示信息,并对触发器定义文本进行加密。

altertriggertri_ReportGoods

WITHENCRYPTION

10

的库存少于10件,请及时进货'

5.在Sales数据库中,创建一个DDL触发器,以防止表的删除。

createtriggertri_ddl

ondatabase

fordrop_table

print'

不能删除该数据库中的表。

'

rollback

droptabledbo.aa

6.创建一个DDL触发器,保护当前服务器中的所有数据库不能被修改。

createtriggertri_alter_database

onallserver

foralter_database

不能修改该数据库。

rollback

第十章

一、判断题(在命题的后面用“√”或“”符号表示“正确”或“错误”)

1.√

2.√

3.×

4.√

5.√

1.D

4.A

5.D

1.标量函数内嵌表值函数多语句表值函数。

2.原子性、一致性、隔离性、持久性。

3.共享锁、更新锁、独占锁。

4.多个用户的并发操作,防止用户读取正在由其他用户更改的数据或者多个用户同时修改同一数据,确保事务的完整性和数据的一致性。

5.锁的粒度和类型

1.在Sales数据库中,编写函数显示表Sell指定日期的销售记录。

createfunction

(@datedatetime)

returnstable

return(

where售出时间=@date)

select*fromfn_sell('

2004-10-15'

2.在Sales数据库中,编写函数对表Sell进行统计并生成指定月份销售统计表,该表包含有两列:

日期DateTime,日销售额Money。

createfunctionfn_monthsell

(@mint)

returns@mstable

(月份int,

月销售额money)

begin

insert@ms

select月份=month(售出时间),月销售额=sum(sell.数量*零售价)--

fromselljoingoodsonsell.商品编号=goods.商品编号

wheremonth(售出时间)=@m

groupbymonth(售出时间)

return

end

select*fromfn_monthsell(10)

3.

begintransaction

updatet1

sett1.数量=t1.数量+gg.数量

fromt1joingg

ont1.编号=gg.编号

insertintot1

Select*fromgg

where编号notin(select编号fromt1)

committransaction

第十一章

1.操作系统级、SQLserver级、数据库级。

2.Windows身份认证模式和混合模式。

3.创建新的数据库角色、分配权限给创建的角色、将这个角色授予某个用户。

4.完整恢复模式、大容量日志恢复模式、简单恢复模式。

5.完整备份、部分

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2