《SQL Server2005数据库应用技术》习题参考答案

更新时间:2023-06-11 22:29:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、简述数据与信息之间的联系与区别。

1、描述事物的符号称为数据,信息是就指对结果进行加工处理,并对人类社会实践和生产活动产生决策影响的数据。 数据是物理的,信息是观念性的,数据和信息密切相关,信息可以数据化,数据代表信息,两者既有联系又有区别。

2、简述数据库系统的设计流程。

2、数据库设计的流程包括六个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护。

3、社么是E-R图?E-R图由哪些要素构成? 3、E-R图是用来描述实体-联系的模型图。 E-R图的组成要素:表示实体的“矩形”、表示实体属性的“椭圆”、表示实体间联系的“菱形”。

4、逻辑结构设计有哪些步骤? 4、逻辑结构设计步骤:(1)概念模型转化为关系模型。(2)将关系模型转化为特定数据管理系统下的数据模型。(3)数据模型进行优化(通常采用规范化理论),以提高数据库应用系统的性能。

5、物理结构设计有哪些步骤? 5、物理结构设计步骤:(1)确定数据库的物理结构(存储结构、存储位置)。(2)确定数据库的存取方法。(3)对物理结构进行评价,评价的重点为时间和空间效率。

6、数据库的维护包括哪些工作?

6、数据库的维护工作:对数据库的监测、分析和性能的改善;数据库转存和故障恢复;数据库的安全性、完整性控制;数据库的重组和重构造。

7、简述安装SQL Server2005所需的软硬件环境。

软件环境:

9何在SQL Server2005 Management Studio中增加一个数据库? 9可利用“附加”数据库功能:

(1)在【对象资源管理器】窗口中,右击【数据库】选项,弹出快捷菜单,选择【附加】选项,出现【附加数据库】对话框。

(2)单击【添加】按钮,出现【定位数据库文件】对话框 。从中选择要附加的数据库的主要数据文件,单击【确定】按钮,返回【附加数据库】对话框。

(3)单击【确定】按钮,即可把所选的数据库附加到当前SQL Server实例上

10、如何一个查询,并保存脚本文件?

10、打开查询编辑器窗口。在查询编辑器窗口中键入脚本,单击工具栏上的分析按钮,分析脚本语法,使其正确。(2)按 F5,或者单击工具栏上的执行按钮,执行脚本,或者也可以在菜单栏上的【查询】|【执行】。(3)选择“文件”菜单中的【保存】命令,或单击工具栏的【保存】按钮,在打开的保存对话框转播中,选择存储位置,输入脚本文件名,单击“保存”即可保存脚本文件。

11、SQL Server2005安装成功后,有哪些系统数据库?其用途分别是什么? 11、统数据库:

master数据库:是SQL Server系统最重要的数据库。记录 SQL Server 系统的所有系统级信息。

model数据库:作为用户创建新数据库的模板。

msdb数据库:是代理服务器数据库。它为报警、任务调度和记录操作员的操作提供存储空间。

tempdb数据库:记录了所有的临时表 临时数据和临时创建的存储过程等保存临时对象的一个工作空间

12、据库文件有哪些类型?其作用分别是什么? 12、据库文件类型:

(1)主要数据文件:包含数据库的启动信息,并指向数据库中的其他文件。主要数据文件的文件扩展名是.mdf。

(2)次要数据文件: 是可选的,由用户定义并存储用户数据。次要数据文件的文件扩展名是 .ndf。

(3)事务日志文件: 用于记录所有事务以及每个事务对数据库所做的修改。 13、库如何扩容?有几种方法?

13、改现有数据库中数据文件的容量,或者增加数据文件扩容数据库。 有两种方法:

一种是用Management Studio修改数据库属性修改数据文件的容量。 另一种是利用Alter Database语句修改数据库扩容。 14、何实现数据库的移植?有哪几种方法?

14、利用“分离/附加”数据库,或利用“脱机”数据库移植数据库。

方法一:在Management Studio中,分离数据库——(复制)移植数据库文件——附加数据库方法二:在Management Studio中,设置数据库为“脱机”状态——(复制)移植数据库文件——附加数据库

15、是数据的完整性?数据完整性有哪些分类?

15、据的完整性是指数据的精确性和可靠性,主要用于保证数据库中数据的质量。它是为防止数据库中存在不符合语义规定的数据和防止因错误信息的输入/输出造成无效操作或报错

17、值对象和默认约束有何区别?

17、值对象是一种数据库对象,在数据库中创建默认值对象后,可以将其绑定到多个数据表的一个或多个列的应用;默认值约束只能用于约束一个表中的列。 18、是什么?规则的作用是什么? 18、(Rule)就是对存储在表中列或用户自定义数据类型的取值范围的规定或限制。

作用:规则类似于CHECK约束,是用来限制数据字段的输入值的范围,实现强制数据的域完整性。

19、什么是NULL值?它与0有何区别?

19、NULL是一个特殊值,表示没有值或值不确定。实际上,空字符和0都不是NULL,空字符是一个有效的字符,0是一个有效的数字。 20.如何删除默认值对象?

20.第一步:解绑默认值:对于不需要再利用默认的列,可以利用系统存储过程对其解绑。其语法格式如下:

[EXECUTE] sp_unbindefault '表名.字段名'|'自定义数据类型名' 第二步:在查询分析器中使用DROP语句删除默认值。其语法格式如下:

DROP DEFAULT default_name[,…n]

21.在SELECT语句中可以存在哪几个子句?他们的作用分别是什么? 21.SELECT语句中可以存在以下子句 (1)SELECT子句:指定查询返回的列。

(2)INTO子句:将检索结果存储到新表或视图中。 (3)FROM子句:用于指定查询列所在的表和视图。 (4)WHERE子句:指定用于限制返回的行的搜索条件。

(4)GROUP BY子句:指定用来放置输出行的组。并且如果 SELECT 子句 <SELECT LIST> 中包含聚合函数,则计算每组的汇总值。

(5)HAVING子句:指定组或聚合的搜索条件。HAVING 通常与 GROUP BY 子句一起使用。

(6)ORDER BY子句:指定结果集的排序。

22.在表与表之间可以使用哪几种连接方式?它们各自有何特点? 22.(1)交叉连接:又称笛卡儿积,返回两个表的乘积。

(2)内连接:把两个表中的数据,通过相同的列,连接生成第3个表,仅包含那些满足连接条件的数据行。内连接分为等值连接、非等值连接和自然连接。 (3)外连接:分类:左外连接、右外连接和全外连接。

左向外连接:只包括左表的所有行,不包括右表的不匹配行的外连接; 右向外连接:只包括右表的所有行,不包括左表的不匹配行的外连接。 完整外部连接:既包括左表不匹配的行,也包括右表的不匹配的行的连接

23.LIKE匹配字符有哪几个? 23.LIKE匹配字符(通配符): %(百分号):表示0~n个任意字符。 _(下划线):表示单个任意字符。 [ ](封闭方括号):表示方括号内列出的任意字符。 [^ ] :表示未在方括号内列出的恶人一字符。

24.有几种连接表的方法?它们之间有什么区别? 24.参考第2题

25.GROUP BY子句的作用是什么?HAVING子句和WHERE子句中的条件有什么不同? 25.GROUP BY子句指定用来放置输出行的组,如果需要按某一列数据的值进行分类,在分类的基础上再进行查询,就要使用GROUP BY子句。 HAVING子句指定组或聚合的搜索条件。HAVING 只能与 SELECT 语句一起使用。HAVING通常在GROUP BY 子句中使用。如果不使用GROUP BY 子句,则 HAVING的行为与WHERE 子句一样。 WHERE子句是从表格的数据集中(未分组)过滤出符合条件的行。

26.嵌套查询与相关子查询有何区别?

26.在SQL中,将一条SELECT语句作为另一条SELECT语句的一部分称为嵌套查询。外层的SELECT语句被称为外部查询或父查询,内层的SELECT语句成为内部查询或子查询。 相关子查询不同嵌套子查询,相关子查询的查询条件依赖于外层查询的某个值。 27.SQL语言的数据类型有哪些?分别有什么作用? 27.数字数据

字符数据:存储字符或字符串。 货币数据:存储货币数据。

日期和时间数据:存储日期和时间数据。 二进制字符串:存储二进制型的OLE对象。 其他数据类型:存储其他类型数据。

28.需要为SQL Server中的变量赋值时,可以用哪两种命令?

28.若要对变量赋值,可以使用SELECT语句或SET语句将一个不是NULL的值赋给已声明的变量。一个SELECT语句一次可以初始化多个局部变量;一个SET语句一次只能初始化一个局部变量。当用多个SET语句初始化多个变量时,为每个局部变量使用一个单独的SET语句。 语法格式如下: SELECT @变量名=表达式[, n] SET @变量名=表达式

29.在循环语句中,BREAK和CONTINUE语句分别起什么作用? 29. BREAK:无条件地退出WHILE循环。 CONTINUE:结束本次循环,进入下次循环,忽略CONTINUE后面的任何语句。 30.使用CASE表达式,判断当前月的天数。 30.

DECLARE @TS CHAR(5) SET @TS=CASE

WHEN Month(GETDATE()) IN (1,3,5,7,8,10,12) THEN '31天' WHEN Month(GETDATE()) IN (4,6,9,11) THEN '30天' WHEN Month(GETDATE())=2 THEN '28天' END PRINT @TS

31.视图与数据表有何区别?

31.数据表中存储基本数据,而视图中只存储查询定义,不存放数据。 32.视图有哪些优点?

32.简化操作、提高数据安全性 、屏蔽数据库的复杂性 、数据即时更新 。 33.创建视图的方法和注意事项有哪些? 33.创建视图的方法:(1)使用Management Studio。(2)使用Create View语句

注意事项有:

(1)只能在当前数据库中创建视图,在视图中最多只能引1024 列。 (2)不能在规则、默认值、触发器的定义中引用视图。 (3)不能在视图上创建索引;

(4)如果视图引用的表被删除,则当使用该视图时将返回一条错误信息;如果创建具有相同表的结构的新表来替代已删除的表,视图可以使用,否则必须重新创建视图。

(5)如果视图中某一列是函数、数学表达式、常量或来自多个表的列名相同,则必须为列定义名字。

(6)当通过视图查询数据时,SQL Server 不仅要检查视图引用的表是否存在,是否有效,而且还要验证对数据的修改是否违反了数据的完整性约束。 34.如何加密自己创建的视图的定义?

34.在Create View语句中使用“WITH ENCRYPTION”选项加密视图定义。 35.简述索引的优点和缺点。

35.优点:提高数据检索速度、保证数据记录的唯一性、加速表之间的连接。 缺点:创建索引要花费时间,花费磁盘空间,修改数据时需要更新索引。

36.简述索引的使用原则。

36、使用的索引原则 :数据库准则、查询准则 、索引列准则。 一般原则是:

● 主键列上一定要建立索引。 ● 外键列可以建索引。

● 在经常查询的字段上最好建立索引。

● 对于那些查询中很少涉及的列、重复值比较多的列不要建索引。 ● 对于定义为text,Image和Bit数据类型的列上不要建立索引。

37.什么是聚集索引?什么是非聚集索引?比较这两种索引的结构特点。

37.在聚集索引中,表中的行的物理存储顺序和索引顺序完全相同(类似于图书目录和正文内容之间的关系)。聚集索引对表的物理数据页,按列进行排序,然后再重新存储到磁盘上。 非簇索引具有与表的数据行完全分离的结构,非聚集索引的叶节点存储了组成非聚集索引的关键字值和一个指针,指针指向数据页中的数据行,该行具有与索引键值相同的列值,非聚集索引不改变数据行的物理存储顺序,因而一个表可以有多个非聚集索引。

38.如何使用CREATE INDEX语句创建索引?

38.CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED ] /* 索引的类型*/

INDEX 索引名 ON {表名|视图名 } 列名 [ ASC | DESC ] [,...n])

39.简述存储过程的基本功能和特点。

39.存储过程(Stored Procedure)是一组完成特定功能的Transact-SQL语句集,经编译后存储在数据库中,用户调用过程名和给出参数来调用它们。

40.简述存储过程的创建方法和执行方法。 40.创建存储过程的语法格式:

CREATE [ PROC | PROCEDURE] 存储过程名

[ { @参数名称 参数数据类型 } [ = 参数的默认值 ] [ OUTPUT ] ] [ ,...n ]

[ WITH ENCRYPTION] [WITH RECOMPILE ] AS

sql_statement 执行存储过程的语法格式: EXEC[UTE] 存储过程名 [[@参数名=]{参数值 | @变量 [ OUTPUT ] | [默认值]}] [,...n]

41.什么是触发器,它与存储过程有什么区别与联系?

41.触发器通常可以完成一定的业务规则,用于SQL Server约束、默认值和规则的完整性检查,还可以完成难以用普通约束实现的复杂功能的限制。 触发器与存储过程的联系:触发器是一种特殊的存储过程。 触发器与存储过程的区别:存储过程需要使用EXEC命令调用存储过程名而执行。触发器是在某个指定的事件发生时被激活而自动执行。

42.SQL Server2005中的触发器可以分为哪两类?分别有什么作用?

42.DML触发器:当数据库中发生数据操作语言 (DML) 事件时将调用 DML 触发器 。

DDL 触发器:在 CREATE、ALTER、DROP 和其他 DDL 语句上操作时发生调用DDL 触发器。

43.DML触发器和DDL触发器之间的区别和联系是什么?

43.DML触发器和DDL触发器之间的联系:都是激发存储过程以响应事件。

DML触发器和DDL触发器之间的区别:DDL触发器响应数据定义语言(DDL),如CREATE、ALTER、DROP语句,而DML触发器响应数据操作语言(DML),如UPDATE、INSERT、DELETE语句。

45.如何保护数据库中的索引不被删除或修改? 45.创建DDL触发器:

CREATE TRIGGER undrop_index ON Datebase For Drop_index,Alter_index AS Print 禁止删除和修改索引 ROLLBACK

46.简述SQL Server2005的登录模式。

46.SQL Server2005服务器的登录模式是指服务器如何处理登录名和密码,SQL Server2005提供了两种这样的身份验证模式:Windows身份验证和混合身份验证模式。

47.什么是角色?有何作用?

47.角色(roles):是SQL Server 2005中管理权限相近的安全账户的集合,相当于Windows域中的组。SQL Server2005中角色分为三类:服务器角色、数据库角色和应用程序角色。 角色的作用:通过对角色进行权限管理,可以达到定义为该角色的一组用户统一进行权限管理。

48.什么是授权的主体?

48.授权的主体指:数据库用户,各种角色、数据库对象。SQL Server2005中未被授权的用户将无法访问或存取数据库中的数据。SQL Server通过验证主体是否已获得适当的权限来控制主体对安全对象执行的操作。

49.数据库备份和还原的概念和作用是什么?

49.备份就是将数据库中的数据进行导出,生成副本,然后在系统发生故障后能够恢复全部或部分数据。

数据还原就是在数据库的一定生命周期的某一时刻还原数据。作为数据库管理员,应该将数据还原的频率减到最低,预计潜在灾难所能影响到的范围,当灾难发生时,加快还原速

度并快速地验证还原是否成功。

备份和还原的作用:降低数据丢失的可能性,并能够及时恢复已经丢失的数据,可以在数据库系统中实施备份和恢复策略。

50.SQL Server2005中有几种备份和恢复模式?

50.恢复模式是指数据库运行时,记录事务日志的模式。恢复模式控制事务记录在日志中的方式、事务日志是否需要备份以及还原的操作。

恢复模式包含简单恢复模式、完整恢复模式和大容量日志恢复模式3种类型,适合于数据库的恢复模式取决于数据库的可用性和恢复要求。

51.如何进行数据库导入和导出操作? 51.数据转换服务是一个功能非常强大的组件,导入和导出向导提供了把数据从一个数据源转换到另一个数据目的地的方法,该工具可以在异构数据环境中拷贝数据、拷贝整个表或者查询结果,并且可以交互式地定义数据转换方式。

52.什么是备份设备?备份设备的作用是什么?

52.为了执行备份操作,在使用之前所创建的备份文件称为永久性的备份文件,也称为备份设备。备份设备的作用:作为数据库备份的存储介质。

53.组件包括哪几个对象?

53.组件的对象:Connection 、Command、DataReader、DataAdapter、DataSet

54.如何使用Connection对象执行SQL查询? 54.使用Connection对象执行SQL查询的步骤: 第一步:定义连接字符串:

string ConnString=”DataSource=服务器名;Initial Catalog=数据库名;User ID=登录名;PassWord=登录密码” 第二步:创建连接对象:

SqlConnection conn=new SqlConnection(ConnString) 第三步:建立连接 Conn.Open()

第四步:创建命令对象

SqlCommand cmd=conn.CreateCommand(“select语句”) 第五步:执行SQL查询:

SqlDataReader Rs=cmd.ExecuteNonQuery( ) 第六步:关闭连接 Conn.Close( )

55.如何使用Command对象执行SQL查询?

55.使用Command对象执行SQL查询与使用Connection对象执行SQL查询类似

第四步:创建Command对象

SqlCommand cmd=new SqlCommand( )

第五步:设定Command对象的属性 cmd.Connection=conn

mandText=” select语句” 第六步:执行SQL查询

SqlDataReader Rs= cmd.ExecuteNonQuery( ) 第七步:关闭连接 Conn.Close( )

56.DataReader对象和DataSet对象有何区别? 56.DataReader对象完成数据库数据的读取操作。DataReader对象可以快速的从数据库中读取由Select返回的只读、只进的数据集。对于需要从数据库查询返回的结果中进行检索且一次处理一条记录的程序,采用DataReader可以提高应用程序的性能,减少系统开销。 DataAdapter对象起着Connection对象和DataSet对象之间的桥梁作用,能够保存和检索数据。通过它的Fill方法可以把数据库中的数据填充到DataSet中,又是通过它的Update方法按相反的方向将数据保存到数据库中。

57.如何使用DataSet和DataAdapter对象?

57.DataAdapter对象起着Connection对象和DataSet对象之间的桥梁作用,能够保存和检索数据。通过它的Fill方法可以把数据库中的数据填充到DataSet中,又是通过它的Update方法按相反的方向将数据保存到数据库中。 DataSet是中核心的对象之一,DataSet为数据源提供一个断开式的存储,即在从数据库完成数据抽取后,DataSet就是数据的存放地,它是各种数据源中的数据在计算机内存中映射成的缓存,可以把它想像成一个临时的数据库,可以存多个表(DataTable),而且是断开式的,不用每进行一次操作就对数据库进行更新,从而提高了效率。同时它在客户端实现读取、更新数据库等过程中起到了中间部件的作用。 使用DataAdapter和DataSet: 第一步:定义连接字符串:

string txtConn=”DataSource=服务器名;Initial Catalog=数据库名;User ID=登录名;PassWord=登录密码”

第二步:建立连接

SqlConnection conn=new SqlConnection(txtConn); 第三步:创建DataAdapter对象

string s = "SELECT * FROM Student";

SqlDataAdapter da = new SqlDataAdapter(s, conn); 第四步:创建DataSet对象 DataSet ds = new DataSet( );

第五步:利用DataAdapter对象给DataSet对象填充数据 da.Fill(ds, “Student”); //自动建立连接填充后关闭 if(ds.HasChanges()) //检查DataSet是否有改动 da.Update(ds); //更新数据库 第六步:关闭连接 Conn.Close( )

本文来源:https://www.bwwdw.com/article/jow1.html

Top