1、SQL Server 数据库管理与开发习题答案SQL Server 2000 数据库管理与开发习题答案习 题 1 答 案1.1 SQL Server 2000有哪些版本?能在Windows 98和Windows Me操作系统平台上运行的有哪些版本?在Windows 2000 Advanced Server平台上运行的有几些版本?答:SQL Server 2000的版本包括:企业版、标准版、个人版、开发版和用于测试的评估版。能在Windows 98和Windows Me操作系统平台上运行的版本有:个人版、评估版。能在Windows 2000 Advanced Server平台上运行的版本有:企业
2、版、标准版、个人版、开发版和评估版。1.2 在Windows 98或Windows Me操作系统平台上安装SQL Server 2000个人版。答:略1.3 在Windows 2000 Advanced Server操作系统平台上安装SQL Server 2000标准版或企业版。答:略1.4 服务管理器的作用是什么?答:SQL Server服务管理器负责启动、暂停和停止SQL Server的进程。1.5 叙述启动、暂停、和停止本地或远程服务器上的SQL Server服务进程的操作步骤?答:(1)在“服务器”框中输入要连接的服务器名称。(2)从“服务”下拉列表中选择一种服务,可以是Distrib
3、uted Transaction Coordinator、Microsoft Search、SQL Server或SQL Server Agent。(3)单击启动按钮、暂停按钮或停止按钮,以启动、暂停或停止所选择的服务。启动服务器的方法有:除上述启动方法外,还可以单击“开始”菜单下的“运行”命令,在运行文本框中输入命令Net start mssqlserver。1.6 在企业管理器中注册一个名为“student”服务器,并创建一个名为“stu”的服务器组。答:略1.7 简述SQL Server企业管理器作用?答:SQL Server企业管理器是SQL Server 2000中最重要的一个管理工
4、具,它可以在微软管理控制台(MMC Microsoft Console)中使用,用于配置SQL Server系统环境,创建和管理所有SQL Server对象。1.8 简述SQL Server查询分析器的作用?答:略SQL Server 2000查询分析器是一种图形工具,它允许用户输入和执行SQL语句并返回语句的执行结果。1.9 简述数据导入、导出工具的意义。答:数据导入、导出工具是一个向导程序,用于在不同的SQL Server服务器之间传递数据,也用于在SQL Server与其他数据库管理系统(如Access、FoxPro)或其他数据格式(如电子表格或文本文件)之间交换数据。习 题 2答 案2
5、.1 在SQL Server 2000中数据库文件有哪三类?各有什么作用?答:数据库文件根据其作用不同,可以分为以下三种类型。(1)主数据文件(primary file):用来存储数据和数据库的启动信息。(2)辅助数据文件(secondary file):用来存放数据。使用辅助数据文件可以扩展存储空间。(3)事务日志文件(transaction log):用来存放数据库的修改信息。凡是对数据库中的数据进行的修改操作(如:INSERT、UPDATE、DELETE等SQL命令),都会记录在事务日志文件中。2.2 安装SQL Server 2000时,系统自动提供的四个系统数据库分别是什么?答:在安
6、装SQL Server 2000时,安装程序自动安装了几个特殊的数据库有:master、tempdb、model、msdb四个系统数据库。2.3 与数据库相关的磁盘文件分为主数据文件、辅助数据文件和事务日志文件,它们的扩展名分别是什么?答:主数据文件的扩展名为.mdf,辅助数据文件的扩展名为 .ndf,事务日志文件的扩展名为.ldf。2.4 在查询分析器中,使用_命令创建数据库,使用_命令查看数据库定义信息,使用_命令设置数据库选项,使用_命令修改数据库结构,使用_命令删除数据库。答:Create Database、SP_helpdb、SP_dboption、Alter Database、Dr
7、op Database2.5 在企业管理器中,右击要操作的数据库,在弹出的快捷菜单中,单击_命令可以创建数据库,单击_命令可以查看数据库定义信息,单击_命令可以设置数据库选项,单击_命令可以修改数据库,单击_命令可以删除数据库。答:新建数据库、 属性 、 属性、 属性、 删除。2.6 写出查看数据库信息可以使用的语句?答:方法一:EXEC SP_helpdb方法二:SELECT * FROM sysdatabases2.7 当数据库处于什么情况下,不能被删除?答:当有用户正在数据库使用时,当数据库正在被恢复时,当数据库正在参与复制时。2.8 在查询分析器中,输入并执行CREATE DATABA
8、SE命令,具体要求如下:(1)数据库名称为Test;(2)主数据文件:逻辑文件名为Testdat1,物理文件名称为Testdat1.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB;(3)辅助数据文件:逻辑文件名为Testdat2,物理文件名称为Testdat2.ndf,初始容量为1MB,最大容量为10MB,递增量为1MB;(4)事务日志文件:逻辑文件名为Testlog1,物理文件名称为Testlog1.ldf,初始容量为512KB,最大容量为5MB,递增量为512KB。.答:CREATE DATABASE testON PRIMARY(NAME=testdat1,FILENAME
9、=d:testdat1.mdf,SIZE=1MB,MAXSIZE=10MB,FILEGROWTH=1MB),(NAME=testdat2,FILENAME=d:testdat2.ndf,SIZE=1MB,MAXSIZE=10MB,FILEGROWTH=1MB)LOG ON (NAME=testlog1,FILENAME=d:testlog1.ldf,SIZE=512KB,MAXSIZE=5MB,FILEGROWTH=512KB)习 题 3 答 案3.1 实体完整性要求表中所有的_惟一, 它可以通过建立_、_、_、_等措施来实现。答:行、主键约束、惟一约束、标识列、惟一索引3.2 参照完整性要求
10、有关联的两个或两个以上表之间数据的_。参照完整性可以通过建立_和_来实现。答:一致性、主键约束、外键约束3.3 域完整性用于保证给定字段中数据的_。它要求表中指定列的数据具有正确的_、_和_。答:有效性、数据类型、格式和有效的数据范围3.4在一个表上能创建_个主键约束,主键值_为空。答:一、不能3.5在一个表上能创建_个惟一约束,惟一值_为空,但不能有多个空。答:多、可以3.6外键约束用来建立两个表之间的关联的。外键列的取值可以为_,可以为_值,但其值必须是引用列的列值之一。引用列必须是创建了_或_的列。答:空、重复值、主键约束、惟一约束。3.7 _是用来限制输入值的取值范围。答:检查约束3.
11、8创建表用_语句,向表中添加记录用_语句,查看表的定义信息用_语句,修改表用_语句,删除表用_语句。答:CREATE TABLE、INSERT、SP_help、ALTER TABLE、DROP TABLE。3.9在企业管理器中创建一个 “学生档案”的数据库,并在该数据库中创建 “人事表”和“成绩表” 两张表,其中“人事表”,包括学号(从2001开始自动递增,递增量为1)、姓名、性别、电话号码、家庭住址字段组成。“成绩表” 包括学号,选修课程名称,成绩三个字段。答:略3.10 分别在“人事表”的学号字段设置主键约束,在“成绩表” 的学号字段设置外键约束,在成绩字段设置大于等于0小于等于100的检
12、查约束,在家庭住址字段设置惟一约束,在性别字段设置默认值为“男”答:略3.11给两个表添加一些记录。答:略习 题 4 答 案4.1 指定要检索的列,编写一条SELECT语句,检索goods表中的“货品名称”、“库存量”列。答:SELECT 货品名称,库存量 FROM goods4.2 基于比较运算符选择行,编写一条SELECT语句,检索goods表中“状态”为1(处于整理中)的货品记录。答:SELECT * FROM goods WHERE 状态=14.3 基于列表选择行,编写一条SELECT语句,从goods表中检索出货品名称为“pen”、“book”、“desk”的货品的“货品名称”、“库
13、存量”、“供应商”信息。答:SELECT 货品名称,库存量,供应商 FROM goods WHERE 货品名称 IN (pen,book,desk)4.4 改变结果集的列标题,用两种方法编写SELECT语句,从goods表检索出所有库存量大于等于1000且小于等于2000的“货品名称”、“库存量”、“价格”信息。列标题分别为“货品的名称”、“货品的库存量”、“货品的单价”。答:方法1:SELECT 货品的名称=货品名称, 货品的库存量=库存量, 货品的单价=价格 FROM goods WHERE 库存量1000 AND 库存量10004.9 计算查询到的结果的数目,编写一个SELECT语句,查
14、询订购了“pen”的订单的个数。答:SELECT COUNT(*) FROM orders WHERE 货品名称=pen4.10 实现外连接,查询出重庆客户的姓名、电话号码并显示他们的订单信息。答:SELECT 姓名,电话,订单号,货品名称,数量,总金额,订货日期 FROM customers LEFT JOIN orders ON customers.客户编号=orders.客户编号 AND 地址 LIKE 重庆%4.11 实现内连接,查询出有订单的重庆客户的姓名、电话号码并显示他们的订单信息。答:SELECT 姓名,电话,订单号,货品名称,数量,总金额,订货日期 FROM customer
15、s JOIN orders ON customers.客户编号=orders.客户编号 AND 地址 LIKE 重庆%4.12 实现自连接,编写一个SELECT语句,查询customers表中。地址相同的客户的“姓名”、“地址”列。答:SELECT a.姓名,a.地址 FROM customers a JOIN customers b ON a.地址=b.地址 AND a.客户编号b.客户编号 4.13 建立子查询,编写一个SELECT语句,查询所有购买了“book”货品的客户姓名,要求结果集中不存在重复的记录。答:SELECT DISTINCT 姓名 FROM customers WHERE
16、 客户编号 IN (SELECT 客户编号 FROM orders WHERE 货品名称=book)4.14 相关子查询,编写一个SELECT语句,查找订货数量大于该货品的平均订货数量的订单信息。答:SELECT * FROM orders a WHERE 数量(SELECT AVG(数量) FROM orders b WHERE a.货品名称=b.货品名称)4.15 向表中添加行,编写一条INSERT语句,在goods表中添加一行。数据如下:货品名称 库存量 供应商 状态 价格 -pencil 200 NULL 0 0.3答:INSERT goods(货品名称,库存量,状态,价格) VALU
17、ES(pencil,200,0,0.3)4.16 修改表中数据,编写一条UPDATE语句,将所有库存量大于1000的货品的价格降低10%。答:UPDATE goods SET 库存量=库存量*0.9 WHERE 库存量10004.17 删除表中记录,编写一条DELETE语句,删除orders表中2号客户的订单信息。答:DELETE orders WHERE 客户编号=24.18 用两种方法删除表中所有记录,哪种方法更好?答:“DELETE 表名” 和“TRUNCATE TABLE 表名”都是删除表中所有记录而不删除表的结构,“DROP TABLE表名”则表结构和表记录都删除。若删除的记录不再恢
18、复,可使用“TRUNCATE TABLE 表名”命令,它的执行速度更快。若删除的记录要恢复,可使用“DELETE 表名”命令。4.19 创建一个新表,新表中包含订购了“pen”的订单信息。答:SELECT * INTO newtable FROM orders WHERE 货品名称=pen 4.20 嵌套子查询与相关子查询的区别。答:在相关查询中,子查询为外部查询的每一行都要执行一次;而在嵌套子查询中,子查询总共仅执行一次。在相关查询中,子查询的WHERE子句中引用了外部查询表中的列。而在嵌套子查询中,则没有引用了外部查询表中的列。习 题 5答 案5.1 视图是由_构成而不是由_构成的虚表。视
19、图中的数据存储在_中。答:SELECT语句、数据、基表。5.2 对视图的更新操作,操作的其实是_数据。当基表中的数据发生变化,_从视图中反映出来。答:基表、能5.3 使用视图的好处_、_、_。答:集中数据简化查询操作、控制用户提取的数据达到数据安全保护的目的、便于数据的交换操作。5.4 创建视图用_语句,修改视图用_语句,删除视图用_语句。查看视图中的数据用_语句。查看视图的基本信息用_存储过程。查看视图的定义信息用_存储过程。查看视图的依赖关系用_存储过程。答:Create View、Alter view、Drop View、Select、SP_help、SP_helptext、SP_dep
20、ends。5.5 创建视图是带_参数,使视图的定义语句加密。带_参数,对视图执行的修改操作必须遵守定义视图时WHERE子句指定的条件。答:Encryption、Check option5.6 更新视图中的数据时,因注意_、_ _。答:不能对含有某些特殊列的视图更新、一次不能同时更新多个基表的数据、通过视图插入和修改的数据必须符合基表中的约束和规则。5.7 使用T-SQL语句从orders表和customers表中创建视图,其内容是所有北京客户的订单信息,视图包含以下列:客户编号、姓名、电话、订单号、货品名称、数量。答:CREATE VIEW MYVIEWASSELECT customers.客
21、户编号,姓名,电话,订单号,货品名称,数量 FROM customers JOIN orders ON customers.客户编号=orders.客户编号 AND 地址=北京%5.8 索引分哪几类?答:按是否改变表的物理存放顺序来分:可分为聚集索引和非聚集索引。按索引列的值是否惟一来分,可分为惟一索引和非惟一索引。5.9 聚集索引与非聚集索引之间有哪些不同点?答:聚集索引改变表记录的物理存储顺序,使之与索引列的顺序完全相同。非聚集牵引不改变表记录的存放顺序。5.10 在哪些情况下SQL Server会自动建立索引?这些索引能否用DROP INDEX语句来删除?如果不能应当用什么方法来删除?答
22、:SQL Server在创建主键约束时,默认情况下会自动聚集惟一索引,SQL Server在创建惟一约束时,默认情况下会自动非聚集惟一索引。不能使用DROP INDEX语句来删除这些索引。可使用带DROP CONSTRAINT子句的ALTER TABLE语句来删除加在该字段上的主键约束或惟一性约束,这些约束一旦被删除,相关的索引随之被删除。5.11 使用CREATE INDEX语句在market数据库的customers表的“电话“列在创建一个非聚集惟一索引。答:USE marketCREATE UNIQUE INDEX customers_index ON customers(电话)习 题
23、6 答 案6.1 什么是批处理?批处理的结束标志是什么?在放有结束标志的行中能否有其他语句?答:批处理就是一个或多个Transact-SQL语句的集合,从应用程序一次性发送到SQL Server并由SQL Server编译成一个可执行单元,此单元称为执行计划。建立批处理时,使用GO命令作为批处理的结束标记。在一个GO命令行中不能包含其他Transact-SQL语句,但可以使用注释文字。6.2 建立批处理时有哪此注意事项?答:建立批处理时,应当注意以下几点:(1)CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER及CREATE V
24、IEW语句,在一个批处理中只能提交一次。(2)不能在一个批中引用其他批中所定义的变量。(3)不能把规则和默认值绑定到表字段或用户自定义数据类型上之后,立即在同一个批处理中使用它们。(4)不能定义一个CHECK约束之后,立即在同一个批处理中使用该约束。(5)不能修改表中的一个字段名之后,立即在同一个批处理中引用新字段名。(6)如果一个批处理中的第一个语句是执行某个存储过程的EXECUTE语句,则EXECUTE关键字可以省略;如果该语句不是第一个语句,则必须使用EXECUTE关键字。6.3 什么是脚本?脚本文件的扩展名是什么?执行脚本有哪几种方法?答:脚本是存储在文件中的一系列SQL语句,也即一系
25、列按顺序提交的批。脚本文件的扩展名是:.sql。执行脚本可以在查询分析器中进行,也可以isql或osql实用程序运行。6.4 注释是程序中不被执行的正文,说明其作用都有哪些?有哪两种形式的注释语句?答:注释用于语句代码的说明,或暂时禁用的部分语句和批处理的解释。SQL Server支持两种形式的注释语句,即行内注释和块注释。6.5 Transact-SQL语句中局部变量是什么语句来声明?答:Transact-SQL语句中局部变量是declare语句来声明的。6.6 选择:n是使用Declare语句声明的一个局部变量,能对该变量赋值的语句是( )A.SET n123 B.LET n123C.n1
26、23 D.SELECT n123答:A、D6.7 下列语句能否正确执行?为什么?DECLARE ass varchar(50)SET ass=sadfasfGOPRINT ass答:不能正确执行,因在第二个批处理中ass变量没声明,即不能在一个批中引用其他批中所定义的变量。6.8 填空:CASE表达式用于_,它可以用在_地方并根据条件的不同而返回_。CASE表达式它不能单独执行,而只能作为_来使用。CASE表达式分为_和_两种类型。答:空中依次填入:简化SQL表达式、任何允许使用表达式的、不同的值、一个可以单独执行的语句的一部分、简单CASE表达式、搜索CASE表达式6.9 简述简单CASE表
27、达式执行的过程。答:执行CASE表达式时,测试表达式的值依次与每一个WHEN子句的测试值相比较,直到它发现第一个与测试表达式的值完全相同的测试值时,即测试表达式等于测试值,便将该WHEN子句所指定的结果表达式返回。如果没有任何一个WHEN子句的测试值和测试表达式相同,SQL Server将检查是否有ELSE子句存在,如果存在ELSE子句,便将ELSE子句之后的结果表达式返回;如果不存在ELSE子句,便返回一个NULL值。在一个简单CASE函数中,一次只会有一个WHEN子句的THEN所指定的结果表达式返回,若同时有多个测试值与测试表达式的值相同,则只有第一个与测试表达式值相同的WHEN子句后的结果表达式返回。6.10 执行While语句时,当指定的条件成立时,_;当这个条件不成立时,_。在循环体内部使用Break或Continue语句,以便_。答:空中依次填入:循环将重复执行、循环将停止执行、程序提前退出循环,并将控制权转移给循环之后的语句;或使程序直接跳回到WHILE命令行,重新执行循环,而忽略
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1