第一章 数据模型 3
1.1 概述 3
1.2 ERA模型 3
第一部分 学习手册 3
1.3 数据模型成分 4
1.4 表 5
1.5 表限制 6
1.6 非分解列 6
1.7 无空(NN) 7
1.8 无重复(ND) 8
1.10 主关键字(PK) 9
1.9 无变化(NC) 9
1.11 外关键字(FK) 10
1.12 应用:图书馆数据库设计 11
第二章 数据定义 16
2.1 概述 16
2.2 定义系统目录 16
2.2.1 系统数据库 17
2.2.2 master数据库 18
2.2.3 model数据库 18
2.2.5 系统表 19
2.2.4 tempdb数据库 19
2.2.6 只在master中建立的系统表 20
2.2.7 建立在每一个数据库中的系统表 21
2.2.8 数据库成分 22
2.2.9 有用的系统过程 23
2.3 分配存储 24
2.3.1 数据存储 24
2.3.2 数据库设备 25
2.3.3 跨区设备 26
2.3.4 增加数据库设备 26
2.3.6 DISK INIT语句 27
2.3.5 确定设备大小 27
2.3.7 建立缺省设备 28
2.4 建立一个数据库 29
2.4.1 谁建立数据库 30
2.4.2 CREATE DATABASE命令 30
2.4.3 CREATE DATABASE举例 32
2.4.4 事务(处理)记录 33
2.4.5 向独立的设备中分配登录 34
2.4.6 将记录分配到独立设备中所用的命令 34
2.4.7 增加数据库尺寸 35
2.5.1 数据类型 36
2.5 建立表 36
2.5.2 增加和撤消用户定义的数据类型 37
2.5.3 CREATE TABLE命令 38
2.5.4 CREATE TABLE举例 39
2.6 实现程序段 40
2.6.1 什么是程序段 40
2.6.2 三个自动建立的程序段 41
2.6.3 增加一个程序段 41
2.6.4 程序段管理 42
2.6.5 程序段和性能 43
2.7 复习 44
第三章 检索数据 45
3.1 概述 45
3.2 SELECT语句 45
3.2.1 SELECT举例 46
3.3 选择列 47
3.3.1 列的重排次序 47
3.3.2 文字 48
3.3.3 表达式 49
3.4 处理字符数据 50
3.4.1 操作数值数据 51
3.4.2 操作日期数据 52
3.4.3 获取系统函数 54
3.4.4 数据转换 56
3.4.5 改变列标题 57
3.5 选择行 58
3.5.1 根据比较条件选择行 59
3.5.2 根据范围选择行 60
3.5.3 根据列表选择行 61
3.5.4 根据字符串选择行 62
3.5.5 怎样使用通配符 62
3.5.6 根据未知值选择行 63
3.5.7 根据几个搜索变元选择行 63
3.5.8 消除重复 65
3.5.9 排序结果 66
3.6 复习 68
第四章 检索数据--更高级的主题 69
4.1 概述 69
4.2 产生总结数据 69
4.2.1 用合计函数产生总结数据 69
4.2.2 用GROUP BY和HAVING产生总结数据 71
4.2.3 COMPUTE 71
4.2.4 COMPUTE BY 72
4.3 联系数据 74
4.3.1 连接 75
4.3.2 自然连接 76
4.3.3 外部连接 77
4.3.4 自连接 79
4.3.5 两上以上表的连接 80
4.3.6 用合计函数组合连接 81
4.4 执行子查询 82
4.4.1 嵌入SELECT 83
4.4.2 子查询 84
4.4.3 相关子查询 85
4.4.4 SELECT INTO 86
4.4.5 UNION操作符 87
4.5 复习 88
第五章 修改数据 90
5.1 概述 90
5.2 插入行 90
5.2.1 只有某些列插入数据 91
5.2.2 用SELECT插入行 92
5.3 修改行数据 93
5.3.1 根据其它表中的数据进行修改 93
5.4 删除行 94
5.4.1 根据其它表中的数据移走行 95
5.5 输入和输出数据 95
5.5.2 用BCP实用程序传输数据 96
5.5.1 BCP 96
5.5.3 索引和记录 97
5.5.4 完整性问题 98
5.5.5 将文件中数据拷贝到SQL Server的步骤 98
5.5.6 BCP选择 99
5.5.7 大容量拷贝举例 100
5.5.8 格式化文件 101
5.5.9 BCP格式文件 102
5.6 复习 102
6.1 概述 104
6.2 为什么、什么时间及怎样建立索引 104
第六章 索引 104
6.2.1 为什么要索引 105
6.2.2 为什么不在每一行都建立索引 105
6.2.3 应建立索引的列 106
6.2.4 什么时候不建立索引 106
6.3 索引的类型 107
6.3.1 建立索引 107
6.3.2 聚集索引 108
6.3.3 非聚集索引 109
6.3.4 什么时候使用聚集索引 109
6.3.6 唯一索引 110
6.3.5 复合索引 110
6.3.7 SORTED_DATA 112
6.4 性能问题 112
6.4.1 扫描与查找 113
6.4.2 UPDATE STATISTICS 113
6.4.3 FILLFACTOR 114
6.5 复习 115
第七章 视图 115
7.1 概述 116
7.2 视图 116
7.2.1 优点 117
7.3 建立视图 118
7.3.1 建立视图 118
7.3.2 限制 119
7.3.3 投影举列 119
7.3.4 连接举列 120
7.3.5 计算列举例 120
7.3.6 合计函数举例 121
7.3.7 视图的视图举例 122
7.4 通过视图修改数据 122
7.4.1 修改不能作用于一个以上的基础对象 123
7.4.3 涉及到带有NO NULL列的对象的修改会引起错误 124
7.4.2 对某些列不能做修改 124
7.5 有关视图的问题 125
7.6 复习 125
第八章 缺省和规则 127
8.1 概述 127
8.2 什么是缺省和规则 127
8.3 缺省 128
8.3.1 建立缺省 129
8.3.2 连接缺省 129
8.3.3 解除连接和撤消缺省 130
8.3.4 缺省和空值 131
8.4 规则 132
8.5 建立规则 132
8.6 绑定规则 133
8.6.1 AS从句 134
8.6.2 规则定义 135
8.6.3 解除和撤消规则 135
8.7 复习 136
第九章 编程能力 137
9.1 概述 137
9.2 批处理和脚本 137
9.2.2 在单个批处理中组合语句 138
9.2.1 批处理和脚本的区别 138
9.2.3 批处理规则 140
9.2.4 有效和无效批处理举例 140
9.3 事务处理管理 141
9.3.1 数据完整性和事务处理 141
9.3.2 数据一致性 142
9.3.3 数据恢复功能 142
9.3.4 用户定义的事务 143
9.3.5 滚回和存储点(savepoint) 143
9.4 控制流程 144
9.4.2 IF...ELSE 145
9.4.1 控制流程语言 145
9.4.3 BGIN...END 146
9.4.4 WHILE和BREAK...CONTINUE 147
9.4.5 局部变量 148
9.4.6 全局变量 149
9.4.7 GOTO RETURN和WAITFOR 150
9.4.8 PRINT/RAISERROR 150
9.5 存储进程 151
9.5.1 什么是存储进程 151
9.5.2 优点 152
9.5.3 建立存储进程 152
9.5.4 带OUTPUT的EXECUTE语句 153
9.5.5 执行计划 154
9.5.6 再编译选择 155
9.5.7 在一个进程中 155
9.5.8 交互地执行存储进程 156
9.5.9 建立一个简单的存储进程 156
9.5.10 系统进程 157
9.5.11 远程存储进程 157
9.5.12 扩展的存储进程(ESP) 158
9.5.13 管理扩展存储进程 159
9.5.15 xp-cmdshell举例 160
9.5.14 扩展存储进程举例 160
9.6 复习 161
第十章 触发器 163
10.1 概述 163
10.2 触发器 163
10.3 建立触发器 164
10.3.1 INSERT触发器 165
10.3.2 DELETE触发器 165
10.3.3 UPDATE触发器 166
10.3.4 列上的UPDATE 167
10.4 执行触发器 167
10.4.1 实体完整性 168
10.4.2 相关完整性 169
10.4.3 数据完整性 170
10.4.4 业务规则 171
10.5 触发器和性能 172
10.5.1 嵌入触发器 172
10.6 复习 173
第十一章 应用程序开发和Open DATA Services 174
11.1 概述 174
11.2 集成企业的数据 174
11.3 什么是DB-Library 175
11.5 DB-Library和ODBC功能 176
11.4 什么是ODBC(Open Database Connectivity) 176
11.6 应用程序设计接口 177
11.7 开发者工具盒 178
11.8 Visual Basic for SQL Server 179
11.9 Open Data Services(ODS) 180
11.10 Open Data Server功能 181
11.11 ODS(Open Data Servers)与SQL Server关系 182
11.12 ODS的优点 183
11.13 应用程序结构 183
11.14 远程存储过程 184
11.16 请求检查 185
11.15 扩展SQL Server的应用程序 185
11.18 从SQL Server中运行外部程序 186
11.17 实时事件警告器 186
11.19 向SQL Server寻回外部数据 187
11.20 ODS的网关应用程序 188
11.21 Micro Decisionware中的数据库网关 189
11.22 提供IBM主机数据的直接客户访问 189
11.23 SQL Server和DB2之间的表转移 190
11.24 SQL Bridge 191
11.25 复习 191
介绍 195
组织机构 195
实验1:图书馆实例概述 195
目的 195
第二部分 实验手册 195
举例 196
图书检查 197
历史信息 197
图书馆功能 198
图书馆数据库设计 198
图书馆概况 199
练习2:建立设计(DISK INIT) 203
练习1:拷贝实验文件 203
实验2:数据定义 203
实验准备 203
目的 203
练习3:建立图书馆数据库 204
练习5:清除事务日志 204
练习4:建立数据类型 205
练习6:建立表格 205
练习1:从一张表中调入指定行 206
产生简单数据 206
实验准备 206
实验目的 206
实验3:调入数据 206
练习2:改变输出格式 208
练习3:从表中调入指定行 208
练习4:在查询结果中包含计算值 209
练习5:在查询结果除去重复行 209
练习6:查询结果排序 210
练习2:对一组数据进行组合运算 211
练习1:对指定列进行组合运算 211
练习3:联结表格 211
实验4:调入数据--高级论题 211
目的 211
练习4:建立Control-Break摘要 213
练习6:使用UNION连结结果集 215
练习5:子查询 216
练习7:(任选)建立临时表 216
实验5:修改数据 218
目的 218
练习1:使用INSERT对某一表添加新行 218
练习2:在基于SELECT命令所形成的表中添加行 219
练习5:批量拷贝程序调入数据 220
练习3:使用DELETE从表中删除行 220
练习4:使用UPDATE修改行 220
练习6:检验批量拷贝 221
练习7:用对象管理器输入数据 222
练习8:用BCP Out建立Format file 222
实验6:建立索引 224
目的 224
实验准备 224
练习1:没有索引的查询 224
练习2:检查并执行脚本以建立索引 224
练习3:建立附加索引 224
练习5:SORTED DATA 225
练习4:验证结果 225
实验7:建立视图 226
目的 226
实验前 226
练习1:复习并执行Script以建立视图 226
练习2:检验视图 226
练习3:建立视图 227
练习1:复习并提出建立缺省的脚本 228
练习3:复习并提出脚本以建立规则 228
练习2:建立自己的缺省 228
实验前 228
目的 228
实验8:建立缺省及规则 228
练习4:建立规则 229
实验9:建立存储过程 230
目的 230
实验前 230
练习1:复习脚本并建立存储过程 230
练习2:执行脚本,建立存储过程 230
练习4:建立你自己的存储过程 231
练习5:返回参数 231
练习3:验证存储过程 231
练习6:执行扩展存储过程 232
练习7:远程存储过程 232
实验10:建立触发器 235
目的 235
实验前 235
练习1:复习建立触发器的脚本 235
练习2:执行脚本以建立触发器 235
练习3:验证触发器的攻效 235
练习5:创建一个Reservation表的触发器 236
练习6:嵌套触发器 236
练习4:建立触发器以修改原来的数据 236
实验11:Open Data services(ODS) 237
目的 237
实验前 237
练习1:安装ODS 237
练习2:设置另外Windwos NT的通道 237
练习3:为相互操作性能准备SQL Server和PROCSRV 238
练习4:用SQL Server访问PROCSRV例行程序 239
附录A 快速参照 241
A.1 isgl快速参照 241
A.2 执行查询 242
附录B 参考文献 245