《SQL Server 数据库管理与开发》习题答案.docx

上传人:b****3 文档编号:27053369 上传时间:2023-06-26 格式:DOCX 页数:26 大小:31.56KB
下载 相关 举报
《SQL Server 数据库管理与开发》习题答案.docx_第1页
第1页 / 共26页
《SQL Server 数据库管理与开发》习题答案.docx_第2页
第2页 / 共26页
《SQL Server 数据库管理与开发》习题答案.docx_第3页
第3页 / 共26页
《SQL Server 数据库管理与开发》习题答案.docx_第4页
第4页 / 共26页
《SQL Server 数据库管理与开发》习题答案.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

《SQL Server 数据库管理与开发》习题答案.docx

《《SQL Server 数据库管理与开发》习题答案.docx》由会员分享,可在线阅读,更多相关《《SQL Server 数据库管理与开发》习题答案.docx(26页珍藏版)》请在冰豆网上搜索。

《SQL Server 数据库管理与开发》习题答案.docx

《SQLServer数据库管理与开发》习题答案

《SQLServer2000数据库管理与开发》习题答案

习题1答案

1.1SQLServer2000有哪些版本?

能在Windows98和WindowsMe操作系统平台上运行的有哪些版本?

在Windows2000AdvancedServer平台上运行的有几些版本?

答:

SQLServer2000的版本包括:

企业版、标准版、个人版、开发版和用于测试的评估版。

能在Windows98和WindowsMe操作系统平台上运行的版本有:

个人版、评估版。

能在Windows2000AdvancedServer平台上运行的版本有:

企业版、标准版、个人版、开发版和评估版。

1.2在Windows98或WindowsMe操作系统平台上安装SQLServer2000个人版。

答:

1.3在Windows2000AdvancedServer操作系统平台上安装SQLServer2000标准版或企业版。

答:

1.4服务管理器的作用是什么?

答:

SQLServer服务管理器负责启动、暂停和停止SQLServer的进程。

1.5叙述启动、暂停、和停止本地或远程服务器上的SQLServer服务进程的操作步骤?

答:

(1)在“服务器”框中输入要连接的服务器名称。

(2)从“服务”下拉列表中选择一种服务,可以是DistributedTransactionCoordinator、MicrosoftSearch、SQLServer或SQLServerAgent。

(3)单击启动按钮

、暂停按钮

或停止按钮

,以启动、暂停或停止所选择的服务。

启动服务器的方法有:

除上述启动方法外,还可以单击“开始”菜单下的“运行”命令,在运行文本框中输入命令Netstartmssqlserver。

1.6在企业管理器中注册一个名为“student”服务器,并创建一个名为“stu”的服务器组。

答:

1.7简述SQLServer企业管理器作用?

答:

SQLServer企业管理器是SQLServer2000中最重要的一个管理工具,它可以在微软管理控制台(MMCMicrosoftConsole)中使用,用于配置SQLServer系统环境,创建和管理所有SQLServer对象。

1.8简述SQLServer查询分析器的作用?

答:

略SQLServer2000查询分析器是一种图形工具,它允许用户输入和执行SQL语句并返回语句的执行结果。

1.9简述数据导入、导出工具的意义。

答:

数据导入、导出工具是一个向导程序,用于在不同的SQLServer服务器之间传递数据,也用于在SQLServer与其他数据库管理系统(如Access、FoxPro)或其他数据格式(如电子表格或文本文件)之间交换数据。

习题2答案

2.1在SQLServer2000中数据库文件有哪三类?

各有什么作用?

答:

数据库文件根据其作用不同,可以分为以下三种类型。

(1)主数据文件(primaryfile):

用来存储数据和数据库的启动信息。

(2)辅助数据文件(secondaryfile):

用来存放数据。

使用辅助数据文件可以扩展存储空间。

(3)事务日志文件(transactionlog):

用来存放数据库的修改信息。

凡是对数据库中的数据进行的修改操作(如:

INSERT、UPDATE、DELETE等SQL命令),都会记录在事务日志文件中。

2.2安装SQLServer2000时,系统自动提供的四个系统数据库分别是什么?

答:

在安装SQLServer2000时,安装程序自动安装了几个特殊的数据库有:

master、tempdb、model、msdb四个系统数据库。

2.3与数据库相关的磁盘文件分为主数据文件、辅助数据文件和事务日志文件,它们的扩展名分别是什么?

答:

主数据文件的扩展名为.mdf,辅助数据文件的扩展名为.ndf,事务日志文件的扩展名为.ldf。

2.4在查询分析器中,使用__________命令创建数据库,使用__________命令查看数据库定义信息,使用__________命令设置数据库选项,使用__________命令修改数据库结构,使用__________命令删除数据库。

答:

CreateDatabase、SP_helpdb、SP_dboption、AlterDatabase、DropDatabase

2.5在企业管理器中,右击要操作的数据库,在弹出的快捷菜单中,单击__________命令可以创建数据库,单击__________命令可以查看数据库定义信息,单击__________命令可以设置数据库选项,单击__________命令可以修改数据库,单击__________命令可以删除数据库。

答:

新建数据库、属性、属性、属性、删除。

2.6写出查看数据库信息可以使用的语句?

答:

方法一:

EXECSP_helpdb

方法二:

SELECT*FROMsysdatabases

2.7当数据库处于什么情况下,不能被删除?

答:

当有用户正在数据库使用时,当数据库正在被恢复时,当数据库正在参与复制时。

2.8在查询分析器中,输入并执行CREATEDATABASE命令,具体要求如下:

(1)数据库名称为Test;

(2)主数据文件:

逻辑文件名为Testdat1,物理文件名称为Testdat1.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB;

(3)辅助数据文件:

逻辑文件名为Testdat2,物理文件名称为Testdat2.ndf,初始容量为1MB,最大容量为10MB,递增量为1MB;

(4)事务日志文件:

逻辑文件名为Testlog1,物理文件名称为Testlog1.ldf,初始容量为512KB,最大容量为5MB,递增量为512KB。

.

答:

CREATEDATABASEtest

ONPRIMARY

(NAME=testdat1,FILENAME='d:

\testdat1.mdf',SIZE=1MB,MAXSIZE=10MB,FILEGROWTH=1MB),

(NAME=testdat2,FILENAME='d:

\testdat2.ndf',SIZE=1MB,MAXSIZE=10MB,FILEGROWTH=1MB)

LOGON

(NAME=testlog1,FILENAME='d:

\testlog1.ldf',SIZE=512KB,MAXSIZE=5MB,FILEGROWTH=512KB)

习题3答案

3.1实体完整性要求表中所有的__________惟一,它可以通过建立__________、__________、__________、__________等措施来实现。

答:

行、主键约束、惟一约束、标识列、惟一索引

3.2参照完整性要求有关联的两个或两个以上表之间数据的__________。

参照完整性可以通过建立__________和__________来实现。

答:

一致性、主键约束、外键约束

3.3域完整性用于保证给定字段中数据的__________。

它要求表中指定列的数据具有正确的__________、__________和__________。

答:

有效性、数据类型、格式和有效的数据范围

3.4在一个表上能创建__________个主键约束,主键值__________为空。

答:

一、不能

3.5在一个表上能创建__________个惟一约束,惟一值__________为空,但不能有多个空。

答:

多、可以

3.6外键约束用来建立两个表之间的关联的。

外键列的取值可以为__________,可以为__________值,但其值必须是引用列的列值之一。

引用列必须是创建了__________或__________的列。

答:

空、重复值、主键约束、惟一约束。

3.7__________是用来限制输入值的取值范围。

答:

检查约束

3.8创建表用__________语句,向表中添加记录用__________语句,查看表的定义信息用__________语句,修改表用__________语句,删除表用__________语句。

答:

CREATETABLE、、INSERT、SP_help、ALTERTABLE、DROPTABLE。

3.9在企业管理器中创建一个“学生档案”的数据库,并在该数据库中创建“人事表”和“成绩表”两张表,其中“人事表”,包括学号(从2001开始自动递增,递增量为1)、姓名、性别、电话号码、家庭住址字段组成。

“成绩表”包括学号,选修课程名称,成绩三个字段。

答:

3.10分别在“人事表”的学号字段设置主键约束,在“成绩表”的学号字段设置外键约束,在成绩字段设置大于等于0小于等于100的检查约束,在家庭住址字段设置惟一约束,在性别字段设置默认值为“男”

答:

3.11给两个表添加一些记录。

答:

习题4答案

4.1指定要检索的列,编写一条SELECT语句,检索goods表中的“货品名称”、“库存量”列。

答:

SELECT货品名称,库存量FROMgoods

4.2基于比较运算符选择行,编写一条SELECT语句,检索goods表中“状态”为1(处于整理中)的货品记录。

答:

SELECT*FROMgoodsWHERE状态=1

4.3基于列表选择行,编写一条SELECT语句,从goods表中检索出货品名称为“pen”、“book”、“desk”的货品的“货品名称”、“库存量”、“供应商”信息。

答:

SELECT货品名称,库存量,供应商FROMgoodsWHERE货品名称IN('pen','book','desk')

4.4改变结果集的列标题,用两种方法编写SELECT语句,从goods表检索出所有库存量大于等于1000且小于等于2000的“货品名称”、“库存量”、“价格”信息。

列标题分别为“货品的名称”、“货品的库存量”、“货品的单价”。

答:

方法1:

SELECT货品的名称=货品名称,货品的库存量=库存量,货品的单价=价格FROMgoodsWHERE库存量>1000AND库存量<2000

方法2:

SELECT货品名称货品的名称,库存量货品的库存量,价格货品的单价FROMgoodsWHERE库存量 BETWEEN1000AND2000

4.5使用算术运算符对结果集中的列进行计算,编写一条SELECT语句,显示goods表中所有货品的货品名称、价格和折价10%后的价格,使用别名“9折后的价格”标识被计算的列,查询结果按价格由高到低排序。

  答:

SELECT货品名称,价格,9折后的价格=价格*0.9FROMgoodsORDERBY价格DESC

4.6基于未知值(NULL)选择查询结果,编写一条SELECT语句,选出所有尚未定价的货品的信息。

答:

SELECT*FROMgoodsWHERE价格ISNULL

4.7基于字符串匹配条件选择查询结果,编写一条SELECT语句,列出customers表中姓王的客户信息。

答:

SELECT*FROMcustomersWHERE姓名LIKE '王%'

4.8基于多个条件的查询,编写一条SELECT语句,查询2002年上半年、销售数量大于1000的订单信息。

答:

SELECT*FROMorders WHERE订货日期BETWEEN'2002/01/01'and'2002/06/30'

and数量>1000

4.9计算查询到的结果的数目,编写一个SELECT语句,查询订购了“pen”的订单的个数。

答:

SELECTCOUNT(*)FROMordersWHERE货品名称='pen'

4.10实现外连接,查询出重庆客户的姓名、电话号码并显示他们的订单信息。

答:

SELECT姓名,电话,订单号,货品名称,数量,总金额,订货日期FROMcustomersLEFTJOINordersONcustomers.客户编号=orders.客户编号AND地址LIKE'重庆%'

4.11实现内连接,查询出有订单的重庆客户的姓名、电话号码并显示他们的订单信息。

答:

SELECT姓名,电话,订单号,货品名称,数量,总金额,订货日期FROMcustomersJOINordersONcustomers.客户编号=orders.客户编号AND地址LIKE'重庆%'

4.12实现自连接,编写一个SELECT语句,查询customers表中。

地址相同的客户的“姓名”、“地址”列。

答:

SELECTa.姓名,a.地址FROMcustomersaJOINcustomersbONa.地址=b.地址ANDa.客户编号<>b.客户编号

4.13建立子查询,编写一个SELECT语句,查询所有购买了“book”货品的客户姓名,要求结果集中不存在重复的记录。

答:

SELECTDISTINCT姓名FROMcustomersWHERE客户编号IN(SELECT客户编号FROMordersWHERE货品名称='book')

4.14相关子查询,编写一个SELECT语句,查找订货数量大于该货品的平均订货数量的订单信息。

答:

SELECT*FROMordersaWHERE数量>(SELECTAVG(数量)FROMordersbWHEREa.货品名称=b.货品名称)

4.15向表中添加行,编写一条INSERT语句,在goods表中添加一行。

数据如下:

货品名称库存量供应商状态价格

-----------------------------------------------------

pencil200NULL00.3

答:

INSERTgoods(货品名称,库存量,状态,价格)VALUES('pencil',200,0,0.3)

4.16修改表中数据,编写一条UPDATE语句,将所有库存量大于1000的货品的价格降低10%。

答:

UPDATEgoodsSET库存量=库存量*0.9WHERE库存量>1000

4.17删除表中记录,编写一条DELETE语句,删除orders表中2号客户的订单信息。

答:

DELETEordersWHERE客户编号=2

4.18用两种方法删除表中所有记录,哪种方法更好?

答:

“DELETE表名”和“TRUNCATETABLE表名”都是删除表中所有记录而不删除表的结构,“DROPTABLE 表名”则表结构和表记录都删除。

若删除的记录不再恢复,可使用“TRUNCATETABLE表名”命令,它的执行速度更快。

若删除的记录要恢复,可使用“DELETE表名”命令。

4.19创建一个新表,新表中包含订购了“pen”的订单信息。

答:

SELECT*INTOnewtableFROMordersWHERE货品名称='pen'

4.20嵌套子查询与相关子查询的区别。

答:

在相关查询中,子查询为外部查询的每一行都要执行一次;而在嵌套子查询中,子查询总共仅执行一次。

在相关查询中,子查询的WHERE子句中引用了外部查询表中的列。

而在嵌套子查询中,则没有引用了外部查询表中的列。

习题5答案

5.1视图是由__________构成而不是由__________构成的虚表。

视图中的数据存储在__________中。

答:

SELECT语句、数据、基表。

5.2对视图的更新操作,操作的其实是__________数据。

当基表中的数据发生变化,__________从视图中反映出来。

答:

基表、能

5.3使用视图的好处__________、__________、__________。

答:

集中数据简化查询操作、控制用户提取的数据达到数据安全保护的目的、便于数据的交换操作。

5.4创建视图用__________语句,修改视图用__________语句,删除视图用__________语句。

查看视图中的数据用__________语句。

查看视图的基本信息用__________存储过程。

查看视图的定义信息用__________存储过程。

查看视图的依赖关系用__________存储过程。

答:

CreateView、Alterview、DropView、Select、SP_help、SP_helptext、SP_depends。

5.5创建视图是带__________参数,使视图的定义语句加密。

带__________参数,对视图执行的修改操作必须遵守定义视图时WHERE子句指定的条件。

答:

Encryption、Checkoption

5.6更新视图中的数据时,因注意__________、____________________。

答:

不能对含有某些特殊列的视图更新、一次不能同时更新多个基表的数据、通过视图插入和修改的数据必须符合基表中的约束和规则。

5.7使用T-SQL语句从orders表和customers表中创建视图,其内容是所有北京客户的订单信息,视图包含以下列:

客户编号、姓名、电话、订单号、货品名称、数量。

答:

CREATEVIEWMYVIEW

AS

SELECTcustomers.客户编号,姓名,电话,订单号,货品名称,数量FROMcustomersJOINordersONcustomers.客户编号=orders.客户编号AND地址='北京%'

5.8索引分哪几类?

答:

按是否改变表的物理存放顺序来分:

可分为聚集索引和非聚集索引。

按索引列的值是否惟一来分,可分为惟一索引和非惟一索引。

5.9聚集索引与非聚集索引之间有哪些不同点?

答:

聚集索引改变表记录的物理存储顺序,使之与索引列的顺序完全相同。

非聚集牵引不改变表记录的存放顺序。

5.10在哪些情况下SQLServer会自动建立索引?

这些索引能否用DROPINDEX语句来删除?

如果不能应当用什么方法来删除?

答:

SQLServer在创建主键约束时,默认情况下会自动聚集惟一索引,SQLServer在创建惟一约束时,默认情况下会自动非聚集惟一索引。

不能使用DROPINDEX语句来删除这些索引。

可使用带DROPCONSTRAINT子句的ALTERTABLE语句来删除加在该字段上的主键约束或惟一性约束,这些约束一旦被删除,相关的索引随之被删除。

5.11使用CREATEINDEX语句在market数据库的customers表的“电话“列在创建一个非聚集惟一索引。

答:

USEmarket

CREATEUNIQUEINDEXcustomers_indexONcustomers(电话)

习题6答案

6.1什么是批处理?

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

在放有结束标志的行中能否有其他语句?

答:

批处理就是一个或多个Transact-SQL语句的集合,从应用程序一次性发送到SQLServer并由SQLServer编译成一个可执行单元,此单元称为执行计划。

建立批处理时,使用GO命令作为批处理的结束标记。

在一个GO命令行中不能包含其他Transact-SQL语句,但可以使用注释文字。

6.2建立批处理时有哪此注意事项?

答:

建立批处理时,应当注意以下几点:

(1)CREATEDEFAULT、CREATEPROCEDURE、CREATERULE、CREATETRIGGER及CREATEVIEW语句,在一个批处理中只能提交一次。

(2)不能在一个批中引用其他批中所定义的变量。

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

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

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

(6)如果一个批处理中的第一个语句是执行某个存储过程的EXECUTE语句,则EXECUTE关键字可以省略;如果该语句不是第一个语句,则必须使用EXECUTE关键字。

6.3什么是脚本?

脚本文件的扩展名是什么?

执行脚本有哪几种方法?

答:

脚本是存储在文件中的一系列SQL语句,也即一系列按顺序提交的批。

脚本文件的扩展名是:

.sql。

执行脚本可以在查询分析器中进行,也可以isql或osql实用程序运行。

6.4注释是程序中不被执行的正文,说明其作用都有哪些?

有哪两种形式的注释语句?

答:

注释用于语句代码的说明,或暂时禁用的部分语句和批处理的解释。

SQLServer支持两种形式的注释语句,即行内注释和块注释。

6.5Transact-SQL语句中局部变量是什么语句来声明?

答:

Transact-SQL语句中局部变量是declare语句来声明的。

6.6选择:

@n是使用Declare语句声明的一个局部变量,能对该变量赋值的语句是()

A.SET@n=123B.LET@n=123

C.@n=123D.SELECT@n=123

答:

A、D

6.7下列语句能否正确执行?

为什么?

DECLARE@assvarchar(50)

SET@ass='sadfasf'

GO

PRINT@ass

答:

不能正确执行,因在第二个批处理中ass变量没声明,即不能在一个批中引用其他批中所定义的变量。

6.8填空:

CASE表达式用于______________,它可以用在________________________地方并根据条件的不同而返回_____________。

CASE表达式它不能单独执行,而只能作为__________________________来使用。

CASE表达式分为______________________和__________________两种类型。

答:

空中依次填入:

简化SQL表达式、任何允许使用表达式的、不同的值、一个可以单独执行的语句的一部分、简单CASE表达式、搜索CASE表达式

6.9简述简单CASE表达式执行的过程。

答:

执行CASE表达式时,测试表达式的值依次与每一个WHEN子句的测试值相比较,直到它发现第一个与测试表达式的值完全相同的测试值时,即测试表达式等于测试值,便将该WHEN子句所指定的结果表达式返回。

如果没有任何一个WHEN子句的测试值和测试表达式相同,SQLServer将检查是否有ELSE子句存在,如果存在ELSE子句,便将ELSE子句之后的结果表达式返回;如果不存在ELSE子句,便返回一个NULL值。

在一个简单CASE函数中,一次只会有一个WHEN子句的THEN所指定的结果表达式返回,若同时有多个测试值与测试表达式的值相同,则只有第一个与测试表达式值相同的WHEN子句后的结果表达式返回。

6.10执行While语句时,当指定的条件成立时,__________________________;当这个条件不成立时,______________________________。

在循环体内部使用Break或Continue语句,以便_________________________________________。

答:

空中依次填入:

循环将重复执行、循环将停止执行、程序提前退出循环,并将控制权转移给循环之后的语句;或使程序直接跳回到WHILE命令行,重新执行循环,而忽略

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1