sql server 2008 数据库应用与开发教程 课后习题参考答案

SQL Server 2008数据库应用与开发教程

(第二版)

第一章习题参考答案

1.简述SQL Server 2008系统中主要数据库对象的特点。

答:主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则和默认值等。

“表”节点中包含了数据库最基本、最重要的对象——表。表实际用来存储系统数据和用户数据,是最核心的数据库对象。

“视图”节点包含了数据库中的视图对象。视图是一种虚拟表,用来查看数据库中的一个或多个表,视图是建立在表基础之上的数据库对象,它主要以SELECT语句形式存在。

在“同义词”节点中包含了数据库中的同义词对象。这是Microsoft SQL Server 2008系统新增的一种对象。

“可编程性”对象是一个逻辑组合,它包括存储过程、函数、触发器、程序集、类型、规则和默认值等对象。

数据库中的函数对象包含在“函数”节点中。函数是接受参数、执行复杂操作并将结果以值的形式返回的例程。

2.SQL Server 2008数据库管理系统产品分为哪几个版本,各有什么特点?

答:SQL Server 2008数据库管理系统产品的服务器版本包括了企业版和标准版,专业版本主要包括以下版本:工作组版(Workgroup)、开发人员版(Developer)、免费精简版(Express)、Web版,以及免费的集成数据库SQL Server Compact 3.5。

3.SQL Server 2008包含哪些组件,其功能各是什么?

答:SQL Server 2008的体系结构是对SQL Server的组成部分和这些组成部分之间的描述。Microsoft SQL Server 2008系统由4个组件组成,这4个组件被称为4个服务,分别是数据库引擎、Analysis Services、Reporting Services和Integration Services。

数据库引擎是Microsoft SQL Server 2008系统的核心服务,负责完成数据的存储、处理、查询和安全管理等操作。

分析服务(SQL Server Analysis Services,简称为SSAS)的主要作用是提供多维分析和数据挖掘功能。

报表服务(SQL Server Reporting Services,简称为SSRS)为用户提供了支持Web方式的企业级报表功能。

集成服务(SQL Server Integration Services,简称SSIS)是一个数据集成平台,负责完成

4.安装SQL Server 2008之前应该做什么准备工作?

答:(1) 增强物理安全性

(2) 使用防火墙

(3) 隔离服务

(4) 禁用NetBIOS和服务器消息块

5.SQL Server 2008支持哪两种身份验证?

答:Windows 身份验证或混合模式身份验证。

6.如何注册和启动SQL Server 服务器?

答:1. 注册服务器

使用Microsoft SQL Server Management Studio工具注册服务器的步骤如下:

(1) 启动Microsoft SQL Server Management Studio工具,选择“视图”|“已注册”命令或者按下快捷键Ctrl+Alt+G,在打开的“已注册的服务器”窗口中选中“数据库引擎”图标。

(2) 在“数据库引擎”上单击鼠标右键,从弹出的快捷菜单中选择“新建”|“服务器注册”命令,即可打开如图1-20所示的“新建服务器注册”对话框。选择“常规”选项卡,可以在该选项卡中输入将要注册的服务器名称。

(3) 选择“连接属性”选项卡,如图1-21所示,在该选项卡中可以设置连接到的数据库、网络以及其他连接属性。

(4) 然后单击“测试”按钮,可以对当前设置的连接属性进行测试。如果出现如图1-23所示的“新建服务器注册”消息框,则表示连接属性的设置是正确的。

(5) 完成连接属性设置后,单击“保存”按钮,即可完成连接属性的设置操作。接着单击“保存”按钮,即可完成新建服务器注册的操作。新注册的服务器名称将出现在列表中。

2. 启动服务器

可以通过“开始”菜单来启动SQL Server Configuration Manager,

7. 熟悉查询分析器的功能与使用。(略)

第二章习题参考答案

1.在Microsoft SQL Server 2008 中,主数据文件的后缀是_.mdf______,日志数据文件的后缀是__.ldf______。

2. 在创建数据库时,系统自动将_master___系统数据库的所有用户定义的对象复制到新建的数据库。

3. 每个文件组可以有__多__个日志文件。

4. 使用T-SQL语句创建数据库的语句是:CREA TE DA TABASE;创建表的语句是:CREA TE TABLE

第三章习题参考答案

1.在一个表上可以定义__多_个CHECK约束。

2.创建表的语句是:_CREATE TABLE 表名___________。

3.表和表之间的关系是通过__连接实现的。

4.删除表“employ”中的“employdate”列所使用的语句是什么?

答: ALTER TABLE employ

( DROP employdate

)

5.为表“employ”删除主键约束的语句是怎样的?

答: ALTER TABLE employ

(

DROP CONSTRAINT 约束名 PRIMARY KEY

)

第四章习题参考答案

1.在SQL Server 2008中对数据使用SSMS图形化界面进行修改,与使用T-SQL修改数据,两种方法相比较,哪一种功能更强大、更为灵活?试举例说明。

答:使用T-SQL修改数据功能更强大,更为灵活。

2. 向附录A 学生成绩(XSCJ)数据库的表中送入或修改成样本数据。(略)

3. 写出T-SQL语句,对产品销售数据库(库名CPXS)产品表进行如下操作:

(1) 插入如下记录

0001 空调3000 200

0203 冰箱2500 100

0301 彩电2800 50

答:语句如下:

insert into 产品表V alues('0001','空调3000','200');

insert into 产品表V alues('0203','冰箱2500','100');

insert into 产品表V alues('0301','彩电2800','50');

(2)将产品数据库的产品表中的每种商品的价格打8折。

语句如下:

update 产品表SET 价格=价格*0.8

(3)将产品数据库的产品表中价格打8折后小于50的商品删除。

DELETE FROM 产品表

WHERE 价格<50

第五章习题参考答案

1.简述SQL Server 2008的安全层次?

答:在SQL Server 2008中,数据的安全保护由4个层次构成。SQL Server 2008主要对其中的3个层次提供安全控制。下面分别对每个层次进行简介。

(1) 远程网络主机通过Internet访问SQL Server 2008服务器所在的网络,这由网络环境提供某种保护机制。

(2) 网络中的主机访问SQL Server 2008服务器,首先要求对SQL Server进行正确配置,其内容将在下一节中介绍;其次是要求拥有对SQL Server 2008实例的访问权——登录名,其内容将要在9.2.1小节中介绍。

(3) 访问SQL Server 2008数据库,这要求拥有对SQL Server 2008数据库的访问权——数据库用户,其内容将要在9.2.2小节中介绍。

(4) 访问SQL Server 2008数据库中的表和列,这要求拥有对表和列的访问权——权限,其内容将要在9.5.2小节中介绍。

2.对SQL Server实例访问,SQL Server 2008支持哪几种身份验证模式?

答:SQL Server 2008支持两种身份验证模式:Windows身份验证模式和混合身份验证模式。

3.在SQL Server 2008中有几类角色?

答:三类:服务器角色、数据库角色、应用程序角色

4.什么是架构,架构有什么用处?

答:SQL Server 2008实现了ANSI中有关架构的概念。架构是一种允许用户对数据库对象进行分组的容器对象。架构对如何引用数据库对象有很大的影响。在SQL Server 2008中,一个数据库对象通过4个命名部分所组成的结构来引用:

<服务器>.<数据库>.<架构>.<对象>

使用架构的一个好处是它可以将数据库对象与数据库用户分离,可以快速地从数据库中删除数据库用户。在SQL Server 2008中,所有的数据库对象都隶属于架构,在对数据库对象或者对其存在于数据库应用程序中的相应引用没有任何影响的情况下,可以更改并删除数据库用户。这种抽象的方法允许用户创建一个由数据库角色拥有的架构,以使多个数据库用户拥有

相同的对象。

5.如何管理SQL Server 2008的权限层次结构?

答:对数据的访问是通过SQL Server 2008的权限层次结构进行管理的。可以使用GRANT、DENY和REVOKE语句来管理这个权限层次结构。

●GRANT:允许一个数据库用户或角色执行所授权限指定的操作。

●DENY:拒绝一个数据库用户或角色的特定权限,并且阻止它们从其他角色中继承

这个权限。

●REVOKE:取消先前被授予或拒绝的权限。

6.管理对可编程对象的访问主要涉及哪些可编程对象?

答:可编程对象,如存储过程及用户定义的函数,具有自己的安全上下文。数据库用户需要获得授权以执行存储过程、函数和程序集。一旦数据库引擎检查了执行可编程对象的权限,就会在可编程对象内部对其所执行的操作进行权限检查。当数据库对象按顺序相互访问时,该访问顺序将形成一个所有权链。

第六章习题参考答案

1.T-SQL和SQL的关系是什么?

答:SQL全称是“结构化查询语言(Structured Query Language)”SQL(Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。T-SQL是标准SQL 程式设计语言的增强版,它是用来让应用程式与SQL Server 沟通的主要语言。T-SQL 提供标准SQL的DDL 和DML 功能,加上延伸的函数、系统预存程序以及程式设计结构(例如IF 和WHILE)让程式设计更有弹性。可以理解成T-sql是SqlServer支持的sql语法,而不是软件。

2.试述T-SQL语言的特点。

答:特点包括:

●一体化。T-SQL语言包含4个组成元素:数据查询语言(SELECT语句)、数据操纵

语言DML(如INSERT, UPDA TE, DELETE语句)、数据定义语言DDL(如CREA TE,

DROP语句)和数据控制语言(如COMMIT, ROLLBACK等语句)。这些元素集数据

定义、数据查询、数据操纵、数据控制、事务管理和附加语言元素为一体,方便用

户使用。其中数据查询语言SELECT是它的核心。

●两种使用方式:T-SQL支持交互方式和嵌入式方式。用户既可以使用T-SQL直接查

询存储在数据库中的数据,又可以把T-SQL语句嵌入到某种高级程序设计语言(如Visual C#.NET、Java等)中使用。

●非过程化语言。在T-SQL语句中,用户只需指出“做什么”,而不需要指出系统“如

何做”,语句具体的操作过程由系统自动完成。因此不同的数据库系统均可以使用相

同的T-SQL语句作为数据输入与管理的接口。

●以记录集合作为操作对象。所有T-SQL语句以集合作为输入,并返回集合作为输出。

这种集合特性允许一条T-SQL语句的输出作为另一条T-SQL语句的输入,所以

T-SQL可以嵌套,这使其具有极大的灵活性和强大的功能,在很多情况下,一条T-SQL

语句就可以实现其他语言中需要大段程序才能实现的功能。

类似于人的思维习惯,容易理解和掌握。T-SQL与其他编程语言相比,要简单得多。

3.T-SQL的标识符必须遵循哪些原则?

答:在定义标识符时必须遵守以下规定:

(1)标识符的首字符必须是下列字符之一。

统一码(Unicode)2.0标准中所定义的字母,包括拉丁字母a-z和A-Z,以及来自其他语言的字符。

下划线“_”、符号“@”或者数字符号“#”。

在SQL Server中,某些处于标识符开始位置的符号具有特殊意义。以“@”符号开始的标识符表示局部变量或参数;以一个数字符号“#”开始的标识符表示临时表或过程,如表“#gzb”就是一张临时表;以双数字符号“##”开始的标识符表示全局临时对象,如表“##gzb”则是全局临时表。

注意:某些Transact-SQL函数的名称以双at符号(@@)开始,为避免混淆这些函数,建议不要使用以@@开始的名称。

(2)标识符的后续字符可以是以下3种。

统一码(Unicode)2.0标准中所定义的字母。

来自拉丁字母或其他国家/地区脚本的十进制数字。

“@”符号、美元符号“$”、数字符号“#”或下划线“_”。

(3)标识符不允许是Transact-SQL的保留字。

(4)不允许嵌入空格或其他特殊字符。

例如要为明日科技公司创建一个工资管理系统,则可以将其数据库命名为“MR_GZGLXT”。名字除了要遵守命名规则以外,最好还能准确表达数据库的内容,本例中的数据库名称是以每个字的大写字母命名的,其中还使用了下划线“_”。

4.T-SQL的注释方式是什么?

答:注释也称注解,是程序代码中不执行的文本字符串。注释主要描述程序名称、作者名称、变量说明、代码更改日期、算法描述等。使用注释对代码进行说明,不仅能够使程序易读易懂,而且有助于日后对程序的管理与维护。

在T-SQL中,可以使用两种类型的注释符:

●注释符“--”用于单行注释

使用双连字符“--”作为注释符时,从双连字符开始到行尾的内容都是注释内容。这些注

用于在一行中对代码进行解释和描述。

●注释符“/* */”,用于注释多行文字

在正斜线星号“/*…*/”注释方式中,开始注释对“/*”和结束注释对“*/”之间的所有内容均视为注释。这些注释字符既可用于多行文字,也可以与执行的代码处在同一行,甚至还可以在可执行代码的内部。

5.说明变量的分类及各类变量的特点。

答:在SQL中,我们常常使用临时表来存储临时结果,但当结果仅仅是一个数据或者是几个数据时,还要去建一个表,显得就比较麻烦,我们可以考虑使用变量,另外,当一个SQL语句中的某些元素经常变化时,比如选择条件,也可以使用变量。变量分为局部变量和全局变量。在SQL Server 2008系统中,变量的命名规则如下:

●第一个字符必须是字母、数字、下画线或@符号。需要注意的是,符号“@”开头

的变量表示局部变量、符号“@@”开头的变量表示全局变量。

●变量名不能是T-SQL语言的系统保留字(如IF、ELSE、CONTINUE等),包括大写

和小写形式。

变量名中不允许出现空格或其他特殊字符

6.如何使用IF…ELSE和WHILE流程控制语句?

答:我们经常会遇到这种情况:一个逻辑表达式的结果要么为真,要么为假。根据不同的结果,对应于不同的操作。这时就需要使用IF…ELSE语句在程序中对于给定条件进行判断。语法格式如下:

IF 条件表达式

{语句体1}

[ELSE

{语句体2}]

说明:

●条件表达式的运算结果应该为TRUE(真)或FALSE(假),如果条件表达式中含有

SELECT语句,则必须用圆括号将SELECT语句括起来;

●当条件表达式的值为TRUE时执行语句体1,然后执行IF语句之后的语句;如果条件

表达式的值为F ALSE,则执行ELSE关键字后面的语句体2,然后执行IF语句之后的语句;

可以在IF区域或者ELSE区域嵌套另一个IF语句,对于嵌套的层数没有限制。

WHILE语句是一种将同一段代码循环运行多次的方法,它可以根据一个条件表达式的结果,将代码从0次开始运行到指定次数,或者是持续运行直到遇见BREAK关键字退出循环。WHILE语句的语法格式如下:

WHILE 条件表达式

循环体

语句的执行流程如图3-7所示。

图3-7 WHILE语句的流程

说明:

●条件表达式的运算结果为TRUE或FALSE:当条件表达式的值为TRUE时,执行循

环体中的语句,然后再次进行条件判断,重复上述操作,直至条件表达式的值为FALSE,退出循环体的执行。

●循环体中可以继续使用WHILE语句,称之为循环的嵌套。

可以在循环体内设置BREAK和CONTINUE关键字,以便控制循环语句的执行。

7.试述常用函数的分类及各函数的特点。

答:在SQL中常用函数分为:数学函数、字符串函数和日期时间函数,它们的特点如下:

数学函数可以执行对数、指数、三角函数、平方根等数学运算,并返回运算结果。

对输入的字符串进行各种操作的函数称为字符串函数。与数学函数一样,字符串函数也是经常使用的函数。

SQL Server 2008提供的日期时间函数不多,但非常实用。这些函数可以执行正确的DA TETIME 计算,并考虑闰年及其他历法的细节。在T-SQL中,可以将日期时间函数用在SELECT查询语句的选择列表或用于WHERE子句中。

第七章习题参考答案

1. 简述SELECT语句的基本语法。

SELECT基本语法格式为:

CREA T TABLE 表名

列的名称数据类型[NOT NULL|NULL] /*指定列名称、数据类型、是否为空*/

[COLLA TE 排序规则名称] /*指定列的排序规则*/

[DEFAUL T 默认值] /*指定列的默认值*/

[列的约束条件][,…n] /*指定列的约束条件*/

2.简述SELECT语句中的FROM、WHERE、GROUP以及ORDER子句的作用。

在SELECT语句中:

1)FROM子句:用来指定数据来源的表;

2)WHERE子句:用来限定返回行的搜索条件;

3)GROUP BY子句:用来指定查询结果的分组条件;

4)ORDER BY子句:用来指定结果的排序方式。

3.简述WHERE子句可以使用的搜索条件及其意义。

在WHERE子句中,可以使用的查询条件有以下几种情况:

1)使用比较运算符:比较运算符来比较表达式值的大小,运算结果为TRUE或者

FALSE。

2)使用逻辑运算符:使用逻辑运算符,连接WHERE子句中的多个查询条件。

3)使用LIKE模式匹配:使用LIKE模式匹配运算符,用于指出一个字符串是否与指

定的字符串相匹配。

4)使用BETWEE N和IN运算符来确定范围。

5)使用NULL运算符判断一个表达式的值是否为空值。

4.举例说明什么是内连接、外连接和交叉连接?

内连接是最常见的一种连接,也被称为普通连接或自然连接,它是系统默认形式,在实际使用中可以省略INNER关键字。如从student表和sc表中,查询所有不及格的学生的学号、学生姓名、所属院系、所选的课程号和成绩。

T-SQL语句为:

SELECT student.sno,sname,sdept,cno,grade

FROM student,sc

WHERE student.sno=sc.sno and grade<60

外连接是指连接关键字JOIN后面表中指定列连接在前一表中指定列的左边或者右边,如果两表中指定列没有匹配行,则返回空值。有左外连接、右外连接和全连接三种。如用左外连接查询student表和sc表中的学生的Sno、Cno、Sname和Grade。

左外连接T-SQL语句为:

SELECT student.sno,cno,sname,grade

FROM student LEFT JOIN sc ON sc.sno=student.sno

交叉连接即两个表的笛卡尔积,返回结果是由第一个表的每行与第二个表的所有行组合后形成的表,因此,数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。如交叉连接student和sc两表。

T-SQL语句为:

SELECT * FROM student

SELECT * FROM sc

SELECT student.*,sc.* FROM student CROSS JOIN sc

5.INSERT语句的V ALUES子句中必须指明哪些信息,必须满足哪些要求?

INSERT语句中的V ALUES子句为列表中的各列指定值。如果省略列表,则V ALUES 子句需要给出插入表中每一列的值。

6. 用T-SQL语句创建数据库“销售管理”,并创建其中三张数据表“商品”,“部门”和“销售”。结构如下:

商品(商品号char(6),商品名称nchar(10),单价money)

部门(部门号char(6),部门名称nchar(10),部门经理nchar(8),电话char(12))

销售(部门号char(6),商品号char(6),数量int,金额money)

创建销售管理数据库:

CREATE DATABASE 销售

ON

(name='销售',

filename='e:\database\销售.mdf',

size=10,

maxsize=50)

创建商品表:

USE 销售

CREATE TABLE 商品(

商品号char(6) not null,

商品名称nchar(10),

单价money)

创建部门表:

USE 销售

CREATE TABLE 部门(

部门号char(6) not null,

部门名称nchar(10),

部门经理nchar(8)

创建销售表:

USE 销售

CREATE TABLE 销售(

部门号char(6) not null,

商品号char(6) not null,

数量int,

金额money)

7. 用T-SQL语句为上一题中创建的每张表至少添加10条记录。

使用INSERT语句插入记录(略)

8. 使用数据库stuinfo,进行如下操作:

1)将任课教师Daad改为Forster

语句为:

UPDATE course SET cteacher=N'Forster' WHERE cteacher=N'Daad'

2)增加课程vc++,课程号为07,学分为6,任课教师为Emily

语句为:

INSERT INTO course VALUES ('07','vc++','6','Emily')

3)删除学生贾新民的相关记录

DELETE FROM student WHERE sname=N'贾新民'

4)查询所有学生的姓名及年龄

SELECT sname,sage FROM student

5)查询所有考试不及格的学生的学号、姓名和成绩

SELECT sno,sname,grade

FROM student,sc

Where student.sno=sc.sno and grade<60

6)查询年龄在20-22岁之间的学生姓名、年龄、所属院系和政治面貌

SELECT sname,age,sdept,spolicitalstatus FROM student

WHERE sage between 20 and 22

7)查询所有姓李的学生的学号、姓名和性别

SELECT sno,sname,ssex FROM student WHERE sname like N'李%'

8)查询名字中第2个字为“华”字的女学生的姓名、年龄和所属院系

SELECT sname,sage,sdept FROM student WHERE sname like N'_华'

9)查询所有选了3门课以上的学生的学号、姓名、所选课程名称及成绩

SELECT student.sno,sname,cname,grade FROM student,course,sc

W HERE student.sno=sc.sno and https://www.360docs.net/doc/9619173551.html,o=https://www.360docs.net/doc/9619173551.html,o

GROUP BY sc.sno HAVING COUNT(*)>3

10)查询每个同学各门课程的平均成绩和最高成绩,按照降序排列输出学生姓名、

平均成绩和最高成绩

SELECT sname,AVG(grade) as '课程平均分', MAX(grade) as '课程最高分'

FROM student,sc

WHERE student.sno=sc.sno

ORDER BY AVG(grade) DESC

GROUP BY student.sno

11)查询所有学生都选修了的课程号和课程名

SELECT cno,cname FROM course WHERE NOT EXISTS(

S ELECT * FROM student WHERE NOT EXISTS(

SELECT * FROM SC WHERE https://www.360docs.net/doc/9619173551.html,o=https://www.360docs.net/doc/9619173551.html,o and sc.sno=student.sno))

第八章习题参考答案

1.在索引命令中使用关键字CLUSTERED和NONCLUSTERED分别表示将建立的是_聚集索引和非聚集_索引。

2.访问数据库中的数据有两种方法,分别是:表扫描________和__索引查找_______。

3.索引一旦创建,将由_数据库管理系统自动管理和维护。

4.在一个表上,最多可以定义_1___个聚集索引,最多可以有_多个非聚集索引。

5.设有一个职员表为Customers,其上有客户姓名(Name),客户ID(ID)等列,表执行如下语句:

CREA TE CLUSTERED INDEX idx ON Customers(Name)

得到以下错误:

Cannot create more than one clustered index

原因是什么,为什么会出错?

答:因为在一个表中只能创建一个聚集索引。

第九章习题参考答案

1. 什么是数据的完整性?数据完整性的主要问题是什么?

答:

数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类:实体完整性(Entity Integrity)、域完整性(Domain Integrity)、参照完整性(Referential Integrity)、用户定义的完整性(User-definedIntegrity)。保证数据的完整性:1. 用约束而非商务规则强制数据完整性如果你按照商务规则来处理需求,那么你应当检查商务层次/用户界面:如果商务规则以后发生变化,那么只需要进行更新即可。假如需求源于维护数据完整性的需要,那么在数据库层面上需要施加限制条件。如果你在数据层确实采用了约束,你要保证有办法把更新不能通过约束检查的原因采用用户理解的语言通知用户界面。除非你的字段命名很冗长,否则字段名本身还不够。— Lamont Adams只要

有可能,请采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于商务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。

2. 什么是域完整性、实体完整性和引用完整性?

答:实体完整性,要求表中每一条记录(每一行数据)是惟一的,即它必须至少拥有一个惟一标识以区分不同的数据行。实现方法有:主键约束PRIMARY KEY、惟一性约束UNIQUE、惟一索引UNIQUE INDEX、标识IDENTITY等。

值域完整性,限定表中输入数据的数据类型与取值范围。实现方法:默认值约束DEFAULT 或默认对象、核查约束CHECK、外键约束FOREIGN KEY、规则RULE 、数据类型、非空性约束NOT NULL等。

引用完整性,指对数据库进行添加、删除、修改数据时,要维护表间数据的一致性。实现方法:外键约束FOREIGN KEY、核查约束CHECK、触发器TRIGGER、存储过程PROCEDURE。

用户定义的完整性,用于实现用户特殊要求的数据规则或格式。实现方法:默认值DEFAUL T、核查约束CHECK、规则RULE 等。

3. 约束的作用和类型是什么?

答:答:在SQL Server 2008中,共有6种约束:主键约束(primary key constraint)、唯一性约束(unique constraint)、检查约束(check constraint)、默认约束(default constraint)、外部键约束(foreign key constraint)和空值(NULL)约束。

4. DEFAULE约束的特点是什么?

答:默认约束指定在插入操作中如果没有提供输入值时,则SQL Server系统会自动为该列指定一个值。默认约束可以包括常量、函数、不带变元的内建函数或者空值。

使用默认约束时,应该注意以下几点:每个字段只能定义一个默认约束;如果定义的默认值长于其对应字段的允许长度,那么输入到表中的默认值将被截断;不能为带有IDENTITY属性或者数据类型为timestamp的字段添加默认约束;如果字段定义为用户定义的数据类型,而且有一个默认绑定到这个数据类型上,则不允许该字段有默认约束。

5. 为社么要引入CHECK约束?

答:对表中的某些列创建CHECK(检查)约束是为了实施数据的域完整性约束。检查约束对输入列或者整个表中的值设置检查条件,以限制输入值,保证数据库数据的完整性和有效性。使用检查约束时,应该考虑和注意以下几点:一个列级检查约束只能与限制的字段有关;一个表级检查约束只能与限制的表中字段有关;一个表中可以定义多个检查约束;每个CREA TE TABLE 语句中的每个字段只能定义一个检查约束;在多个字段上定义检查约束,则必须将检查约束定义为表级约束;当执行INSERT 语句或者UPDA TE 语句时,检查约束将验证数据。

6. 主键约束的作用和创建方式是什么?

答:一个表通常可以通过一个列或多个列组合的数据来唯一标识表中的每一行,这个列或列的组合就称为表上的主键。创建表中的主键是为了保证数据的实体完整性。PRIMARY KEY (主键)约束用于定义基本表的主键,它是唯一确定表中每一条记录的标识符,其值不能为NULL,也不能重复,以此来保证实体的完整性。

创建主键的方法有两种:使用SSMS操作法和Transact-SQL 语句操作法。

使用SSMS图形化界面创建主键约束

在“对象资源管理器”窗口中,展开“数据库”节点下某一具体数据库,展开“表”节点,右键单击要创建主键的表,从弹出的快捷菜单中选择“设计”命令,这时“文档”窗口中打开“表设计器”页,可对表进行进一步定义;选中表中的某列,单击鼠标右键,从弹出的快捷菜单中选择“设置主键”命令即可为表设置主键,

创建或更改表时可通过定义PRIMARY KEY 约束来创建主键。

命令格式:

CREA TE TABLE table_name

( column_name data_type

[ DEFAUL T default_expression ] | [ IDENTITY [ ( seed ,increment ) ] ]

[ [ CONSTRAINT constraint_name ]

PRIMARY KEY [ CLUSTERED | NONCLUSTERED ]

] [,... n]

7. UNIQUE约束的使用场景是什么?

答:一个表只能有一个主键,若有多列或多个列组合需要实施数据惟一性,则可采用惟一约束。惟一约束与主键约束的主要区别在于:惟一约束用于非主键列,使之满足数据惟一性要求;惟一约束允许NULL值,而主键不允许;惟一约束可以在多列或多个列组合上分别设置,而主键只能在一列或一个列组合上设置。

8. 外键约束的特点是什么?

答:FOREIGN KEY约束是用于建立和加强两个表数据之间的链接的一列或多列。设置表中的外键约束是为了保证数据的参照完整性。SQL Server 2008中的关系保证了表之间的连接,用外键表(参照关系)中的外键引用主键表(被参照关系)中的主键。一旦创建了关系并将关系成功地加入到数据库中,就能够保证数据的参照完整性。FOREIGN KEY约束确保了同一个表或者不同表之间的引用完整性。

第十章习题参考答案

1. 试说明存储过程的特点及分类

存储过程是事先编好的、存储在数据库中一组被编译了的T-SQL命令集合,这些命令用来完成对数据库的指定操作。

SQL Server 2008支持不同类型的存储过程:系统存储过程、扩展存储过程、用户存储过程,以满足不同的需要。

2. 举例说明存储过程的定义与调用

创建名为snoquery的存储过程:通过用户输入学生学号来查询学生的姓名、年龄、性别和所属院系。

定义存储过程:

(1)启动SSMS,展开服务器。

(2)展开所需的“数据库”文件夹,展开要在其中创建存储过程的数据库。本例中,我们展开stuinfo数据库。

(3)展开“可编程性”文件夹,在“存储过程”文件夹上右击鼠标,在弹出的快捷菜单中选择“新建存储过程”项。

(4)系统弹出T-SQL语句编写窗口,其中的代码是创建存储过程的格式说明。我们输入以下T-SQL代码:

CREATE PROCEDURE snoquery

@xuehao char(10)

AS

SELECT sno 学号,sname 学生姓名,sage 年龄,ssex 性别,sdept 所属院系

FROM student

WHERE sno=@xuehao

调用存储过程:

代码输入结束后,只要将以上代码在“查询分析器”里执行一次,系统就会在当前数据库中创建一个名为snoquery的存储过程。点击刷新按钮,选择stuinfo数据库,在左边的树型列表中选择“存储过程”,就可以看到属于dbo(database owner)的存储过程dbo.snoquery。

3. 举例说明触发器的使用

创建触发器stu_delete,实现如下功能:当按照学号删除student表中的某学生记录后,对应的该学生在sc表中的记录也被自动删除。

T-SQL语句为:

USE stuinfo

GO

CREATE TRIGGER stu_Delete ON student

FOR DELETE

AS

DELETE FROM sc WHERE sno=(SELECT sno FROM deleted)

执行后,我们查询student表和sc表,如图7-6所示,可以看到两个表中均存在学号为20070102的学生记录。

在student表中执行数据删除语句:

DELETE FROM student WHERE sno='20070102'

执行结果如图7-7所示,student表中有一行受影响而sc表中有三行数据受影响。说明设定

的触发器被触发,sc表中的相应数据被自动删除。

第十一章习题参考答案

1.在SQL Server 2005中备份和还原的方法都有哪些?

答:Microsoft SQL Server 2005提供了4种不同的备份方式:完整备份和完整差异备份、部分备份和部分差异备份、事务日志备份、数据库文件和文件组备份。

2.数据库导入导出的概念和作用是什么?

答:通过导入和导出操作可以在SQL Server 2005和其他异类数据源(例如Excel或Oracle数据库)之间轻松地移动数据。例如,可以将数据从Excel应用程序导出到数据文件,然后将该数据文件导入到SQL Server表中。导出是指将数据从SQL Server表复制到数据文件中。导入是指将数据从数据文件加载到SQL Server表中。

3.分离和附加数据库时,要注意哪些事项?

答:在进行分离和附加数据库操作时,首先要注意以下几点:

(1) 不能进行更新,不能运行任务,用户也不能连接在数据库上。

(2) 在移动数据库之前,为数据库做一个完整的备份。

(3) 确保数据库要移动的目标位置及将来数据增长能有足够的空间。

(4) 分离数据库并没有将其从磁盘上真正的删除。如果需要,可以对数据库的组成文件进行移动、复制或删除。

4. 自动化管理任务的概念。

答:作为SQL Server 2005数据库的管理员,有许多日常工作是相同或相似的,而且需要每天(或每隔一段时间)重复操作。这就使这份工作变得有些枯燥乏味。为了使管理更加方便,SQL Server 2005提供了自动化管理任务的机制,很多具有重复性的工作可以交给SQL Server 2005来自动完成。

第十二章习题参考答案

1.什么是事务?简述事务ACID原则的含义。

答:事务(TRANSACTION)是由对数据库的若干操作组成的一个逻辑工作单元,这些操作要么都执行,要么都不执行,是一个不可分割的整体。事务用这种方式保证数据满足并发性和完整性的要求。使用事务可以避免发生有的语句被执行,而另外一些语句没有被执行,从而造成数据不一致的情况。

事务的处理必须满足4原则,即原子性(A)、一致性(C)、隔离性(I)和持久性(D),简称ACID

原则:

●原子性(Atomicity):事务必须是原子工作单元,事务中的操作要么全部执行,要么全

部不执行,不能只完成部分操作。原子性在数据库系统中,由恢复机制来实现;

●一致性(Consistency):事务开始前,数据库处于一致性的状态;事务结束后,数据库

必须仍处于一致性状态。数据库一致性的定义是由用户负责的,如前面所述的银行转账,用户可以定义转账前后两个账户金额之和应该保持不变;

●隔离性(Isolation):系统必须保证事务不受其他并发执行事务的影响,即当多个事务

同时运行时,各事务之间相互隔离,不可互相干扰。事务查看数据时所处的状态,要么是另一个并发事务修改它之前的状态,要么是另一个并发事务修改它之后的状态,事务不会查看中间状态的数据。隔离性通过系统的并发控制机制实现;

●持久性(Durability):一个已完成的事务对数据所做的任何变动在系统中都是永久有效

的,即使该事务产生的修改是不正确,错误也将一直保持。持久性通过恢复机制实现,发生故障时,可以通过日志等手段恢复数据库信息。

2.为什么要使用锁?SQL Server 2008提供了哪几种锁的模式。

答:在单用户数据库中,由于只有一个用户修改信息,不会产生数据不一致的情况,因此并不需要锁。当允许多个用户同时访问和修改数据时,就需要使用锁来防止对同一个数据的并发修改,避免产生丢失更新、脏读、不可重复读和幻读等问题。

锁(lock)的基本原则是允许一个事务更新数据,当必须回滚所有修改时,能够确信在第一个事务修改完数据之后,没有其他事务在数据上进行过修改。即锁提供了事务的隔离性。

事务一旦获取了锁,则在事务终止之前,将一直持有该锁。如果其他事务尝试访问数据资源的方式与该事务所持有的锁不兼容,则其他事务必须停止执行,直到拥有锁的事务终止、不兼容的锁被释放,才可以使用解锁的数据资源。在SQL Server 2008中,系统能够自动处理锁的行为。

共有6种锁,分别是:共享锁、更新锁、排他锁、意向锁、架构锁和大容量更新锁。

3.什么是死锁?如何预防死锁?怎么解决死锁?

答:死锁就是两个事务各对一个资源加锁,都想使用对方的资源,但同时又不愿放弃自己的资源,于是一直等待对方放弃资源。如果不进行外部干涉,死锁将一直持续。死锁会造成资源的大量浪费,甚至会使系统崩溃。

解决死锁最好的方法就是防止死锁的发生,即不让满足死锁条件的情况发生。为此,用户需要遵循以下原则:

(1) 尽量避免并发地执行涉及到修改数据的语句;

(2) 要求每个事务一次就将所有要使用的数据全部加锁,否则就不予执行;

(3) 预先规定一个加锁顺序。所有的事务,都必须按这个顺序对数据进行加锁。例如,不同的过程在事务内部对对象的更新执行顺序应尽量保持一致;

(4) 每个事务的执行时间不可太长,尽量缩短事务的逻辑处理过程,及早提交或回滚事务。

对程序段长的事务可考虑将其分割为几个事务;

(5) 一般不要修改SQL Server事务的默认级别。不推荐强行加锁。

4. CREA TE PARTITION FUNCTION命令的RANGE 子句定义了什么?

答:定义了边界值,一个用于第一个边界值之前的任何值;一个用于第一个和第二个边界值之间的值;一个用于第二个和第三个边界值之间的值;还有一个用于边界值之外的任何值。

5. CREA TE PARTITION FUNCTION命令的V ALUE 子句定义了什么?

答:values后面为要插入的值。

6. CREA TE PARTITION SCHEME命令定义了什么?

答:定义了架构

7. 哪个子句用来分区一个表或索引?

答:利用原表重建分区表。CREA TE TABLE T (ID NUMBER PRIMARY KEY, TIME DA TE); 如果表已创建。用下面子句就可以完成INSERT INTO T SELECT ROWNUM, CREA TED FROM DBA_OBJECTS;

8. 哪3个操作可以用来管理分区,每个操作的目的又是什么?

答:1. 切换分区:使用AL TER TABLE 语句的SWITCH 子句可以将已填充的表或分区与空的表或分区进行交换。

2. 合并分区:使用AL TER PARTITION FUNCTION 语句可以合并分区。执行合并操作时,在该语句中,指定了边界值的分区将被删除,并且该数据合并到相邻的分区中。

3. 拆分分区:拆分分区也使用AL TER PARTITION FUNCTION 语句。拆分分区将创建新分区,并相应的重新分配数据。新的分区创建在基于分区函数的每一个分区方案中指定为下一个文件组的文件组中。

9. 哪个运算符可用来在表之间移动分区?

答:SPLIT运算符

10. SQL Server Integration Services(SSIS)有3种不同类型的控制流组件:容器、_任务_和_优先约束。

11. SQL Server Integration Services(SSIS)有4种不同类型的数据流组件:提取数据的源、修改和聚合数据的转换、加载数据的目标以及将数据流组件的输出和输入连接为数据流的路径。

12. 简述什么是OLAP。

答:SQL Server 2008分析服务(Microsoft SQLServer Analysis Services,SSAS)是微软SQL Server 2008中的多维联机分析处理(Online Analytical Processing,OLAP)组件,它在商业智能(Business Intelligence,BI)分析方案中集成关系型和OLAP数据。分析服务允许开发人员设计、创建和管理包含从其他数据源(如关系数据库)聚合的数据的多维结构,以实现对OLAP的支持。对于数据挖掘应用程序,分析服务允许开发人员设计、创建和可视化处理那些通过使用行业标准数据挖掘算法,并根据其他数据源构造出来的数据挖掘模型。商业智能(BI)、数据仓库、分析服务的关系。

SQLSERVER2008实用教程实验参考答案(实验7)

一、存储过程 1. 创建存储过程,使用Employees表中的员工人数来初始化一个局部变量,并调用这个存储过程。 CREATE PROCEDURE TEST@NUMBER1INT OUTPUT AS BEGIN DECLARE@NUMBER2INT SET@NUMBER2=(SELECT COUNT(*)FROM Employees) SET@NUMBER1=@NUMBER2 END 执行该存储过程,查看结果。 DECLARE@num INT EXEC TEST@num OUTPUT SELECT@num 2. 创建存储过程,比较两个员工的实际收入,若前者比后者高就输出1,否则就输出0。CREATE PROCEDURE COMPA@ID1char(6),@ID2char(6),@BJ int OUTPUT AS BEGIN DECLARE@SR1float,@SR2float SET@SR1=(SELECT InCome-OutCome FROM Salary WHERE EmployeeID=@ID1) SET@SR2=(SELECT InCome-OutCome FROM Salary WHERE EmployeeID=@ID2) IF@SR1>@SR2 SET@BJ=1 ELSE SET@BJ=0 END 执行该存储过程,查看结果。 DECLARE@BJ int EXEC COMPA'504209','302566',@BJ OUTPUT SELECT@BJ 3. 创建添加职员记录的存储过程EmployeeAdd。 CREATE PROCEDURE EmployeeADD ( @employeeid char(6),@name char(10),@education char(4),@birthday datetime, @workyear tinyint,@sex bit,@address char(40),@phonenumber char(12), @departmentID char(3) ) AS BEGIN INSERT INTO Employees VALUES(@employeeid,@name,@education,@birthday, @workyear,@sex,@address,@phonenumber,@departmentID) END

数据库原理及应用(SQL Server 2008)第9章答案

9.6.1 选择题 A C C B 9.6.2 填空题 1、Windows身份验证模式混合验证模式。 2、端点SQL Server登录名数据库 3、IMPERSONATE 9.6.2 简答题 1、简述Windows身份验证模式和混合验证模式的区别。 在Windows身份验证模式中,用户通过Microsoft Windows用户帐户连接时,SQL Server 使用Windows操作系统中的信息验证帐户名和密码。在混合模式中,当客户端连接到服务器时,既可能采取Windows身份验证,也可能采取SQL Server身份验证。当设置为混合模式时,允许用户使用Windows身份验证和SQL Server身份验证进行连接。 Windows身份验证模式是默认的身份验证模式,它比混合模式安全。Windows身份验证模式使用Kerberos安全协议,通过强密码的复杂性验证提供密码策略强制、帐户锁定支持、支持密码过期等。通过Windows用户帐户连接的用户可以使用Windows验证的受信任连接。如果必须选择"混合模式"并要求使用SQL Server帐户登录,则必须为所有的SQL Server帐户设置强密码。 2、在Microsoft SQL Server 2008 R2系统中,针对所有对象的权限有哪些? 针对所有对象的权限有CONTROL、ALTER、ALTER ANY、TAKE OWNERSHIP、INPERSONATE、CREATE及VIEW DEFINITION等。 3、ALTER ANY权限与ALTER权限有哪些差别? ALTER权限为被授权者授予更改特定安全对象的属性的权限,实际上这些权限可以包括该对象除所有权之外的权限。实际上,当授予对某个范围内的ALTER权限时,也授予了更改、删除或创建该范围内包含的任何安全对象的权限。 ALTER ANY权限与ALTER权限是不同的。ALTER权限需要指定具体的安全对象,但是ALTER ANY权限则是与特定安全对象类型相关的权限,不针对某个具体的安全对象。

数据库原理及应用(SQL-Server-2008)全书答案--清华大学出版社-马建红-李占波主编第五

第五章习题及实验答案 习题答案 一、选择题 1、A 2、A 3、B 4、B 5、D 6、B 7、A 8、C 二、填空题 1、用该数据库管理系统自带的SQL Server Management Studio可视化地创建数据表、使用Transact-SQL语言直接创建数据表 2、DROP TABLE 3、DEFAULT约束、CHECK约束、主键约束、UNIQUE约束、外键约束 三、简答题 1、答:使用CREATE TABLE语句创建数据表的格式如下: CREATE TABLE 数据表名字( 字段名称1 (对字段的定义部分) 字段名称2 (对字段的定义部分) ...... 字段名称n (对字段的定义部分) ); 2、答:不一样。DELETE是删除数据表中的所有数据,而DROP是删除数据表的结构。 3、答:INSERT INTO table_or_view_name (column_list) VALUES (expression) 4、答:域完整性,也可以称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。域完整性通常是经过使用有效性检查来实现的,还可以通过限制数据类型、格式或者可能的取值范围来实现。例如,设置员工进入公司的日期大于员工的出生日期,在“性别”列中,限制其取值范围为“男”和“女”,这样就不能在该列输入其他一些无效的值。最简单的域完整性方法是数据类型,例如,在出生日期列中定义该列的数据类型是DATETIME,则该列就不会出现其他一些不符合日期格式的数据。 实体完整性,也可以称为行完整性,要求表中的所有行有一个唯一的标识符,这种标识符一般称为主键值。例如,对于所有的中国公民来说,居民身份证号码是唯一的,使用居民身份证号码可以唯一地确定某一个人,因此可以把公民的居民身份证号码作为主键对待。主键值是否能够被修改或表中的全部数据是否能够被全部删除都要依赖于主键表和其他表之

数据库技术与应用SQLServer2008第9章习题参考答案

数据库技术与应用SQLServer2008第9章习题参考答案 第9章习题解答 1.思考题 (1)VB对象的3要素是指什么?它们的作用是什么? 答:对象的属性、方法、事件就称为对象的三要素。 1)属性 属性描述对象的性质或特征,即该对象是什么样的。 2)方法 方法反映对象的行为,即该对象会干什么。 3)事件 事件指明对象在什么条件下发生什么事情,即在什么条件下执行哪段代码。 (2)什么是变量的作用域?作用域有哪些类型?什么是变量的生存期?生存期有哪些类型? 答: 1)变量的作用域是指变量的有效范围。 2)根据作用域,变量可分为局部变量、窗体级变量、模块级变量、全局变量。 局部变量:在过程体内部定义,其作用域是从定义起到所在语句块或过程结束为止的局部范围,其他地方不能使用。 窗体级变量:是在窗体代码的通用声明区用Dim或Private关键字定义的变量,它不属于该窗体的任何过程,可以被本窗体内的所有过程访问,而不能为其他窗体或模块使用。窗体级变量与窗体的生存期一样,只要窗体不消失,它就不消失。 模块级变量:与窗体级变量同级别,它是在模块的“通用声明”区用Dim或Private 关键字定义的变量。它不属于该模块的任何过程,可以被本模块内的所有过程访问,而不能用在其他模块或窗体中。 全局变量:是在窗体或模块的通用声明区用Public关键字进行定义的变量,它在整个工程的所有过程中均可使用,且在应用程序运行

过程中一直存在。 3)变量的生存期表示它可以存储值的时间周期。在生存期内变量的值可以更改,但变量总是存储某些值。即指在程序执行的动态过程中,变量在哪个阶段是存在的。 4)局部变量根据生存期分为动态局部变量和静态局部变量,两者的区别是: (a)动态局部变量的生存期是:程序执行到定义该变量的Dim 语句时,在内存建立起该变量,此时该变量“诞生”了;程序继续往下执行到该变量所在的程序块(或过程)结束时,该变量“死亡”,其代表的值也不复存在。如果该变量所在过程再次执行,再次执行到定义该变量的Dim语句则一个新的变量“诞生”,与上次已“死亡”的同名的变量毫无关系。(b)静态局部变量的生存期是:程序第一次执行到定义该变量的Static语句时,在内存建立起该变量,此时该变量“诞生”了;程序继续往下执行,甚至超出该变量所在的程序块(或过程),该变量一直存在,其代表的值也存在,只是不能使用。 (3)在同一模块、不同过程中声明的相同变量名,两者是否表示同一变量?有没有联系? 答:不是同一个变量;过程内部声明的变量是局部变量,并不能在过程范围之外访问,即使变量名相同,也是属于指定过程的独立变量,过程执行完毕立即清除。表示不同的变量,没有任何关系。 (4)VB中将数字字符串转换成数值,用什么函数?取字符串中的某几个字符,用什么函数?大小写字母间的转换用什么函数? 答: 1)将数字字符串转换成数值,用函数val()函数,如val ("1243AB"); 2) 取字符串中的某几个字符,用函数LEFT()函数、MID()函数和RIGHT ()。如LEFT("12ABC",3), MID("12ABC",2,3), RIGHT("123AB",2); 3) 大小写字母间的转换用函数Lcase()和Ucase ()。如Lcase("ABCD"), Ucase("abcd")

数据库技术与应用SQLServer2008第4章习题参考答案

数据库技术与应用SQLServer2008第4章习题参考答案 第4章习题解答 1.思考题 (1)在SQL的查询语句SELECT中,使用什么选项实现投影运算?什么选项实现连接运算?什么选项实现选择运算? 答:在SQL的查询语句中,select选项实现(投影)运算,from选项实现(连接)运算,where选项实现(选择)运算。 (2)一个子SELECT的结果作为查询的条件,即在一个SELECT 语句的WHERE子句中出现另一个SELECT语句,这种查询称为什么查询?其功能是什么? 答:称为嵌套查询。嵌套查询是T-SQL语言的高级查询,它可以用多个简单的基本查询构成复杂的查询,从而增强其查询功能。 (3)在SELECT语句中,定义一个区间范围的特殊运算符是什么?检查一个属性值是否属于一组值中的特殊运算符又是什么? 答:在SELECT 语句中,定义一个区间范围的特殊运算符是BETWEEN,检查一个属性值是否属于一组值的特殊运算符是IN。 (4)在T-SQL语句中,与表达式“工资BETWEEN 2000 AND 5000”功能相同的表达式如何写? 答:工资>=2000 AND 工资<=5000 (5)语句“SELECT * FROM 成绩表WHERE 成绩>(SELECT avg(成绩) FROM 成绩表)”的功能是什么? 答:查询成绩表中所有成绩大于平均成绩的记录 2.选择题 (1)在SELECT语句中,需显示的内容使用“*”,则表示(B)。 A.选择任何属性B.选择所有属性 C.选择所有元组D.选择主键 (2)查询时要去掉重复的元组,则在SELECT语句中使用(D)。 A.All B.UNION C.LIKE D.DISTINCT (3)在SELECT语句中使用GROUP BY C_NO时,C_NO必须

SQL Server从入门到精通 课后习题与答案

第一章 1.数据库技术的发展经历了哪3个阶段? 答:数据库技术的发展经历了人工管理、文件系统、数据库系统3个阶段。 2.数据模型通常由哪3个部分组成? 答:数据模型通常是由数据结构、数据操作和完整性约束3部分组成 3.下面哪些是关系数据库? (1)Access (2)SQL Server (3)Oracle (4)XML 第二章 1.SQL Server2008都有哪些版本? 答:SQL Server 2008的版本有:SQL Server 2008分为SQL Server 2008企业版、标准版、工作组版、Web版、开发者版、Express版、Compact 3.5版。 2.SQL Server2008的主要特点有哪些? 答:SQL Server 2008的主要特点为:可信任、高效、智能。 3.在安装SQL Server 2008时,可以选择哪些身份验证模式? 答:在安装SQL Server 2008时,可以选择:Windows身份验证模式、混合模式(SQL Server 身份验证和Windows身份验证) 第三章 1.启动SQL Server 2008服务的两种方式分别是什么?如何操作? 答:启动SQL Server 2008服务的两种方式分别是:后台启动SQL Server 2008服务和通过SQL Server配置管理器启动SQL Server2011。 后台启动SQL Server 2008服务步骤: 选择“开始”/“控制面板”/“控制面板”/“系统和安全”/“管理工具”/“服务”命令,打开“服务”窗口。在“服务”窗口中找到需要启动的SQL Server 2008服务,单击鼠标右键在弹出的快捷菜单中选择“启动”命令,等待Windows启动SQL Server 2008的服务。 通过SQL Server配置管理器启动SQL Server2011的步骤: 首先打开“SQL Server Configuration Manager”管理工具。在“SQL Server Configuration Manager”管理工具中左边树型结构下选择“SQL Server服务”,在“SQL Server Configuration Manager”管理工具右边列出的SQL Server服务中选择需要启动的服务,单击鼠标右键,在弹出的快捷菜单中选择“启动”命令,启动所选中的服务。 2.使用SQL Server 2008 Management Studio如何创建服务器组? 答:步骤: (1)打开“SQL Server Management Studio”工具。 (2)在“连接服务器”对话框中的“取消”按钮。 (3)在SQL Server Management Studio中执行“视图”/“已注册的服务器”菜单命令。(4)在“已注册的服务器”版面中选择服务器组要创建在哪种服务器类型当中。 (5)选择完服务器后,在“已注册的服务器”版面的显示服务器区域中选择“SQL Server 组”,

数据库教程(SQL Server)课后习题及答案

习题1 3、简述数据库系统的组成。 答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库管理员(DataBase Administrator ,DBA )和用户组成。 4、试述数据库系统的三级模式结构。这种结构的优点是什么? 答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,同时包含了二级映像,即外模式/模式映像、模式/内模式映像,如下图所示。 数据库应用1…… 外模式A 外模式B 模式 应用2应用3应用4应用5…… 模式 外模式/模式映像 模式/内模式映像 数据库系统的这种结构具有以下优点: (1)保证数据独立性。将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。 (2)有利于数据共享,减少了数据冗余。 (3)有利于数据的安全性。不同的用户在各自的外模式下根据要求操作数据,只能对限定的数据进行操作。 (4)简化了用户接口。按照外模式编写应用程序或输入命令,而不需了解数据库全局逻辑结构和内部存储结构,方便用户系统。 5、什么是数据的物理独立性与逻辑独立性?并说明其重要性。 答:(1)数据的物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,存储设备的更换,物理存储的更换,存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。 (2)数据的逻辑独立性是指数据库总体逻辑结构的改变,如修改数据模式,增加新的数据类型、改变数据间联系等,不需要相应修改应用程序。 (3)数据的独立性使得数据库中数据独立于应用程序而不依赖于应用程序,也就是说数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。相应的,数据的独立性也使得应用程序的编制不再依赖于数据的物理和逻辑结构,提高了应用程序的可移植性与鲁棒性。从理论上说,数据的独立性可以使数据的组织和应用程序的编制完全分离。 8、什么是数据模型? 答:数据模型(Data Model )是一种抽象模型,是对现实世界数据特征的抽象。 9、什么是概念模型?E-R 模型的三要素是什么? 答:概念模型是面向用户的模型,是现实世界到机器世界的一个中间层次。其基本特征是按用户观点对信息进行建模。概念模型是现实世界到信息世界的抽象,是数据库设计人员与用户进行交流的工具。 E-R 模型的三要素为: (1)实体(entity ) 实体是指客观存在并可相互区别的事物。实体可以是人、事或物,也可以是抽象的概念。例如:一件商品、一个客户、一份订单等都是实体。

SQLSERVER2008实用教程实验参考答案解析(实验4)

SQLSERVER2008实用教程实验参考答案解析(实验4) 实验4 数据库的查询和视图 一、SELECT语句的基本使用 1. 查询Employees表中所有数据 2. 查询Employees表中指定字段数据 3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行 4. 使用WHERE子句查询表中指定的数据 查询编号为’000001’的雇员的地址和 查询月收入高于2000元的员工 查询1970年以后出生的员工的和住址 5. 使用AS子句为表中字段指定别名 查询Employees表中女雇员的地址和,并将列标题显示为地址和查询Employees表中男雇员的和出生日期,并将列标题显示为和出生日期 6. 使用使用CASE子句 查询Employees表中员工的和性别,要求Sex值为1时显示“男”,为0时显示“女” 查询Employees表中员工的、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。 7. 使用SELECT语句进行简单计算 计算每个雇员的实际收入 8. 使用置函数 获得员工总数 计算Salary表中员工月收入的平均数 获得Employees表中最大的员工 计算Salary表中所有员工的总支出 查询财务部雇员的最高和最低实际收入

9. 模糊查询 找出所有姓王的雇员的部门号 找出所有地址中含有“”的雇员的及部门号 找出员工中倒数第二个数字为0的员工的、地址和学历 10. Between…And…和Or的使用 找出收入在2000~3000元之间的雇员编号 找出部门为“1”或“2”的雇员的编号 11. 使用INTO子句,由源表创建新表 由表Salary创建“SalaryNew”表,要求包括编号和收入,选择收入在1500元以上的雇员由表Employees创建“EmployeesNew”表,要求包括编号和,选择所有男员工 二、子查询的使用 1. 查找在财务部工作的雇员情况 2. 用子查询的方法查找所有收入在2500以下的雇员的情况 3. 查找财务部年龄不低于研发部雇员年龄的雇员 4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的 5. 查找比所有财务部的雇员收入都高的雇员的 6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的 三、连接查询的使用 1. 查询每个雇员的情况及薪水的情况 2. 查询每个雇员的情况及其工作部门的情况 3. 使用连接的方法查询名字为“王林”的雇员所在的部门 4. 使用连接的方法查找出不在财务部工作的所有雇员信息 5. 使用外连接方法查找出所有员工的月收入 6. 查找财务部收入在2000元以上的雇员及其薪水详情 7. 查询研发部在1976年以前出生的雇员及其薪水详请 四、聚合函数的使用 1. 求财务部雇员的平均收入 2. 查询财务部雇员的最高和最低收入

《关系数据库及SQLServer2008》_习题参考答案解析

关系数据库与SQL Server 2008 习题参考答案 第1章关系数据库原理 【课后习题】 一、填空题 1.DBMS(数据库管理系统) 2.安全性 3.实体属性联系 4.1:N 5.网状模型 6.外键 7.实体 8.型 9.每个实体的码 10.N端实体的码 11.诸实体码的组合 12.实体 二、选择题 1.D 2.B 3.A 4.A 5.C 6.B 7.D 8.D 9.A 三、简答题 1.数据是数据库中存储的基本对象。数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及开发工具)、应用系统、数据库管理员和用户构成。 2.数据库系统的特点有:数据结构化、数据的共享性高,冗余度低,易扩充、数据独立性高、数据由DBMS统一管理和控制。 3.数据库管理系统的主要功能有:数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。 4.等值连接是把两个表中的行按照给定的等值条件进行拼接而形成新表,结果列为参与连接的两个表的所有列。自然连接是一种特殊的等值连接,要求参与连接的两个表有共同属性(列),其结果是在参与操作的两个表的共同属性上进行等值条件连接后,再去除重复的属性后所得的新表。

5.关系的完整性规则包括实体完整性、域完整性和参照完整性三个方面。实体完整性用于保证数据库表中的每一个元组都是唯一的,要求在任何关系的任何一个元组中,主键的值不能为空值、也不能取重复的值。域完整性用于保证给定字段中数据的有效性,即保证数据的取值在有效的范围内,要求由用户根据实际情况,定义表中属性的取值范围。参照完整性用于确保相关联的表间的数据保持一致,要求“不引用不存在的实体”,即:不允许在一个关系中引用另一个关系中不存在的元组。 例如:主表:学生(学号,姓名,性别,专业号,年龄) 从表:专业(专业号,专业名) 主表的“专业号(外键)”的取值只能为两种情况:若取非空值,则它必须是从表中存在的值;取空值(null),表明尚未给学生分配专业,null不等于0或空字符串。 6.一个低一级范式的关系模式,通过分解可以转换为若干个高一级范式的关系模式,这种过程称为关系的规范化。 关系的规范化主要目的是解决数据库中数据冗余、插入异常、删除异常和更新异常等数据存储问题。 关系规范化的基本方法是逐步消除关系模式中不合适的数据依赖,使关系模式达到某种程度的分离,也就是说,不要将若干事物混在一起,而要彼此分开,用一个关系表示一事或一物,所以,规范化的过程也被认为是“单一化”的过程。 从第一范式至BCNF,它们之间的关系是BCNF⊆3NF⊆2NF⊆1NF。从第一范式到第二范式,消除了非主属性对码的部分函数依赖;从第二范式到第三范式,消除了非主属性对码的传递函数依赖;从第三范式到BCNF,消除了关系中冗余的码。 四、计算题 1. (3) (5)全外连接 右外连接

SQLServer2008数据库案例教程课后习题答案

SQLServer2008数据库案例教程课后习题答案 《SQL Server 2008数据库案例教程》练习题及模拟试卷答案 第1章 一、判断题 1. 数据库技术是是计算机数据处理与信息管理系统的核心。(√) 2. 数据是用于描述现实世界中具体事物或抽象概念,可存储的数字符号。(×) 3. 数据库是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。(√) 4. 数据库管理系统是一个按数据结构来存储和管理数据的服务器管理系统。(×) 5. 关系数据库,是建立在关系模型基础上的数据库。(√) 二、单选题 1. 数据(Data)是一些可存储并具有明确意义的(A) A. 符号 B.图形 C.文字 D.数字 2. 人工阶段计算机用于数值计算,没有操作系统及管理数据的软件。这一阶段的年代是(C) A. 19世纪80年代 B. 20世纪20年代 C.20世纪50年代 D. 20世纪80年代 3. 在网页中常用的图像格式是(D) A..bmp和.jpg B..gif和.bmp C. .png和.bmp D. .gif和.jpg

4.数据库系统的重要特征是什么?(D) A. 数据的独立性和动态性 B.数据的静态性和独立性 C.数据的动态性和共享性 D.数据的独立性和共享性 三、多选题 1.与数据库技术密切相关的基本概念有(ABCD) A. 数据 B. 数据库 C. 数据库管理系统 D. 数据库系统 2.数据库可分为哪几种类型?(ABC) A. 关系型数据库 B. 网状数据库 C. 层次数据库 D.树形数据库 3. DBMS提供数据操作语言DML,为用户提供了哪些操作?(ABCD) A.数据的追加B.数据的删除C.数据的更新D.数据的查询 4.DBMS要分类组织、存储和管理各种数据,包括哪些内容?(ABC) A. 数据字典 B. 用户数据 C. 存取路径 D.服务器 5. 目前,DBMS常见品牌有哪些公司?(ABC) A.微软公司的SQL Server B.IBM公司的DB2 C.甲骨文公司的ORACLE D.索尼公司的MySQL 四、填空题 1.数据库(管理)技术经历了人工管理阶段和文件管理阶段。 2.文件系统不提供对任意部分数据的(快速)访问 3.关系数据库,是建立在关系(模型)基础上的数据库。

SQLServer2008R2数据库技术及应用(第3版)-配套习题

SQLServer2008R2数据库技术及应用(第3版)-配套习题 《SQL Server 2008 R2数据库技术及应用(第3版)》 选择题及答案 说明:以下选择题除包含了本教材中的选择题外,还扩充了部分选择题和参考答案,供读者学习使用。 第1章数据库系统认知 1.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(A )。 A.DBS包括DB和DBMS B.DBMS包括DB和DBS C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS 2.下面列出的数据库管理技术发展的3个阶段中,没有专门的软件对数据进行管理的阶段是(D)。 I.人工管理阶段II.文件系统阶段III.数据库阶段 A.Ⅰ和Ⅱ B.只有Ⅱ C.Ⅱ和Ⅲ D.只有Ⅰ 3.描述数据库整体数据的全局逻辑结构和特性的是数据库的(A )。 A.模式 B.内模式C.外模式 4.在修改数据结构时,为保证数据库的数据独立性,只需要修改的是(C)。 A.模式与外模式B.模式与内模式 C.三级模式之间的两层映射 D.三级模式 5.下列4项中,不属于数据库系统特点的是( C )。 A.数据共享B.提高数据完整性 C.数据冗余度高D.提高数据独立性 6.数据模型的三个要素是(B )。 A.实体完整性、参照完整性、域完整性 B.数据结构、数据操作、数据完整性 C.数据增加、数据修改、数据查询 D.外模式、模式、内模式 7.数据管理技术发展阶段中,文件系统阶段与数据库系统阶段的

主要区别之一是 数据库系统(B)。 A.有专门的软件对数据进行管理 B.采用一定的数据模型组织数据 C.数据可长期保存 D.数据可共享 8.下列选项中(A)不是数据库系统的特点。 A.数据加工B.数据共享C.关系模型D.减少数据冗余 9.数据库系统的数据独立性体现在(B)。 A.不会因为数据的变化而影响到应用程序 B.不会因为数据存储结构与数据逻辑结构的变化而影响应用程序C.不会因为存储策略的变化而影响存储结构 D.不会因为某些存储结构的变化而影响其他的存储结构 10.用户或应用程序看到的那部分局部逻辑结构和特征的描述是(C)模式。 A.模式 B.物理模式 C.外(子)模式 D.内模式 11.下述(D)不是DBA数据库管理员的职责。 A.负责整个数据库系统的建立 B.负责整个数据库系统的管理 C.负责整个数据库系统的维护和监控 D.数据库管理系统设计 第2章需求分析与数据库概念设计 1.在进行管理系统需求分析时,数据字典的含义是(D)。 A.数据库中所涉及的属性和文件的名称集合 B.数据库中所有数据的集合 C.数据库中所涉及的字母、字符及汉字的集合 D.数据库中所涉及的各类数据描述的集合,它是关于数据库中数

sqlserver2008数据库应用与开发教程课后习题参考答案

sqlserver2008数据库应用与开发教程课后习题参考答案 SQL Server 2008数据库应用与开发教程 (第二版) 第一章习题参考答案 1.简述SQL Server 2008系统中主要数据库对象的特点。 答:主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则和默认值等。 “表”节点中包含了数据库最基本、最重要的对象——表。表实际用来存储系统数据和用户数据,是最核心的数据库对象。 “视图”节点包含了数据库中的视图对象。视图是一种虚拟表,用来查看数据库中的一个或多个表,视图是建立在表基础之上的数据库对象,它主要以SELECT语句形式存在。 在“同义词”节点中包含了数据库中的同义词对象。这是Microsoft SQL Server 2008系统新增的一种对象。 “可编程性”对象是一个逻辑组合,它包括存储过程、函数、触发器、程序集、类型、规则和默认值等对象。 数据库中的函数对象包含在“函数”节点中。函数是接受参数、执行复杂操作并将结果以值的形式返回的例程。 2.SQL Server 2008数据库管理系统产品分为哪几个版本,各有什么特点? 答:SQL Server 2008数据库管理系统产品的服务器版本包括了企业版和标准版,专业版本主要包括以下版本:工作组版(Workgroup)、开发人员版(Developer)、免费精简版(Express)、Web版,以及免费的集成数据库SQL Server Compact 3.5。 3.SQL Server 2008包含哪些组件,其功能各是什么? 答:SQL Server 2008的体系结构是对SQL Server的组成部分和这些组成部分之间的描述。Microsoft SQL Server 2008系统由4个组件组成,这4个组件被称为4个服务,分别是数据库引擎、Analysis Services、Reporting Services和Integration Services。

SQLServer2008数据库应用教程课后答案

第1章数据库基础 一、单项选择题 1.C 2.A 3.C 4.D 5.D 6.B 7.A 8.B 9.B 10.D 11.C 12.A 13.C 14.B 15.A 16.B 17.A 18.D 19.B 20.B 21.A; D 22.A 23.C 24.D 25.B 26.B 27.B 28.D 29.B 30.B 二、填空题 1.概念;数据 2.属性 3.码 4.一对一联系;一对多(或多对一)联系;多对多联系 5.候选码 6.候选码 7.关系名(属性1,属性2,…,属性n) 8.关系数据结构;关系操作集合;关系完整性约束 9.实体;参照;用户定义的;实体;参照 10.空植 11.需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运行和维护阶段 12.准确了解并分析用户对系统的要求,尤其是用户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应用系统的目标,产生用户和设计者都能接受的需求说明书,做为下一步数据库概念结构设计的基础。 13.将需求分析得到的用户需求抽象为信息结构即概念模型。 14.将概念结构进一步转化为某一DBMS支持的数据模型,并对其进行优化。 15.为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据库在物理设备上的存储结构和存取方法。 三、指出以下各缩写的英文意思和中文意思 1.DB:DataBase 2.DBMS:Database Management System 3.RDBMS: 4.DBS:DataBase System 5.DBA:Relational Database Management System 6.NF:Normal Form 7.DDL:Data Definition Language 四、按题目要求回答问题

数据库原理与应用教程-SQL Server课后习题答案

数据库原理与应用教程―SQL Server 习题解答 1.5 习题 1.数据库的发展历史分哪几个阶段?各有什么特点? 答:数据库技术经历了人工管理阶段、文件系统阶段和数据库系统三个阶段。 1)人工管理阶段 这个时期数据管理的特点是: 数据由计算或处理它的程序自行携带,数据和应用程序一一对应,应用程序依赖于数据的物理组织,因此数据的独立性差,数据不能被长期保存,数据的冗余度大等给数据的维护带来许多问题。 2)文件系统阶段 在此阶段,数据以文件的形式进行组织,并能长期保留在外存储器上,用户能对数据文件进行查询、修改、插入和删除等操作。程序与数据有了一定的独立性,程序和数据分开存储,然而依旧存在数据的冗余度大及数据的不一致性等缺点。 3)数据库系统阶段 数据库系统的特点如下: (1)数据结构化 (2)较高的数据共享性 (3)较高的数据独立性 … (4)数据由DBMS统一管理和控制 2.简述数据、数据库、数据库管理系统、数据库应用系统的概念。 答:数据是描述事物的符号记录,是信息的载体,是信息的具体表现形式。 数据库就是存放数据的仓库,是将数据按一定的数据模型组织、描述和存储,能够自动进行查询和修改的数据集合。 数据库管理系统是数据库系统的核心,是为数据库的建立、使用和维护而配置的软件。它建立在操作系统的基础上,位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的创建、查询、更新及各种数据控制等。凡使用数据库技术管理其数据的系统都称为数据库应用系统。 3.简述数据库管理系统的功能。 答:数据库管理系统是数据库系统的核心软件,一般说来,其功能主要包括以下5个方面。 (1) 数据定义和操纵功能 (2) 数据库运行控制功能 (3) 数据库的组织、存储和管理 (4) 建立和维护数据库

数据库系统和应用教程[SQLServer2008]习题1_8章答案解析

习题1 1.名词解释: DB:是长期存储在计算机内、有组织的、统一管理的相关数据的集合。 DBMS:是位于用户与0S之间的一层数据管理软件,它为用户或应用程序提供访问DB 的方法。 DBS:是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即采用数据库技术的计算机系统。 外模式:是用户用到的那部分数据的描述。 概念模式:数据库中全部数据的整体逻辑结构的描述。 内模式:DB在物理存储方面的描述。 实体:客观存在、可以相互区别的事物称为实体。 属性:实体有很多特性,每一个特性称为一个属性。 实体标识符:能惟一标识实体的属性或属性集,称为实体标识符。 分布式数据库:是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力〔称为场地自治,可以执行局部应用。同时,每个结点也能通过网络通信子系统执行全局应用。 2.文件系统阶段的数据管理有哪些特点? 答:文件系统阶段主要有5个特点:数据以"文件"形式长期保存;数据的逻辑结构与物理结构有了区别;文件组织已多样化;数据面向应用;对数据的操作以记录为单位。 3.文件系统阶段的数据管理有些什么缺陷?试举例说明。 答:主要有3个缺陷:数据冗余;数据不一致性;数据联系弱。 例如学校里教务处、财务处、保健处建立的文件中都有学生详细资料,如联系电话,家庭住址等。这就是"数据"冗余;如果某个学生搬家,就要修改3个部门文件中的数据,否则会引起同一数据在3个部门中不一致;产生上述问题的原因是这3个部门的文件中数据没有联系。 4.数据库阶段的数据管理有哪些特色? 答:主要有5个特点:采用数据模型可以表示复杂的数据结构;有较高的数据独立性;为用户提供了方便的用户接口;提供了4个方面的数据控制功能;对数据的操作以数据项为单位,增加了系统的灵活性。 5.实体之间联系有哪几种?分别举例说明? 答:1:1联系:如果实体集El中每个实体至多和实体集E2中的一个实体有联习,反之亦然,那么El和E2的联系称为"l:1联系"。例如:电影院的座位和观众实体之间的联系。 1:N联系:如果实体集El中每个实体可以与实体集E2中任意个〔零个或多个>实体有联系,而E2中每个实体至多和El中一个实体有联系,那么El和E2的联系是"1:N联系"。例如:部门和职工两个实体集之间的联系。 M:N联系:如果实体集El中每个实体可以与实体集E2中任意个〔零个或多个>实体有联系,反之亦然,那么El和E2的联系称为"M:N联系"。例如:工程项目和职工两个实体集之间的联系。 6.分析层次模型、网状模型和关系模型的特点。 答:层次模型的数据结构为树结构,记录之间联系通过指针实现,查询较快,但DML属于过程化的语言,操作复杂。

相关文档
最新文档