Server教程.docx

上传人:b****6 文档编号:6507259 上传时间:2023-01-07 格式:DOCX 页数:74 大小:693.84KB
下载 相关 举报
Server教程.docx_第1页
第1页 / 共74页
Server教程.docx_第2页
第2页 / 共74页
Server教程.docx_第3页
第3页 / 共74页
Server教程.docx_第4页
第4页 / 共74页
Server教程.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

Server教程.docx

《Server教程.docx》由会员分享,可在线阅读,更多相关《Server教程.docx(74页珍藏版)》请在冰豆网上搜索。

Server教程.docx

Server教程

SQLServer前言

前言

本书针对那些想成为开发人员、数据库管理员或者兼为两者,但对SQLServer2008还不熟悉的读者。

无论你是否拥有数据库知识,是否了解桌面数据库(如MicrosoftAccess),甚至是否具有服务器(如Oracle)的背景,本书都能为你提供SQLServer2008入门和运行的知识。

从现在开始,本书将使你的基础知识得以扩展,让你很快从初学者成长为合格的专业开发人员。

本书面向广大开发人员,从喜欢使用图形界面的程序员,到希望成为SQLServer2008编程语言TransactSQL(T-SQL)高手的程序员。

本书将尽可能贴近实际地演示、说明和展开叙述每一种使用SQLServer2008的方法,以便你能够判断哪种方式最适合自己。

本书包含大量的示例,以使你了解SQLServer的各个领域是如何工作的,以及怎样才能把技术应用到自己的工作中。

你将学习完成某项任务的最佳方法,你甚至能学会在面临两个或更多的选择时,如何做出正确的决策。

只要学习完本书,你就能游刃有余地设计和创建坚实可靠的数据库解决方案。

读者对象

本书适用的对象是刚开始使用SQLServer2008的开发人员,或立志成为数据库管理人员的读者。

本书在结构安排上兼顾了这两类读者。

本书的结构

本书将帮助你决定购买SQLServer2008的哪种版本,为你展示如何安装和配置SQLServer2008,并阐释如何使用图形用户界面工具SSMS(SQLServerManagementStudio)。

你将使用该工具完成一个功能完备的数据库示例,该数据库根据本书中介绍的设计方案,利用图形的和基于代码的练习创建而成。

然后,你将学习数据库安全方面的知识,并了解如何实施安全可靠的数据库设置。

只要备份了数据库,你就可以学习如何操作数据。

先从简单的代码编写技术入手,逐渐过渡到更加复杂的技术。

最后的任务是在数据库上创建和生成报表。

本书会贯穿始终地说明每一个细节,告知你正在发生什么,并确保随着对本书阅读的深入,你将在从之前章节中获取的知识上,不断提高。

你将以一种有条理、有组织的方式发展构筑自己的专业知识。

必要准备

要学习本书,你必须有SQLServer2008开发版本的完整版或评估版。

此外,如果想要为特定的Windows登录更改安全设置,有WindowsVista旗舰版或商业版将十分理想,但并非必须如此。

SQLServer2008基础教程目录

目录

第1章 SQLServer2008概述和安装1

1.1 为什么选择SQLServer20081

1.2 SQLServer的发展3

1.3 硬件要求4

1.3.1 CPU4

1.3.2 内存4

1.3.3 硬盘空间5

1.3.4 操作系统要求5

1.4 示例5

1.5 安装5

1.5.1 开始安装6

1.5.2 选择要安装的功能7

1.5.3 为实例命名9

1.5.4 选择服务账户10

1.5.5 选择身份验证模式10

1.5.6 确定数据目录的位置11

1.5.7 创建报表服务数据库12

1.5.8 配置错误和使用情况报告13

1.6 安全性14

1.6.1 服务账户14

1.6.2 身份验证模式15

1.6.3 sa登录19

1.7 小结20

第2章 SSMS21

2.1 SSMS概览21

2.2 SSMS的选项29

2.2.1 “环境”节点29

2.2.2 “源代码管理”节点31

2.2.3 “文本编辑器”节点31

2.2.4 “查询执行”节点33

2.2.5 “查询结果”节点35

2.3 查询编辑器41

2.4 小结42

第3章 设计和创建数据库43

3.1 数据库的定义44

3.2 SQLServer中的预建数据库45

3.2.1 master45

3.2.2 tempdb46

3.2.3 model47

3.2.4 msdb47

3.2.5 AdventureWorks/Adventure-WorksDW47

3.3 选择数据库系统类型48

3.3.1 OLTP48

3.3.2 OLAP49

3.3.3 示例系统类型选择49

3.4 收集数据49

3.5 确定要存储在数据库中的信息51

3.5.1 金融产品52

3.5.2 客户52

3.5.3 客户地址52

3.5.4 股票52

3.5.5 交易53

3.6 外部信息和忽略的信息53

3.7 建立关系53

3.7.1 使用键53

3.7.2 创建关系55

3.7.3 关于外键的更多信息57

3.8 规范化59

3.8.1 每一个实体都应该有唯一的标识符59

3.8.2 只存储与实体直接有关的信息60

3.8.3 避免重复值或重复列60

3.8.4 范式60

3.8.5 非规范化62

3.9 创建示例数据库62

3.9.1 在SSMS中创建数据库62

3.9.2 在SSMS中删除数据库75

3.9.3 在查询编辑器中创建数据库77

3.10 小结80

第4章 安全和遵从规范81

4.1 登录名81

4.2 服务器登录名和数据库用户89

4.3 角色90

4.3.1 固定服务器角色90

4.3.2 数据库角色92

4.3.3 应用程序角色92

4.4 架构95

4.5 在解决方案中进行下去之前96

4.6 陈述式管理框架99

4.7 小结104

第5章 定义表106

5.1 什么是表106

5.2 SQLServer数据类型107

5.2.1 表中的数据类型108

5.2.2 程序中的数据类型113

5.3 列不仅仅是简单的数据存储库113

5.3.1 默认值113

5.3.2 生成IDENTITY值113

5.3.3 NULL值的使用114

5.3.4 为什么要定义允许NULL值的列114

5.4 在SQLServer中存储图像和大型文本115

5.5 在SSMS中创建表115

5.6 通过查询编辑器创建表120

5.7 创建表:

使用模板122

5.8 创建模板和修改模板125

5.9 ALTERTABLE语句126

5.10 定义其余的表127

5.11 设置主键128

5.12 创建关系129

5.12.1 在创建时检查现有数据131

5.12.2 强制外键约束132

5.12.3 选择删除/更新规则132

5.13 通过T-SQL语句建立关系133

5.14 小结134

第6章 创建索引和数据库关系图135

6.1 什么是索引135

6.1.1 索引类型136

6.1.2 唯一性137

6.2 确定是什么创建了好的索引138

6.2.1 使用低维护列138

6.2.2 主键和外键139

6.2.3 找到指定记录139

6.2.4 使用覆盖索引139

6.2.5 查找信息范围139

6.2.6 保持数据的排序140

6.3 确定是什么导致了坏的索引140

6.3.1 使用了不合适的列140

6.3.2 选择了不合适的数据141

6.3.3 包含了过多的列141

6.3.4 表中包含的记录过少141

6.4 针对性能对索引进行审查141

6.5 创建索引142

6.5.1 用表设计器创建索引142

6.5.2 索引和统计信息145

6.5.3 CREATEINDEX语法145

6.5.4 在查询编辑器中创建索引:

模板148

6.5.5 在查询编辑器中创建索引:

SQL代码151

6.6 删除索引153

6.7 在查询编辑器中修改索引154

6.8 当索引不存在时155

6.9 为数据库生成关系图156

6.9.1 数据库关系图基础156

6.9.2 SQLServer数据库关系图工具157

6.9.3 默认的数据库关系图158

6.9.4 数据库关系图工具条160

6.10 小结162

第7章 数据库的备份、还原和维护163

7.1 事务日志164

7.2 备份策略166

7.3 当可能发生错误时167

7.4 让数据库脱机168

7.5 备份数据169

7.5.1 使用T-SQL备份数据库174

7.5.2 使用T-SQL进行日志备份180

7.6 还原数据库182

7.6.1 使用SSMS还原数据183

7.6.2 使用T-SQL进行还原185

7.7 分离和附加数据库189

7.7.1 使用SSMS进行分离和附加操作189

7.7.2 使用T-SQL进行分离和附加操作193

7.8 为数据库生成SQL脚本195

7.9 维护数据库201

7.10 创建数据库维护计划201

7.11 设置数据库邮件213

7.12 修改维护计划221

7.13 小结224

第8章 操作数据225

8.1 T-SQL的INSERT命令的语法225

8.2 SQL命令INSERT226

8.2.1 默认值229

8.2.2 使用NULL值229

8.3 DBCCCHECKIDENT232

8.4 列约束234

8.5 同时插入多条记录238

8.6 检索数据239

8.7 使用SSMS检索数据240

8.8 SELECT语句241

8.9 指定列243

8.10 第一批搜索243

8.11 改变输出的显示245

8.12 限制搜索:

WHERE的使用247

8.12.1 SETROWCOUNTn249

8.12.2 TOPn250

8.12.3 TOPnPERCENT251

8.13 字符串函数251

8.14 顺序!

顺序!

253

8.15 LIKE运算符254

8.16 生成数据:

SELECTINTO256

8.17 谁能添加、删除或选取数据257

8.18 更新数据261

8.18.1 UPDATE命令262

8.18.2 在查询编辑器中更新数据263

8.19 事务266

8.19.1 BEGINTRAN267

8.19.2 COMMITTRAN268

8.19.3 ROLLBACKTRAN268

8.19.4 锁定数据268

8.19.5 更新数据:

使用事务269

8.19.6 嵌套事务270

8.20 删除数据272

8.20.1 DELETE的语法272

8.20.2 使用DELETE语句272

8.21 截断表(删除表中的所有行)274

8.22 删除表275

8.23 小结275

第9章 构建视图277

9.1 为什么要构建视图278

9.2 针对安全而使用查询278

9.3 加密视图定义279

9.4 创建视图:

SSMS280

9.5 使用视图来创建视图284

9.6 CREATEVIEW语法289

9.7 创建视图:

查询编辑器窗格290

9.8 创建视图:

SCHEMABINDING291

9.9 为视图设置索引293

9.10 小结295

第10章 存储过程和函数297

10.1 什么是存储过程298

10.2 CREATEPROCEDURE语法298

10.3 返回一系列记录301

10.4 创建存储过程:

SSMS301

10.5 执行存储过程的不同方法305

10.5.1 不使用EXEC305

10.5.2 使用EXEC305

10.6 使用RETURN305

10.7 控制流程309

10.7.1 IF...ELSE309

10.7.2 BEGIN...END310

10.7.3 WHILE...BREAK语句310

10.7.4 CASE语句312

10.8 综合应用314

10.9 用户定义函数316

10.9.1 标量函数316

10.9.2 表值函数317

10.9.3 创建用户定义函数时要考虑的事项317

10.10 小结319

第11章 T-SQL基础320

11.1 使用多个表320

11.2 变量325

11.3 临时表326

11.4 聚合328

11.4.1 COUNT/COUNT_BIG329

11.4.2 SUM329

11.4.3 MAX/MIN330

11.4.4 AVG330

11.5 分组数据331

11.6 HAVING332

11.7 独特值333

11.8 函数333

11.8.1 日期和时间函数334

11.8.2 字符串函数336

11.8.3 系统函数340

11.9 RAISERROR343

11.10 错误处理347

11.11 @@ERROR347

11.12 TRY...CATCH348

11.13 小结351

第12章 高级T-SQL352

12.1 子查询352

12.1.1 IN354

12.1.2 EXISTS354

12.1.3 了结未了之事355

12.2 APPLY运算符356

12.2.1 CROSSAPPLY357

12.2.2 OUTERAPPLY358

12.3 公用表表达式358

12.4 透视数据361

12.4.1 PIVOT361

12.4.2 UNPIVOT363

12.5 排名函数363

12.5.1 ROW_NUMBER364

12.5.2 RANK366

12.5.3 DENSE_RANK366

12.5.4 NTILE367

12.6 SQLServer中的PowerShell367

12.7 小结371

第13章 触发器372

13.1 什么是触发器372

13.2 DML触发器373

13.3 针对DML触发器的CREATETRIGGER语法374

13.4 为什么不使用约束375

13.5 对逻辑表进行删除和插入376

13.6 创建DMLFOR触发器377

13.7 检查特定的列380

13.7.1 使用UPDATE()380

13.7.2 使用COLUMNS_UPDATED()384

13.8 DDL触发器387

13.8.1 DDL_DATABASE_LEVEL_EVENTS387

13.8.2 删除DDL触发器389

13.8.3 EVENTDATA()389

13.9 小结392

第14章 SQLServer2008ReportingServices393

14.1 ReportingServices的架构394

14.2 配置ReportingServices395

14.3 使用报表设计器构建第一个报表400

14.4 小结406

1.1 为什么选择SQLServer2008

第1章SQLServer2008概述和安装

欢迎阅读本书。

如果你对SQLServer2008尚不了解,但对使用MicrosoftSQLServer2008创建解决方案很有兴趣,本书就是为你编写的。

你可能熟悉其他一些数据库(如MySQL、Oracle或者MicrosoftAccess),但相对于其他的数据库产品,SQLServer无论是在界面上还是在工作方式上都有所不同。

本书旨在使读者快速达到游刃有余地使用SQLServer2008进行开发的水平。

本书专门针对SQLServer2008的新手,以及即将开始使用SQLServer2008的读者,同时,它还适用于那些曾经使用SQLServer2005并想快速掌握学习SQLServer2008的方法的读者。

本书对于读者理解市面上其他数据库产品的基础知识也大有裨益,尤其是在使用T-SQL方面。

由于许多数据库都使用基于ANSI标准的SQL,因此在学完本书之后,从SQLServer转向Oracle、Sybase等数据库也更为容易。

本章包含以下主题。

为什么选择SQLServer2008?

怎样知道硬件是否符合要求?

是否可以确定拥有合适的操作系统?

使用SQLServer2008能够做什么?

接下来关注所选定版本的安装,并介绍以下内容。

在WindowsXP平台上安装SQLServer2008。

默认没有安装的选项。

SQLServer实际上安装在何处?

一台计算机上的多个安装。

SQLServer在机器上如何运行?

如何实现安全性?

SQLServer的登录ID,特别是sa(系统管理员)登录。

1.1 为什么选择SQLServer2008

下面的论述是我个人的观点,无疑与其他人的观点会有所不同,但讨论的基础是没有问题的。

SQLServer面对的数据库竞争产品,不仅有同样来自微软的其他数据库(如MicrosoftAccess和MicrosoftVisualFoxPro),而且还有来自竞争对手的数据库(如Oracle、Sybase、DB2和Informix等)。

大量的PC上都运行着MicrosoftAccess。

多年来,该数据库一直是一些版本的Office软件包中的一个组件,这一事实使得MicrosoftAccess的身影随处可见。

事实上许多人的确在使用这种数据库。

遗憾的是,这种数据库在可扩缩性、速度以及灵活性上都有局限性。

当然对于许多小型的内部系统而言,它们不需要太强的数据库功能,因而这些方面的不足并不算是问题。

那么,来看看与SQLServer真正旗鼓相当的对手:

Oracle和Sybase。

在数据库领域,Oracle常常被认为是市场领导者,有着非常庞大的用户基础。

虽然在安装和管理上,Oracle比SQLServer复杂些,但不可否认,它是一个非常棒的产品,非常适宜为大公司提供大型解决方案。

Oracle有许多部件,这使得该产品功能强大,在可扩缩性和性能方面不可小觑。

Oracle还非常灵活,允许使用者按需要添加工具,在这一方面Oracle比SQLServer具有更强的适应性。

例如,无论用户是否需要使用新的.NET特性,SQLServer2008都要求用户必须在服务器上安装.NETFramework。

然而,从开发者的角度来看,Oracle的使用在许多方面都不太方便,例如,专门的SQLQuery工具、XML和Web技术工具,以及建立完整数据库解决方案的方式。

Oracle的其他一些缺点还包括它较高的价格以及在安装和高效运行上的复杂性。

尽管SQLServer也能同样高效地工作,但Web搜索引擎还是广泛地使用Oracle。

具有新功能的SQLServer2008将给Oracle带来压力,迫使其扩展现有的功能以迎接挑战。

SQLServer采取的向来是一次性购买的解决方案,如果购买了正确版本的SQLServer,那么用于分析数据或从一个数据源(如Excel)向SQLServer中复制数据的所有工具都将包含于其中。

而对于Oracle,必须额外购买所需要的每一个附加特性。

接着来看看Sybase。

Sybase与SQLServer十分相似,它们之间的主要不同是:

Sybase没有图形用户界面前端。

主要用于小规模安装的SybaseiAnywhere是有前端的,但高端的Sybase没有。

有些人可能认为图形用户界面前端首先是为那些不懂如何写代码的人准备的(当然,这是他们的一家之言),因而没有必要设计图形用户界面前端,但是既然指向、点击和拖动就可以搞定,为什么还要按下60多个键呢?

虽然Sybase有用于Windows的版本,但它主要还是用在UNIX上。

尽管可以通过工具从Windows的机器连接到UNIX上的Sybase,但依然要完全用代码来建立数据库解决方案。

Sybase非常快也十分稳健,一年通常只需重启一两次。

关于Sybase的另一点是,它没有SQLServer那样丰富的命令和特性。

SQLServer有更加强大的编程语言,功能也比Sybase强大。

每个数据库都有其特有的SQL语法,尽管它们的基本SQL语法是一致的,即公认的ANSI-92标准。

这意味着用于检索数据等的语法在数据库之间是相同的,但每个数据库用于维护的语法是其自身特有的。

若试图在一个数据库中使用源自另一个数据库的独特SQL语法,可能是无效的,也可能所起的作用大相径庭。

因此,SQLServer在数据库市场中似乎是最佳的选择,而且在很多情形下也确实如此。

它可以小到只用于少量用户,也可以大到足以支持最大的企业。

它没有Oracle或者Sybase那样高的价钱,但却能向上扩展并处理太字节(TB)的数据而无需太多的考虑。

你将会发现,SQLServer易于安装,并且由于SQLServer的大多数功能在一个完整的包中,当需要剩余的功能时,执行简单的安装就够了。

既然知道了为何选择SQLServer,接下来需要了解市面上有哪些可以购买的SQLServer版本,每种版本针对的市场是什么,什么版本对你最合适,以及你的机器上能够运行什么版本。

1.2 SQLServer的发展

1.2 SQLServer的发展

SQLServer经历多年后发展到了今天的产品。

表1-1概述了这一发展历程。

表1-1 SQLServer发展历程

年份

版本

说明

1988

SQLServer

与Sybase共同开发的、运行于OS/2上的联合应用程序

1993

SQLServer4.2

一种桌面数据库

一种功能较少的桌面数据库,能够满足小部门数据存储和处理的需求。

数据库与Windows集成,界面易于使用并广受欢迎

1994

微软与Sybase终止合作关系

1995

SQLServer6.05

一种小型商业数据库

对核心数据库引擎做了重大的改写。

这是首次“意义非凡”的发布,性能得以提升,重要的特性得到增强。

在性能和特性上,尽管以后的版本还有很长的路要走,但这一版本的SQLServer具备了处理小型电子商务和内联网应用程序的能力,而在花费上却少于其他的同类产品

1996

SQLServer6.5

SQLServer逐渐突显实力,以至于Oracle推出了运行于NT平台上的7.1版本作为直接的竞争

1998

SQLServer7.0

一种Web数据库

再一次对核心数据库引擎进行了重大改写。

这是相当强大的、具有丰富特性的数据库产品的明确发布,该数据库介于基本的桌面数据库(如MicrosoftAccess)与高端企业级数据库(如Oracle和DB2)之间(价格上亦如此),为中小型企业提供了切实可行(并且还廉价)的可选方案。

该版本易于使用,并提供了对于其他竞争数据库来说需要额外附加的昂贵的重要商业工具(例如,分析服务、数据转换服务),因此获得了良好的声誉

2000

SQLServer2000

一种企业级数据库

SQLServer在可扩缩性和可靠性上有了很大的改进,成为企业级数据库市场中重要的一员(支持企业的联机操作,其所支持的企业有NASDAQ、戴尔和巴诺等)。

虽然SQLServer在价格上有很大的上涨(尽管算起来还只是Oracle售价的一半左右),减缓了其最初被接纳的进度,但它卓越的管理工具、开发工具和分析工具赢得了新的客户。

2001年,在Windows数据库市场(20

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

当前位置:首页 > 幼儿教育

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

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