当前位置:首页 > 工业技术
深入浅出-SQL Server 2000系统管理与应用开发
深入浅出-SQL Server 2000系统管理与应用开发

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

工业技术

  • 电子书积分:20 积分如何计算积分?
  • 作 者:赵松涛编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2006
  • ISBN:711514284X
  • 页数:707 页
图书介绍:本书内容包括构建SQL Server 2000网络,SQL Server 2000的体系结构,管理和配置服务器,管理和配置数据库,DBCC命令,数据三套车等。
《深入浅出-SQL Server 2000系统管理与应用开发》目录

第一部分 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/IP 7

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 2000 17

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/IP 33

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

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

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的SP3 45

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

1.14.7 如何卸载SQL Server 2000 46

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/O 114

2.14.11 什么是异步I/O 114

2.14.12 什么是TDS 114

2.14.13 什么是Latch 115

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服务器可以使用哪些CPU 133

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 USEROPTIONS 183

5.3 DBCC状态验证类命令 183

5.3.1 DBCC CHECKALLOC 183

5.3.2 DBCC CHECKCATALOG 184

5.3.3 DBCC CHECKCONSTRINTS 185

5.3.4 DBCC CHECKDB 185

5.3.5 DBCC CHECKFILEGROUP 186

5.3.6 DBCC CHECKTABLE 187

5.3.7 DBCC CHECKIDENT 188

5.4 DBCC维护类命令 188

5.4.1 DBCC CLEANTABLE 188

5.4.2 DBCC DBREINDEX 189

5.4.3 DBCC UPDATEUSAGE 190

5.4.4 DBCC INDEXDEFRAG 191

5.4.5 DBCC PINTABLE 192

5.4.6 DBCC UNPINTABLE 193

5.4.7 DBCC SHRINKDATABASE 193

5.4.8 DBCC SHRINKFILE 195

5.5 DBCC性能调节类命令 197

5.5.1 DBCC dllname(FREE) 197

5.5.2 DBCC DROPCLEANBUFFERS 197

5.5.3 DBCC FREEPROCCACHE 198

5.5.4 DBCC INPUTBUFFER 198

5.5.5 DBCC OPENTRAN 199

5.5.6 DBCC OUTPUTBUFFER 199

5.5.7 DBCC SHOW_STATISTICS 200

5.5.8 DBCC SHOWCONTIG 200

5.5.9 DBCC SQLPERF 201

5.5.10 DBCC CACHESTATS 204

5.5.11 DBCC CURSORSTATS 205

5.5.12 DBCC MEMORYSTATS 205

5.5.13 DBCC SQLMGRSTATS 206

5.6 DBCC未公开的命令 206

5.6.1 DBCC ERRLOG 206

5.6.2 DBCC FLUSHPROCINDB 207

5.6.3 DBCC BUFFER 207

5.6.4 DBCC DBINFO 207

5.6.5 DBCC DBTABLE 208

5.6.6 DBCC IND 208

5.6.7 DBCC LOG 208

5.6.8 DBCC PROCBUF 209

5.6.9 DBCC PRTIPAGE 210

5.6.10 DBCC PSS 210

5.6.11 DBCC RESOURCE 211

5.6.12 DBCC TAB 211

5.7 DBCC跟踪标记 212

5.7.1 什么是跟踪标记 212

5.7.2 DBCC TRACEON 212

5.7.3 DBCC TRACEOFF 212

5.7.4 DBCC TRACESTATUS 212

第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——从执行计划判断是否需要优化SQL 315

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——如何选择最小恢复LSN 394

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查看VLF 431

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.更快的CPU 461

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系统的CPU 467

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 数据转换服务DTS 470

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 Central 501

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 Spotlight 509

15.3.1 Spotlight简介 509

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

15.3.3 用Spotlight监控I/O 510

15.3.4 用Spotlight监控Sessions 511

15.3.5 用Spotlight监控Lock 511

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

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

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

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

15.4 Data Factory 514

15.4.1 Data Factory简介 514

15.4.2 利用Data Factory产生数据 514

15.5 Benchmark Factory 516

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.SQL 523

16.2.1 什么是Transact-SQL 523

16.2.2 Transact-SQL VS.SQL 524

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 使用通用数据链接文件的ADODC 626

20.2.2 使用文件DSN的ADODC 628

20.2.3 使用系统DSN的ADODC 631

20.2.4 使用连接字符串的ADODC 632

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对象如何执行SQL 658

20.6.2 使用Command对象如何执行SQL 658

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

相关图书
作者其它书籍
返回顶部