图书介绍

深入浅出-SQL Server 2000系统管理与应用开发PDF|Epub|txt|kindle电子书版本网盘下载

深入浅出-SQL Server 2000系统管理与应用开发
  • 赵松涛编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:711514284X
  • 出版时间:2006
  • 标注页数:707页
  • 文件大小:104MB
  • 文件页数:735页
  • 主题词:关系数据库-数据库管理系统,SQL Server 2000

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

深入浅出-SQL Server 2000系统管理与应用开发PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 SQL Server 2000系统管理3

第1章 构建SQL Server 2000网络3

1.1 本章导读3

1.2 初识计算机网络3

1.2.1 计算机网络的定义3

1.2.2 计算机网络的发展历程4

1.2.3 计算机网络的分类5

1.2.4 计算机网络的拓扑结构5

1.2.5 网络中的计算机通信的原理6

1.2.6 TCP/IP7

1.2.7 客户机/服务器模式9

1.2.8 端口9

1.2.9 配置计算机的IP地址10

1.2.10 查看计算机的端口使用情况10

1.3 初识数据库11

1.3.1 数据库系统11

1.3.2 数据库11

1.3.3 数据库管理系统12

1.3.4 数据库应用系统12

1.3.5 数据库系统相关人员12

1.3.6 关系模型12

1.3.7 关系型数据库13

1.3.8 关系型数据表的关联关系13

1.3.9 关系型数据的完整性14

1.4 初识关系型网络数据库16

1.4.1 关系型网络数据库的特点16

1.4.2 关系型网络数据库的工作模式16

1.5 初识SQL Server 200017

1.5.1 SQL Server 2000的产品版本17

1.5.2 安装环境需求18

1.5.3 实例(Instance)19

1.5.4 服务账户19

1.5.5 身份验证模式20

1.5.6 客户机许可模式20

1.5.7 SQL Server 2000网络采用的通信协议21

1.6 构建SQL Server 2000服务器和客户机21

1.6.1 构建SQL Server 2000服务器21

1.6.2 构建SQL Server 2000客户机25

1.7 实验:远程客户机能否通过共享内存访问服务器25

1.7.1 在服务器上配置共享内存26

1.7.2 在本地客户机上配置共享内存28

1.7.3 在远程客户机上配置共享内存29

1.7.4 实验结论29

1.8 实验:配置命名管道的SQL Server 2000网络29

1.8.1 在服务器上配置命名管道30

1.8.2 在本地客户机上配置命名管道31

1.8.3 在远程客户机上配置命名管道32

1.8.4 实验结论33

1.9 实验:配置TCP/IP的SQL Server 2000网络33

1.9.1 在服务器上配置TCP/IP33

1.9.2 在本地客户机上配置TCP/IP34

1.9.3 在远程客户机上配置TCP/IP35

1.9.4 实验结论35

1.10 实验:明明白白配置TCP/IP的端口35

1.10.1 更改服务器的端口35

1.10.2 客户机上如何进行配置36

1.10.3 什么是动态决定端口36

1.10.4 实验结论37

1.11 实验:配置多协议的SQL Server 2000网络38

1.11.1 在服务器上配置多协议38

1.11.2 在本地客户机上配置多协议39

1.11.3 在远程客户机上配置多协议39

1.11.4 实验结论39

1.12 实验:Winsock代理设置的含义40

1.12.1 什么是代理服务40

1.12.2 什么是Winsock代理41

1.12.3 在服务器上设置Winsock代理41

1.12.4 在客户机上配置Winsock代理42

1.12.5 实验结论42

1.13 实验:为什么强制协议加密导致服务器无法启动42

1.13.1 在服务器上配置强制协议加密43

1.13.2 实验结论43

1.14 疑难解析44

1.14.1 Windows XP上可以安装什么SQL Server 2000版本44

1.14.2 Windows 2003上如何安装SQL Server 2000企业版44

1.14.3 启动提示“1069错误(由于登录失败而无法启动服务)”如何解决44

1.14.4 服务器的1433端口没有启动如何解决45

1.14.5 如何下载SQL Server 2000的SP345

1.14.6 如何远程管理Internet上的SQL Server 2000服务器45

1.14.7 如何卸载SQL Server 200046

1.14.8 排除SQL Server 2000网络连接故障46

1.14.9 排除SQL Server 2000连接超时故障47

1.14.10 什么是数据字典47

1.14.11 DBA都有什么职责47

1.14.12 DBA日常如何工作48

1.14.13 什么是数据库的模型49

1.14.14 什么是IPC机制50

1.14.15 什么是网络库(Net-Library)50

1.14.16 什么是关系型数据库的范式50

1.15 本章小结51

1.16 实践题目51

第2章 SQL Server 2000的体系结构53

2.1 本章导读53

2.2 SQL Server 2000网络结构53

2.2.1 SQL Server 2000的C/S模式54

2.2.2 客户机的结构54

2.2.3 服务器的结构55

2.3 SQL Server 2000服务器的引擎结构57

2.3.1 SQL Server 2000引擎工作流程57

2.3.2 SQL Server 2000引擎的设计59

2.4 SQL Server 2000服务器的内存结构61

2.4.1 为什么要设计内存61

2.4.2 如何为SQL Server 2000服务器分配内存61

2.4.3 SQL Server 2000服务器内存有什么内容62

2.4.4 如何快速访问SQL Server 2000服务器内存62

2.4.5 如何替换SQL Server 2000服务器内存页面63

2.4.6 SQL Server 2000服务器日志缓冲池如何管理63

2.5 SQL Server 2000服务器的存储结构64

2.5.1 SQL Server 2000服务器的物理文件64

2.5.2 页面(Page)——SQL Server 2000数据文件的存储单位64

2.5.3 页面是如何存储数据的65

2.5.4 DBCC PAGE——如何查看页面的数据65

2.5.5 如何查询数据库的ID和名称66

2.5.6 如何查询数据文件的ID和名称67

2.5.7 一个查询数据页面信息的实例67

2.5.8 内存是如何管理数据页面的71

2.5.9 页头——物理页面是如何管理的71

2.5.10 如何查询ID所属的数据对象72

2.5.11 槽(Slot)——数据记录(行)在数据页面中如何存储73

2.5.12 盘区(Extent)——SQL Server 2000是如何分配存储空间的74

2.5.13 如何提高盘区的空间利用率74

2.5.14 GAM——SQL Server 2000的盘区是如何管理的75

2.5.15 SGAM——SQL Server 2000的混合盘区是如何管理的76

2.5.16 SQL Server 2000如何为数据对象分配盘区77

2.5.17 数据文件的页面结构是怎样的77

2.5.18 如何查询数据文件的页面数78

2.5.19 如何查询数据库的页面数78

2.5.20 如何查询数据库的盘区数78

2.5.21 如何查询数据对象的盘区数79

2.5.22 LOB数据是如何存储的80

2.5.23 如何将小的LOB数据保存在数据页面内80

2.5.24 日志文件的存储空间是如何管理的81

2.6 SQL Server 2000服务器的进程结构81

2.6.1 什么是SQL Server 2000进程81

2.6.2 什么是SQL Server 2000线程81

2.6.3 什么是SQL Server 2000纤程82

2.6.4 SQL语句是怎样使用CPU资源的82

2.6.5 线程或者纤程分配越多效率就越高吗83

2.6.6 什么是线程或者纤程的执行优先级83

2.7 实验:SQL Server 2000如何管理表83

2.7.1 创建测试用数据表83

2.7.2 分析日志内容84

2.7.3 验证系统表中产生的信息87

2.7.4 实验结论88

2.8 实验:对数据页面存储参数的深入研究89

2.8.1 pminlen参数的含义89

2.8.2 m_freecnt参数的含义90

2.8.3 数据页面空间是如何分配的90

2.9 实验:揭秘定长记录(行)的存储空间91

2.9.1 向定长数据表中录入数据91

2.9.2 用DBCC PAGE查看定长记录的存储94

2.9.3 数据页面的空间分配95

2.9.4 总结定长行存储空间的计算方法95

2.10 实验:揭秘变长记录(行)的存储空间96

2.10.1 向变长数据表中录入数据96

2.10.2 用DBCC PAGE查看变长记录的存储空间98

2.10.3 数据页面的空间分配99

2.10.4 总结变长行存储空间的计算方法99

2.10.5 总结计算表行存储空间的方法100

2.11 实验:为什么包含LOB类型的记录可以跨越页面100

2.11.1 LOB对象记录的存储机制101

2.11.2 研究LOB类型的表的存储102

2.11.3 实验结论104

2.12 实验:将LOB数据和普通数据存储在同一个页面105

2.12.1 将LOB数据和普通数据存储在同一页面105

2.12.2 将LOB数据和普通数据分开存储106

2.13 实验:NULL值是否占用存储空间106

2.13.1 定长和变长字段都取NULL值107

2.13.2 定长字段取NULL值、变长字段取NOT NULL值108

2.13.3 定长字段取NOT NULL值、变长字段取NULL值109

2.13.4 定长和变长字段都取NOT NULL值110

2.13.5 实验结论111

2.14 疑难解析111

2.14.1 为什么页面可以存储的数据容量参数不一致111

2.14.2 能不能将特定的数据始终保留在内存中111

2.14.3 最多可以为SQL Server 2000分配多少内存111

2.14.4 如何判断SQL Server 2000内存够不够用111

2.14.5 什么是Read Ahead(先读)112

2.14.6 什么是旋转木马扫描(Merry-Go-Round Scan)112

2.14.7 同步VS.异步——数据和日志文件的写机制区别113

2.14.8 什么时机使用纤程113

2.14.9 线程数和连接数有无关系114

2.14.10 什么是零散收集I/O114

2.14.11 什么是异步I/O114

2.14.12 什么是TDS114

2.14.13 什么是Latch115

2.15 本章小结115

2.16 实践题目115

第3章 管理和配置服务器118

3.1 本章导读118

3.2 服务器的管理和配置工具118

3.2.1 MMC和企业管理器是什么关系119

3.2.2 如何配置企业管理器119

3.2.3 为什么查询分析器查询的对象名无效121

3.2.4 查询分析器显示的执行计划有什么意义122

3.2.5 查询分析器显示的服务器跟踪有什么意义123

3.2.6 查询分析器显示的客户统计有什么意义123

3.2.7 什么是查询分析器的模板(Template)124

3.3 服务器组125

3.3.1 什么是服务器组125

3.3.2 什么是基于服务器组的管理结构125

3.4 注册服务器125

3.4.1 什么是服务器的注册125

3.4.2 什么情况下需要注册服务器126

3.4.3 怎样注册一个服务器126

3.5 暂停、启动和关闭服务器127

3.5.1 什么时机需要暂停服务器128

3.5.2 如何暂停服务器128

3.5.3 如何关闭服务器128

3.5.4 关闭和暂停服务器有什么区别129

3.5.5 如何启动服务器129

3.5.6 在企业管理器中管理服务器130

3.6 配置服务器130

3.6.1 怎样查看服务器的环境信息130

3.6.2 什么是服务器的排序规则131

3.6.3 哪些服务可以自动启动131

3.6.4 什么是服务器的错误报告功能132

3.6.5 如何配置使用动态内存的服务器132

3.6.6 如何配置一个使用固定内存的服务器133

3.6.7 SQL Server 2000服务器可以使用哪些CPU133

3.6.8 如何设置CPU的最大线程数133

3.6.9 是否提升SQL Server 2000线程的优先级134

3.6.10 使用线程还是纤程134

3.6.11 是否启用多CPU做并行查询134

3.6.12 如何更改服务器的身份验证方式134

3.6.13 如何对服务器进行审核135

3.6.14 如何查看服务器的审核信息135

3.6.15 谁可以启动服务器136

3.6.16 如何限制并发连接的用户数137

3.6.17 如何在服务器之间执行分布式事务137

3.6.18 什么是用户的默认语言138

3.6.19 如何控制服务器的行为138

3.6.20 服务器如何解释两位数年份139

3.6.21 什么是索引填充因子139

3.6.22 如何设置磁带备份和还原参数141

3.6.23 什么是恢复间隔141

3.6.24 创建数据库的文件存放在哪里142

3.6.25 如何查询服务器的当前配置参数142

3.6.26 如何查询服务器的当前运行参数142

3.7 多服务器环境的管理和配置143

3.7.1 创建和使用链接服务器143

3.7.2 创建和使用远程服务器145

3.8 疑难解析146

3.8.1 注册名为Local如何处理146

3.8.2 如何设置服务器的内存大小146

3.8.3 为什么服务器占用内存太多146

3.8.4 什么是服务器的错误日志147

3.9 本章小结147

3.10 实践题目148

第4章 管理和配置数据库149

4.1 本章导读149

4.2 默认的4个系统数据库150

4.2.1 master数据库有什么作用150

4.2.2 model数据库有什么作用150

4.2.3 msdb数据库有什么作用150

4.2.4 tempdb数据库有什么作用150

4.2.5 4个系统数据库是如何启动的151

4.3 创建用户数据库152

4.3.1 谁可以创建用户数据库152

4.3.2 如何命名用户数据库152

4.3.3 创建用户数据库会产生哪些操作系统文件152

4.3.4 为什么要评估数据文件的初始大小153

4.3.5 粗略评估数据文件初始大小的案例153

4.3.6 创建用户数据库的案例153

4.4 配置用户数据库155

4.4.1 数据库工作在什么状态155

4.4.2 数据库当前空间利用率是多少156

4.4.3 怎样添加次要数据文件156

4.4.4 数据文件之间怎样存储数据156

4.4.5 怎样添加多个日志文件157

4.4.6 日志文件之间怎样存储数据157

4.4.7 什么是文件组158

4.4.8 什么是默认的文件组158

4.4.9 如何使用文件组158

4.4.10 如何创建文件组159

4.4.11 如何限制用户对数据库的访问159

4.4.12 什么是数据库的单用户模式160

4.4.13 如何选择数据库的故障还原模型(恢复模型)160

4.4.14 选项设置参数有什么含义161

4.4.15 什么是数据库的兼容性162

4.4.16 如何设置用户访问数据库的权限162

4.5 分离和附加用户数据库163

4.5.1 如何分离数据库163

4.5.2 如何附加数据库163

4.6 脱机和联机用户数据库164

4.6.1 如何脱机数据库164

4.6.2 如何联机数据库165

4.7 维护用户数据库165

4.7.1 什么是数据库的维护计划165

4.7.2 创建数据库维护计划165

4.8 收缩用户数据库168

4.8.1 为什么要收缩数据库168

4.8.2 什么是自动收缩和手动收缩169

4.8.3 收缩数据文件和日志文件有什么不同169

4.8.4 收缩操作是如何执行的169

4.8.5 收缩数据库的案例169

4.9 删除用户数据库170

4.10 实验:tempdb数据库的数据存放在内存还是硬盘上171

4.11 实验:数据文件组的比例填充写机制173

4.11.1 测试比例填充写机制的方法173

4.11.2 研究数据页面分配方法174

4.12 实验:日志文件的循环写机制176

4.13 疑难解析176

4.13.1 文件必须按照指定的扩展名命名吗176

4.13.2 能不能重新命名数据库177

4.13.3 如何删除数据文件177

4.13.4 如何删除日志文件178

4.13.5 为什么分区上无法创建文件178

4.13.6 如何查看数据库空间使用情况178

4.13.7 如何使用tempdb数据库178

4.13.8 为什么恢复Master数据库提示必须单用户模式179

4.13.9 Tempdb数据库可以恢复吗179

4.13.10 如何在Tempdb数据库中创建临时表179

4.13.11 在企业管理器中看不到Tempdb数据库的临时表179

4.13.12 为什么对Tempdb数据库的操作执行较快180

4.13.13 如何更改Tempdb数据库文件的存储路径180

4.14 本章小结181

4.15 实践题目181

第5章 DBCC命令182

5.1 本章导读182

5.2 DBCC帮助类命令183

5.2.1 DBCC HELP(‘?’)183

5.2.2 DBCC HELP(‘命令’)183

5.2.3 DBCC USEROPTIONS183

5.3 DBCC状态验证类命令183

5.3.1 DBCC CHECKALLOC183

5.3.2 DBCC CHECKCATALOG184

5.3.3 DBCC CHECKCONSTRINTS185

5.3.4 DBCC CHECKDB185

5.3.5 DBCC CHECKFILEGROUP186

5.3.6 DBCC CHECKTABLE187

5.3.7 DBCC CHECKIDENT188

5.4 DBCC维护类命令188

5.4.1 DBCC CLEANTABLE188

5.4.2 DBCC DBREINDEX189

5.4.3 DBCC UPDATEUSAGE190

5.4.4 DBCC INDEXDEFRAG191

5.4.5 DBCC PINTABLE192

5.4.6 DBCC UNPINTABLE193

5.4.7 DBCC SHRINKDATABASE193

5.4.8 DBCC SHRINKFILE195

5.5 DBCC性能调节类命令197

5.5.1 DBCC dllname(FREE)197

5.5.2 DBCC DROPCLEANBUFFERS197

5.5.3 DBCC FREEPROCCACHE198

5.5.4 DBCC INPUTBUFFER198

5.5.5 DBCC OPENTRAN199

5.5.6 DBCC OUTPUTBUFFER199

5.5.7 DBCC SHOW_STATISTICS200

5.5.8 DBCC SHOWCONTIG200

5.5.9 DBCC SQLPERF201

5.5.10 DBCC CACHESTATS204

5.5.11 DBCC CURSORSTATS205

5.5.12 DBCC MEMORYSTATS205

5.5.13 DBCC SQLMGRSTATS206

5.6 DBCC未公开的命令206

5.6.1 DBCC ERRLOG206

5.6.2 DBCC FLUSHPROCINDB207

5.6.3 DBCC BUFFER207

5.6.4 DBCC DBINFO207

5.6.5 DBCC DBTABLE208

5.6.6 DBCC IND208

5.6.7 DBCC LOG208

5.6.8 DBCC PROCBUF209

5.6.9 DBCC PRTIPAGE210

5.6.10 DBCC PSS210

5.6.11 DBCC RESOURCE211

5.6.12 DBCC TAB211

5.7 DBCC跟踪标记212

5.7.1 什么是跟踪标记212

5.7.2 DBCC TRACEON212

5.7.3 DBCC TRACEOFF212

5.7.4 DBCC TRACESTATUS212

第6章 数据三套车——表、索引和视图213

6.1 本章导读213

6.2 数据类型——SQL Server 2000如何表示数据213

6.2.1 SQL Server 2000的基本数据类型213

6.2.2 使用整数型数据类型需要注意什么214

6.2.3 使用货币数据类型需要注意什么215

6.2.4 如何录入货币数据类型的数据215

6.2.5 使用精确数字数据类型需要注意什么215

6.2.6 使用浮点数字数据类型需要注意什么216

6.2.7 使用日期/时间数字数据类型需要注意什么216

6.2.8 如何指定日期/时间数据类型的格式216

6.2.9 使用字符型数据类型时需要注意什么217

6.2.10 使用Unicode字符型数据类型时需要注意什么217

6.2.11 使用二进制数据类型时需要注意什么217

6.2.12 如何创建用户定义的数据类型218

6.3 表219

6.3.1 SQL Server 2000表的分类219

6.3.2 如何设计表219

6.3.3 设计表结构时为什么要避免NULL值220

6.3.4 如何选择主码列220

6.3.5 什么是IDENTITY(标识符)列220

6.3.6 什么是GUID(全局惟一标识符)列221

6.3.7 创建表221

6.3.8 修改表结构223

6.3.9 删除表225

6.3.10 SQL Server 2000如何管理表225

6.3.11 表的数据存储在哪个数据页面228

6.3.12 文本和图像数据是如何存储的229

6.3.13 如何计算表需要的存储空间231

6.4 索引232

6.4.1 表扫描还是索引扫描——SQL Server 2000如何访问数据232

6.4.2 索引对数据库是不是必须的232

6.4.3 索引的原理233

6.4.4 从堆到B+树——索引文件结构的变迁233

6.4.5 SQL Server 2000的索引类型234

6.4.6 时间VS.空间——选择稠密索引还是稀疏索引235

6.4.7 探究聚集索引的奥秘236

6.4.8 行定位器——探究非聚集索引的奥秘243

6.4.9 IAM页面——探究堆集的奥秘244

6.4.10 什么是页的分裂245

6.4.11 索引填充因子——避免页分裂的重要参数246

6.4.12 如何估计B+树索引的大小246

6.4.13 如何查看索引的实际大小247

6.4.14 在【企业管理器】中如何创建索引249

6.4.15 用Transact-SQL语句如何创建索引250

6.4.16 DBCC IND——如何查看索引分配的页面251

6.4.17 DBCC SHOWCONTIG——如何检测索引的碎片252

6.4.18 DBCC INDEXDEFRAG——如何整理索引的碎片254

6.4.19 选择性和密度——选择索引的奥秘255

6.4.20 统计信息——影响索引性能的因素256

6.4.21 用索引优化向导设计索引257

6.4.22 不是每个索引都有美好结局——总结创建索引的经验259

6.5 视图260

6.5.1 视图是什么260

6.5.2 为什么要使用视图260

6.5.3 SQL Server 2000中创建视图的规则261

6.5.4 创建视图261

6.5.5 通过视图操作表的数据262

6.6 疑难解析263

6.6.1 为什么非聚集索引适合返回少数值的查询263

6.6.2 为什么聚集索引适合范围查询264

6.6.3 SQL Server 2000中表的规格参数264

6.6.4 索引是否只对SELECT语句起作用264

6.6.5 视图上能不能建立索引265

6.6.6 如何创建覆盖索引265

6.6.7 什么是数据热点265

6.6.8 创建的聚集索引如何避免产生数据热点265

6.6.9 如何选择建立聚集索引的列266

6.6.10 如何设计聚集索引和非聚集索引266

6.6.11 如何设计索引的填充因子266

6.6.12 什么是表变量267

6.6.13 表变量VS.临时表267

6.6.14 视图到底有没有自己的数据268

6.7 本章小结268

6.8 实践题目268

第7章 功能VS.效率——SQL详解270

7.1 本章导读270

7.2 SQL基础270

7.2.1 SQL的特点270

7.2.2 SQL的组成272

7.2.3 SQL中如何表示数据对象273

7.3 用SQL定义数据273

7.3.1 Create Database——创建数据库274

7.3.2 Alter Database——修改数据库274

7.3.3 Drop Database——删除数据库275

7.3.4 Create Table——创建表275

7.3.5 Alter Table——修改表277

7.3.6 Drop Table——删除表277

7.4 用SQL查询单表数据277

7.4.1 创建实例数据库277

7.4.2 查询所有记录280

7.4.3 查询指定字段的记录280

7.4.4 查询中过滤相同的记录281

7.4.5 带表达式的查询281

7.4.6 显示列名的带表达式的查询281

7.4.7 指定查询路径的查询281

7.4.8 指定查询结果的查询281

7.4.9 更改列标题显示的查询282

7.4.10 【Where】条件查询282

7.4.11 组合条件查询284

7.4.12 用Order By对查询结果排序284

7.4.13 用Group By对查询结果分组285

7.4.14 用Having对查询结果筛选285

7.4.15 用Compute对查询结果汇总286

7.4.16 用Compute By对查询结果分类汇总286

7.4.17 用Into存储查询结果287

7.5 用SQL查询多表数据(连接查询)287

7.5.1 连接查询的语法结构287

7.5.2 连接查询的分类288

7.5.3 笛卡尔积连接288

7.5.4 等值连接288

7.5.5 自然连接289

7.5.6 非等值连接289

7.5.7 自身连接289

7.5.8 内连接289

7.5.9 外连接290

7.5.10 复合连接291

7.6 用SQL进行函数查询292

7.6.1 聚合函数292

7.6.2 日期和时间函数293

7.6.3 数学函数296

7.6.4 字符串函数298

7.7 用SQL进行嵌套查询301

7.7.1 什么是嵌套查询301

7.7.2 什么是子查询301

7.7.3 简单嵌套查询302

7.7.4 带in的嵌套查询302

7.7.5 带not in的嵌套查询303

7.7.6 带some的嵌套查询303

7.7.7 带any的嵌套查询304

7.7.8 带all的嵌套查询305

7.7.9 带exists的嵌套查询305

7.8 用SQL操纵数据306

7.8.1 Insert——数据录入306

7.8.2 Update——数据修改306

7.8.3 Delete——数据删除307

7.9 设计高效的SQL语句307

7.9.1 SQL语句是怎样被执行的307

7.9.2 SQL语句是怎样被优化的308

7.9.3 SET STATISTICS IO——查询SQL语句的读写代价308

7.9.4 SET STATISTICS TIME——查询SQL语句的执行时间310

7.9.5 SET SHOWPLAN_TEXT ON——查询SQL语句的执行计划311

7.9.6 SET NOCOUNT ON——减少SQL语句的网络流量311

7.9.7 编程查询单条SQL语句的执行时间312

7.9.8 编程查询成批的SQL语句的执行时间313

7.9.9 SET SHOWPLAN_ALL——详解SQL语句的执行计划313

7.9.10 SEEK VS.SCAN——从执行计划判断是否需要优化SQL315

7.9.11 连接VS.子查询——一样的结果、不一样的效率316

7.9.12 SQL优化与数据库性能的关系317

7.9.13 人工优化VS.智能优化——SQL优化技术的发展318

7.9.14 用SQL Expert设计优化的SQL语句318

7.10 疑难解析321

7.10.1 在SQL语句中如何转换数据类型321

7.10.2 设计SQL语句的经验321

7.11 本章小结322

7.12 实践题目322

第8章 数据完整性——约束、规则和默认323

8.1 本章导读323

8.2 SQL Server 2000的数据完整性机制323

8.2.1 什么是数据完整性323

8.2.2 SQL Server 2000的数据完整性机制324

8.2.3 SQL Server 2000的约束(CONSTRAINT)324

8.2.4 SQL Server 2000的规则(RULE)325

8.2.5 SQL Server 2000的默认(DEFAULT)325

8.3 创建约束326

8.3.1 创建NOT NULL约束326

8.3.2 创建PRIMARY KEY约束326

8.3.3 创建FOREIGN KEY约束327

8.3.4 创建UNIQUE约束328

8.3.5 创建CHECK约束328

8.4 创建规则329

8.4.1 在【企业管理器】中创建规则329

8.4.2 将规则绑定到列329

8.5 创建默认330

8.5.1 在【企业管理器】中创建默认330

8.5.2 将默认绑定到列331

8.6 疑难解析331

8.6.1 创建UNIQUE约束的注意事项331

8.6.2 创建CHECK约束的注意事项332

8.7 本章小结332

8.8 实践题目332

第9章 数据安全性——角色、用户和权限334

9.1 本章导读334

9.2 SQL Server 2000的数据安全性机制334

9.2.1 SQL Server 2000的数据安全性机制334

9.2.2 SQL Server 2000的身份验证机制335

9.2.3 SQL Server 2000的角色机制336

9.2.4 SQL Server 2000的权限(许可)机制337

9.3 管理服务器角色338

9.3.1 管理角色338

9.3.2 创建数据库角色339

9.4 管理用户账户(登录)341

9.4.1 创建登录341

9.4.2 管理登录的权限342

9.5 审核用户活动(AUDIT)342

9.5.1 启动服务器的审核功能343

9.5.2 利用【事件探查器】进行审核343

9.6 疑难解析346

9.6.1 账户和密码保存在哪里346

9.6.2 如何选择身份验证机制346

9.6.3 应用程序角色和标准角色有什么区别346

9.6.4 什么时机使用应用程序角色347

9.6.5 为什么【企业管理器】中无法添加Windows用户组347

9.6.6 如何设计SQL Server 2000服务器的安全体系347

9.6.7 如何使用sa账户347

9.6.8 什么是dbo用户347

9.6.9 什么是数据库对象所有者348

9.7 本章小结348

第10章 数据并发性——事务和锁349

10.1 本章导读349

10.2 SQL Server 2000的事务机制349

10.2.1 SQL Server 2000的并发问题349

10.2.2 什么是事务(Transaction)351

10.2.3 事务的状态352

10.2.4 SQL Server 2000事务模式353

10.2.5 SQL Server 2000事务控制语句354

10.2.6 SQL Server 2000的平面事务354

10.2.7 SQL Server 2000的嵌套事务354

10.2.8 SQL Server 2000的分布式事务356

10.2.9 效率VS.一致性——事务的调度机制358

10.2.10 一致性VS.并发性——事务的隔离性级别358

10.2.11 什么是SQL Server 2000批359

10.2.12 事务中不能使用的Transact-SQL语句359

10.3 SQL Server 2000的锁机制359

10.3.1 并发问题解决机制359

10.3.2 锁——预先预防冲突的悲观并发控制机制360

10.3.3 SQL Server 2000锁的粒度361

10.3.4 SQL Server 2000锁的类型(模式)361

10.3.5 锁持有度363

10.3.6 锁拥有者363

10.3.7 查询锁信息363

10.3.8 锁的兼容性365

10.3.9 SQL Server 2000的动态锁机制365

10.3.10 在【企业管理器】中查看锁366

10.3.11 死锁的检测和预防366

10.3.12 SQL Server 2000的死锁检测和结束机制367

10.3.13 用【事件探查器】检测死锁368

10.4 SQL Server 2000的事务编程368

10.4.1 设置和关闭隐性事务模式368

10.4.2 定义本地事务370

10.4.3 提交事务371

10.4.4 回滚事务372

10.4.5 利用保存点保存本地事务373

10.4.6 设置事务的隔离性级别373

10.5 疑难解析374

10.5.1 本地事务什么时机会升级为分布式事务374

10.5.2 编写前台应用程序时如何使用事务374

10.5.3 在利用ADO编写前台应用程序时如何使用事务375

10.5.4 编写前台应用程序时如何使用隐性事务375

10.5.5 编写前台应用程序事务的原则376

10.5.6 Log Explorer——明明白白学日志的工具377

10.5.7 Select语句会不会产生日志379

10.5.8 Insert语句产生了什么事务日志379

10.5.9 Update语句产生了什么事务日志380

10.5.10 Delete语句产生了什么事务381

10.6 本章小结381

第11章 数据库备份和恢复383

11.1 本章导读383

11.2 基于日志的数据库恢复机制384

11.2.1 日志对数据库是必须的吗384

11.2.2 日志的作用384

11.2.3 SQL Server 2000日志的特点385

11.2.4 日志记录——日志文件的内容单位385

11.2.5 Undo VS.Redo——基于日志的数据库恢复机制385

11.2.6 LSN——维系数据和日志的纽带386

11.2.7 WAL——先写日志的恢复机制388

11.3 SQL Server 2000的常见故障和恢复机制390

11.3.1 Undo——事务故障及其恢复机制390

11.3.2 Undo+Redo——系统故障及其恢复机制391

11.3.3 Redo——介质故障及其恢复机制391

11.4 SQL Server 2000的日志检查点机制392

11.4.1 检查点——日志的驿站392

11.4.2 为什么检查点能提高恢复的效率393

11.4.3 MinLSN——如何选择最小恢复LSN394

11.4.4 什么情况下产生检查点394

11.4.5 SQL Server 2000的自动检查点机制395

11.4.6 CHECKPOINT——手动产生检查点395

11.5 安全VS.空间——SQL Server 2000数据库的恢复模型396

11.5.1 完全恢复模型396

11.5.2 大容量日志记录恢复模型397

11.5.3 简单恢复模型397

11.5.4 3种恢复模型的比较397

11.5.5 设置SQL Server 2000数据库的恢复模型398

11.5.6 不同恢复模型下的检查点操作398

11.6 SQL Server 2000的备份机制400

11.6.1 SQL Server 2000的备份类型400

11.6.2 不同的恢复模型支持的备份类型401

11.6.3 SQL Server 2000的备份设备401

11.6.4 用SP_SPACEUSED估计备份的大小403

11.7 用【企业管理器】备份与恢复404

11.7.1 完全数据库备份404

11.7.2 完全数据库恢复405

11.7.3 事务日志备份406

11.7.4 事务日志恢复407

11.7.5 差异数据库备份408

11.7.6 差异数据库恢复409

11.7.7 文件和文件组备份410

11.7.8 文件和文件组恢复411

11.8 用Transact-SQL备份与恢复412

11.8.1 用于数据库备份的Transact-SQL语句412

11.8.2 用于文件或文件组备份的Transact-SQL语句414

11.8.3 用于日志备份的Transact-SQL语句415

11.8.4 截断事务日志Transact-SQL语句416

11.8.5 恢复完全数据库备份的Transact-SQL语句416

11.8.6 恢复事务日志备份的Transact-SQL语句417

11.9 设计和实施一个完整的数据库备份与恢复方案418

11.9.1 技术VS.代价——如何制定备份与恢复方案418

11.9.2 选择SQL Server 2000数据库的恢复模型420

11.9.3 适合绝大部分数据库的两种备份与恢复方案421

11.9.4 剖析一个完整的数据库备份与恢复方案421

11.9.5 实施一个完整的数据库备份方案422

11.9.6 实施灾难数据库恢复方案425

11.10 疑难解析426

11.10.1 仅有.BAK文件时如何恢复426

11.10.2 为什么无法进行事务日志备份和文件备份427

11.10.3 为什么无法创建差异数据库备份427

11.10.4 备份或者恢复过程发生中断如何处理428

11.10.5 什么时机需要备份Master数据库429

11.10.6 需不需要备份tempdb数据库429

11.10.7 当前日志和备份日志有什么关系429

11.10.8 仅有数据文件、没有日志文件时如何恢复429

11.10.9 DBCC LOGINFO查看VLF431

11.11 本章小结432

11.12 实践题目432

第12章 智能管理——代理服务434

12.1 本章导读434

12.2 SQL Server 2000的代理服务机制434

12.2.1 SQL Server 2000代理服务的结构434

12.2.2 SQL Server 2000代理服务的运行环境435

12.2.3 配置SQL Server 2000代理服务的属性435

12.3 一个基于代理服务实现的智能作业437

12.3.1 创建警报437

12.3.2 创建操作员438

12.3.3 创建作业439

12.4 本章小结441

12.5 实践题目442

第13章 服务器性能监控、调整和优化443

13.1 本章导读443

13.2 可能导致性能瓶颈的因素444

13.2.1 服务器资源444

13.2.2 网络444

13.2.3 数据库设计444

13.2.4 应用系统设计444

13.3 服务器性能监控和调整工具445

13.3.1 Windows的【性能监控器】445

13.3.2 Windows的【任务管理器】446

13.3.3 SQL Server 2000的【事件探查器】447

13.3.4 SQL Server 2000的【查询分析器】449

13.3.5 特殊的系统存储过程449

13.3.6 特殊的DBCC命令449

13.3.7 特殊的全局变量450

13.3.8 SQL Server 2000的【索引调节向导】453

13.4 监控和调整I/O性能453

13.4.1 磁盘I/O对服务器性能的影响453

13.4.2 监控磁盘I/O性能的计数器453

13.4.3 磁盘I/O是否是性能瓶颈454

13.4.4 可能导致磁盘I/O性能瓶颈的原因454

13.4.5 顺序I/O VS.随机I/O——SQL Server 2000的I/O类型455

13.4.6 调整I/O性能的方法455

13.5 监控和调整内存性能456

13.5.1 物理内存VS.虚拟内存456

13.5.2 内存页面错误——内存性能低下的原因456

13.5.3 监控内存性能的计数器457

13.5.4 内存是不是性能瓶颈457

13.5.5 调整内存性能的方法458

13.6 监控和调整CPU性能458

13.6.1 进程VS.线程VS.纤程——分配CPU资源的单位458

13.6.2 用户模式VS.特权模式459

13.6.3 监控CPU性能的计数器459

13.6.4 CPU是不是性能的瓶颈459

13.6.5 监控消耗CPU资源进程的计数器460

13.6.6 监控消耗CPU资源线程的计数器460

13.6.7 监控进程和线程的意义460

13.6.8 更多CPU VS.更快的CPU461

13.7 监控和调整网络性能461

13.7.1 监控网络性能的计数器461

13.7.2 调整网络性能的方法461

13.8 调整和优化数据库设计462

13.8.1 监控数据库性能的计数器462

13.8.2 优化数据库设计的方法464

13.9 调整和优化应用系统设计464

13.9.1 监控应用系统性能的计数器464

13.9.2 优化应用系统设计的方法465

13.10 设计和实现一个优化的SQL Server 2000服务器465

13.10.1 数据和日志文件分开存放在不同磁盘上465

13.10.2 tempdb数据库单独存放在不同磁盘上465

13.10.3 避免热点数据的发生466

13.10.4 数据类型要少466

13.10.5 监控和整理空间碎片466

13.10.6 使用主数据文件和次要数据文件466

13.10.7 利用文件组改善性能466

13.10.8 重视自动增长和自动收缩可能导致的性能问题467

13.10.9 分离系统数据和用户数据467

13.10.10 优化索引设计467

13.10.11 定期更新统计信息467

13.10.12 定期的一致性检查467

13.11 疑难解析467

13.11.1 整数VS.浮点运算能力——配置SQL Server 2000系统的CPU467

13.11.2 查询密集VS.事务密集——配置SQL Server 2000系统的内存468

13.11.3 容量VS.吞吐量——配置SQL Server 2000系统的硬盘468

13.12 本章小结468

第14章 SQL Server 2000高级管理专题470

14.1 本章导读470

14.2 数据转换服务DTS470

14.2.1 什么是DTS服务470

14.2.2 使用DTS向导转换数据471

14.2.3 创建DTS包474

14.2.4 DTS包调度执行失败原因及解决方法477

14.3 全文索引478

14.3.1 基表查询VS.全文查询478

14.3.2 什么是全文目录479

14.3.3 什么是全文索引479

14.3.4 启用全文检索服务479

14.3.5 定义全文索引480

14.3.6 利用全文索引检索数据482

14.4 分布式数据复制484

14.4.1 备份VS.复制484

14.4.2 分布式数据复制的优点484

14.4.3 什么时机需要使用分布式数据复制485

14.4.4 SQL Server 2000分布式数据复制的机制485

14.4.5 拉订阅(请求订阅)VS.推订阅(强制订阅)485

14.4.6 SQL Server 2000的分布式数据复制类型486

14.4.7 SQL Server 2000的分布式数据复制代理487

14.4.8 配置发布、订阅和分发服务器488

14.4.9 使用【复制监视器】491

14.4.10 创建及管理发布492

14.4.11 创建订阅495

14.5 本章小结499

第15章 专业的SQL Server 2000管理工具500

15.1 本章导读500

15.2 Quest Central501

15.2.1 Quest Central简介501

15.2.2 Quest Central for SQL Server简介501

15.2.3 注册SQL Server 2000服务器502

15.2.4 自动发现未注册的SQL Server 2000服务器503

15.2.5 比较两个SQL Server 2000对象504

15.2.6 Knowledge Xpert——SQL Server 2000知识宝典505

15.2.7 SQL Tuning——设计优化的SQL语句506

15.2.8 Space Management——可视化的空间管理工具507

15.2.9 Database Analysis——专业数据库性能分析工具508

15.2.10 Performance Analysis——实时诊断和历史分析工具508

15.3 Spotlight509

15.3.1 Spotlight简介509

15.3.2 用Spotlight监控服务器总体性能509

15.3.3 用Spotlight监控I/O510

15.3.4 用Spotlight监控Sessions511

15.3.5 用Spotlight监控Lock511

15.3.6 用Spotlight监控有无资源阻塞512

15.3.7 用Spotlight监控物理文件的I/O512

15.3.8 用Spotlight监控内存总体性能513

15.3.9 用Spotlight监控数据库空间使用情况513

15.4 Data Factory514

15.4.1 Data Factory简介514

15.4.2 利用Data Factory产生数据514

15.5 Benchmark Factory516

15.5.1 Benchmarka Factory简介516

15.5.2 数据库压力测试工业标准517

15.5.3 用Benchmark Factory测试数据库压力517

15.6 本章小结520

第二部分 TranSact-SQL编程523

第16章 Transact-SQL编程523

16.1 本章导读523

16.2 Transact-SQL VS.SQL523

16.2.1 什么是Transact-SQL523

16.2.2 Transact-SQL VS.SQL524

16.2.3 Transact-SQL程序的结构524

16.2.4 Transact-SQL程序的数据类型525

16.2.5 Transact-SQL程序的批处理525

16.2.6 应用程序中如何使用Transact-SQL程序526

16.2.7 Transact-SQL程序的运算符526

16.3 变量527

16.3.1 Transact-SQL的变量类型527

16.3.2 Transact-SQL的全局变量528

16.3.3 创建和使用局部变量529

16.4 函数530

16.4.1 Convert函数530

16.4.2 创建和使用自定义函数531

16.5 流程控制语句533

16.5.1 程序块语句(BEGIN…END)533

16.5.2 判断语句(IF…ELSE)534

16.5.3 检测语句(IF…EXISTS)536

16.5.4 循环语句(WHILE)536

16.5.5 分支判断语句(CASE…WHEN)537

16.5.6 无条件退出语句(RETURN)538

16.5.7 延期执行语句(WAITFOR)540

16.5.8 跳转语句(GOTO)541

16.6 功能性语句542

16.6.1 输出语句(PRINT)542

16.6.2 错误处理语句(RAISEERROR)543

16.6.3 选项设置语句(SET)544

16.7 游标(Cursor)545

16.7.1 什么是游标545

16.7.2 游标的生命周期545

16.7.3 声明游标546

16.7.4 打开游标547

16.7.5 读取游标547

16.7.6 关闭游标548

16.7.7 释放游标548

16.7.8 完整的游标实例548

16.7.9 游标的执行效率很差吗549

16.8 本章小结550

第17章 存储过程和触发器551

17.1 本章导读551

17.2 存储过程基础551

17.2.1 为什么要设计存储过程551

17.2.2 什么是存储过程552

17.2.3 存储过程的作用552

17.2.4 存储过程有什么优点552

17.2.5 SQL Server 2000存储过程的分类553

17.3 创建、执行和管理存储过程553

17.3.1 在【企业管理器】中创建存储过程553

17.3.2 创建存储过程的Transact-SQL语法556

17.3.3 执行存储过程557

17.3.4 创建带参数和返回值的存储过程559

17.3.5 执行带参数和返回值的存储过程560

17.3.6 删除存储过程560

17.3.7 执行带参数的存储过程的等效语句560

17.4 触发器基础561

17.4.1 什么是触发器561

17.4.2 SQL Server 2000的触发器类型561

17.4.3 SQL Server 2000的触发器工作原理562

17.4.4 SQL Server 2000触发器的优点563

17.4.5 什么时机使用触发器563

17.5 创建和管理触发器563

17.5.1 创建触发器的Transact-SQL语法563

17.5.2 在【企业管理器】中创建触发器564

17.5.3 删除触发器565

17.5.4 触发器和约束的区别565

17.5.5 触发器中是否可以使用Inserted和Deleted表565

17.6 本章小结566

17.7 实践题目566

第三部分 VB+SQL Server 2000应用开发571

第18章 SQL Server 2000应用开发基础571

18.1 本章导读571

18.2 两种SQL Server 2000数据库项目模式572

18.2.1 C/S模式的数据库项目572

18.2.2 B/S模式的数据库项目572

18.3 SQL Server 2000项目开发流程573

18.3.1 可行性研究573

18.3.2 需求分析574

18.3.3 概要设计574

18.3.4 详细设计前台应用系统575

18.3.5 详细设计数据库系统575

18.3.6 代码设计576

18.3.7 测试维护576

18.3.8 撰写规范的项目开发文档576

18.4 构建VB+SQL Server 2000项目开发环境577

18.4.1 确保SQL Server 2000服务器正常工作577

18.4.2 测试开发机和SQL Server 2000服务器的连接578

18.5 VB+SQL Server 2000项目开发关键技术580

18.5.1 什么是ActiveX控件580

18.5.2 ADO——开发数据库项目的积木581

18.5.3 SQL——ADO操纵SQL Server 2000数据库的语言581

18.5.4 ODBC接口581

18.5.5 OLEDB接口582

18.5.6 完整的ADO程序结构583

18.5.7 连接池——影响程序效率的黑马583

18.6 本章小结585

第19章 VB数据库项目开发关键586

19.1 本章导读586

19.2 完整的VB数据库项目开发流程586

19.2.1 建立数据库工程587

19.2.2 设计步骤587

19.2.3 剖析工程的结构592

19.2.4 设置工程的属性592

19.2.5 编译工程593

19.2.6 打包和发布工程594

19.3 3种VB数据库项目编程技术596

19.3.1 如何引用ADODB对象596

19.3.2 使用表名的VB数据库项目编程技术597

19.3.3 使用SQL语句的VB数据库项目编程技术600

19.3.4 使用存储过程的VB数据库项目编程技术600

19.3.5 3种VB数据库项目编程技术比较603

19.4 3种VB数据库项目接口技术603

19.4.1 ODBC接口技术603

19.4.2 OLEDB接口技术606

19.4.3 OLEDB-ODBC接口技术606

19.4.4 3种接口技术比较606

19.5 3种质量的VB数据库项目代码607

19.5.1 代码级别的VB数据库项目607

19.5.2 模块级别的VB数据库项目607

19.5.3 类模块级别的VB数据库项目608

19.6 ODBC API数据库项目开发608

19.6.1 间接的ODBC接口技术608

19.6.2 使用ODBC API的直接接口技术608

19.6.3 剖析ODBC API的编程机制609

19.6.4 开发一个完整的ODBC API数据库项目612

19.6.5 剖析ODBC API数据库项目的结构616

19.6.6 ODBC API不是效率的神话617

19.7 VB和SQL Server 2000数据类型的转换617

19.7.1 SQL Server 2000的数据类型617

19.7.2 VB的数据类型618

19.7.3 VB和SQL Server 2000数据类型的转换619

19.8 VB数据库项目常用函数619

19.8.1 常用字符和数值转换函数619

19.8.2 常用的字符串函数620

19.8.3 常用的日期型函数622

19.8.4 常用的数据类型转换函数623

19.9 本章小结624

第20章 基于ADO的VB数据库应用开发626

20.1 本章导读626

20.2 基于ADODC的数据库应用开发626

20.2.1 使用通用数据链接文件的ADODC626

20.2.2 使用文件DSN的ADODC628

20.2.3 使用系统DSN的ADODC631

20.2.4 使用连接字符串的ADODC632

20.2.5 ADODC连接SQL Server 2000数据库方法比较633

20.2.6 ADODC编程633

20.3 ADO的体系结构635

20.3.1 客户机内存VS.服务器内存——ADO数据在哪里635

20.3.2 内存中的ADO数据635

20.3.3 ADODC的体系结构637

20.3.4 ADODB的体系结构637

20.3.5 ADODC和ADODB的体系结构比较638

20.4 Connection对象编程638

20.4.1 设计Connection对象工程639

20.4.2 Connection对象的编程结构640

20.4.3 Connection对象的编程要素640

20.5 Recordset对象编程641

20.5.1 设计Recordset对象工程641

20.5.2 Recordset对象的编程结构642

20.5.3 Open——Recordset对象如何提取数据643

20.5.4 Cursor——让Recordset数据自由移动的指针645

20.5.5 CursorLocation——Cursor存放在客户机还是服务器645

20.5.6 CursorType——移动数据有区别648

20.5.7 LockType——确保数据的安全650

20.5.8 Recordset对象的编程方法654

20.5.9 Recordset对象的编程属性654

20.5.10 一个Recordset对象编程的完整实例655

20.6 Command对象编程657

20.6.1 无Command对象如何执行SQL658

20.6.2 使用Command对象如何执行SQL658

20.6.3 Command和Recordset对象执行SQL方法的比较660

20.7 本章小结661

第21章 控件——显示数据的艺术662

21.1 本章导读662

21.2 ADODC控件662

21.2.1 BOFAction——到达首记录如何处理663

21.2.2 EOFAction——到达尾记录如何处理663

21.2.3 CacheSize——客户机内存上有多少记录663

21.2.4 CommandTimeout——ADO判断错误命令的最长时间663

21.2.5 CommandType——用什么命令提取数据664

21.2.6 ConnectionString——数据库在哪里664

21.2.7 ConnectionTimeout——ADO连接等待的最长时间664

21.2.8 CursorLocation——Cursor放在客户机还是服务器上664

21.2.9 CursorType——移动Recordset数据有区别664

21.2.10 LockType——怎样确保数据的安全665

21.2.11 MaxRecords——最大的数据记录数目665

21.2.12 Mode——连接信息的更改权限665

21.2.13 Password——访问数据库的密码665

21.2.14 UserName——访问数据库的账户665

21.2.15 RecordSource——访问数据库的账户666

21.3 DataList控件666

21.3.1 编写一个使用DataList控件的程序666

21.3.2 RowSource——指定DataList控件的数据来源667

21.3.3 ListField——指定DataList控件显示的数据667

21.3.4 BoundColumn——指定DataList控件返回的数据668

21.3.5 ADODC控件和DataList控件是如何连接的668

21.3.6 DataList控件的主要方法668

21.4 DataCombo控件668

21.4.1 编写一个使用DataCombo控件的程序668

21.4.2 DataCombo控件的主要属性670

21.4.3 DataCombo控件的主要方法670

21.4.4 ADODC控件和DataCombo控件是如何连接的670

21.5 DataGrid控件670

21.5.1 编写一个使用DataGrid控件的程序671

21.5.2 DataGrid控件的主要属性673

21.5.3 DataGrid控件的布局艺术673

21.5.4 给DataGrid控件添加数据列674

21.6 本章小结674

第22章 报表——打印数据的艺术675

22.1 本章导读675

22.2 数据环境——报表数据之源675

22.2.1 设计一个数据环境对象676

22.2.2 在程序中使用数据环境对象678

22.2.3 数据环境对象的主要属性679

22.2.4 数据环境对象的主要方法680

22.2.5 对数据环境对象编程680

22.3 报表的设计艺术683

22.3.1 设计一个空白报表683

22.3.2 报表设计器685

22.3.3 向空白报表中添加数据686

22.3.4 设计列表式报表687

22.3.5 在报表中打印时间、日期和页码689

22.3.6 报表数据对齐689

22.3.7 设计数据的打印格式689

22.3.8 打印数据的自动换行690

22.3.9 避免不恰当的数据分页690

22.3.10 控制报表组成部分是否分页691

22.3.11 设置打印的报表大小691

22.3.12 如何控制报表的预览692

22.3.13 如何控制报表的打印692

22.3.14 如何控制报表的导出693

22.3.15 利用RptFunction控件设计统计报表693

22.4 分组统计报表的设计艺术695

22.4.1 设计工程结构695

22.4.2 在数据环境中建立数据分组696

22.4.3 设计分组统计报表697

22.4.4 分组统计报表的设计步骤701

22.5 利用【水晶报表】设计报表701

22.5.1 利用【水晶报表】设计报表701

22.5.2 在VB程序中调用设计的报表704

22.5.3 实践中发现的问题706

22.6 本章小结707

热门推荐