第1篇 基础知识 3
第1章 数据库基础 3
1.1数据库系统简介 4
1.1.1数据库技术的发展 4
1.1.2数据库系统的组成 4
1.2数据库的体系结构 5
1.2.1数据库三级模式结构 5
1.2.2三级模式之间的映射 5
1.3数据模型 6
1.3.1数据模型的概念 6
1.3.2常见的数据模型 6
1.3.3关系数据库的规范化 7
1.3.4关系数据库的设计原则 7
1.3.5实体与关系 8
1.4常见关系数据库 8
1.4.1 Access数据库 8
1.4.2 SQL Server 2000数据库 8
1.4.3 SQL Server 2005数据库 9
1.4.4 SQL Server 2008数据库 9
1.4.5 Oracle数据库 9
1.5小结 10
1.6实践与练习 10
第2章 初识SQL Server 2008 11
2.1 SQL Server 2008简介 12
2.2 SQL Server 2008的特点 13
2.3 SQL Server 2008的安装 15
2.3.1 SQL Server 2008安装必备 15
2.3.2 SQL Server 2008的安装 15
2.3.3 SQL Server 2008的卸载 23
2.4使用SQL Server 2008的帮助 24
2.5小结 25
2.6实践与练习 25
第3章 管理SQL Server 2008 27
3.1 SQL Server 2008的服务 28
3.2启动SQL Server 2008的服务 28
3.2.1后台启动SQL Server 2008 28
3.2.2通过SQL Server配置管理器启动SQL Server 2008 29
3.3注册SQL Server 2008 30
3.3.1服务器组的创建与删除 30
3.3.2服务器的注册与删除 32
3.4 SQL Server 2008数据库的安全设置 35
3.4.1更改登录用户验证方式 35
3.4.2创建与删除登录账户 36
3.4.3设置服务器角色权限 39
3.4.4创建与删除数据库用户 40
3.4.5密码策略 42
3.5小结 42
3.6实践与练习 43
第4章 创建与管理数据库 45
4.1认识数据库 46
4.1.1数据库基本概念 46
4.1.2数据库常用对象 47
4.1.3数据库组成 47
4.1.4系统数据库 48
4.2 SQL Server的命名规则 49
4.2.1标识符 49
4.2.2对象命名规则 50
4.2.3实例命名规则 51
4.3数据库的创建与管理 51
4.3.1使用管理器创建数据库 51
4.3.2使用管理器修改数据库 52
4.3.3使用管理器删除数据库 54
4.4小结 55
4.5实践与练习 55
第5章 操作数据表与视图 57
5.1数据表基础知识 58
5.1.1基本数据类型 58
5.1.2用户自定义数据类型 59
5.1.3数据表的数据完整性 60
5.2使用企业管理器管理数据表 62
5.2.1创建数据表 62
5.2.2修改数据表 63
5.2.3重命名数据表 64
5.2.4删除数据表 65
5.3创建、删除和修改约束 65
5.3.1非空约束 66
5.3.2主键约束 67
5.3.3唯一约束 68
5.3.4检查约束 69
5.3.5默认约束 70
5.3.6外键约束 70
5.4关系的创建与维护 72
5.4.1一对一关系 72
5.4.2一对多关系 73
5.4.3多对多关系 74
5.5视图概述 74
5.6使用企业管理器管理视图 75
5.6.1创建视图 75
5.6.2查看视图信息 76
5.6.3在视图中插入数据记录 77
5.6.4在视图中修改数据记录 77
5.6.5在视图中删除数据记录 78
5.6.6删除视图 78
5.7小结 79
5.8实践与练习 79
第6章 维护SQL Server 2008 81
6.1脱机与联机数据库 82
6.1.1脱机数据库 82
6.1.2联机数据库 82
6.2分离和附加数据库 83
6.2.1分离数据库 83
6.2.2附加数据库 84
6.3导入导出数据 84
6.3.1导入SQL Server数据表 85
6.3.2导入其他数据源的数据 87
6.3.3导出SQL Server数据表 90
6.4备份和恢复数据库 93
6.4.1备份类型 93
6.4.2恢复模式 93
6.4.3备份数据库 94
6.4.4恢复数据库 95
6.5收缩数据库和文件 97
6.5.1自动收缩数据库 97
6.5.2手动收缩数据库 98
6.6生成与执行SQL脚本 99
6.6.1将数据库生成SQL脚本 99
6.6.2将数据表生成SQL脚本 100
6.6.3执行SQL脚本 100
6.7小结 101
6.8实践与练习 101
第2篇 核心技术 105
第7章T-SQL概述 105
7.1 T-SQL概述 106
7.1.1 T-SQL语言的组成 106
7.1.2 T-SQL语句结构 106
7.1.3 T-SQL语句分类 107
7.2常量 107
7.2.1数字常量 107
7.2.2字符串常量 108
7.2.3日期和时间常量 108
7.2.4符号常量 108
7.3变量 108
7.3.1局部变量 109
7.3.2全局变量 110
7.4注释符、运算符与通配符 112
7.4.1注释符 112
7.4.2运算符 113
7.4.3通配符 116
7.5流程控制 117
7.5.1 BEGIN…END 117
7.5.2 IF 118
7.5.3 IF…ELSE 119
7.5.4 CASE 120
7.5.5 WHILE 122
7.5.6 WFILE…CONTTNUE…BREAK 123
7.5.7 RETURN 124
7.5.8 GOTO 125
7.5.9 WAITFOR 125
7.6常用命令 126
7.6.1 DBCC 126
7.6.2 CHECKPOINT 128
7.6.3 DECLARE 128
7.6.4 PRINT 130
7.6.5 RAISERROR 130
7.6.6 READTEXT 131
7.6.7 BACKUP 132
7.6.8 RESTORE 133
7.6.9 SELECT 134
7.6.10 SET 135
7.6.11 SHUTDOWN 136
7.6.12 WRITETEXT 137
7.6.13 USE 138
7.7小结 138
7.8实践与练习 138
第8章SQL数据语言操作 139
8.1使用T-SQL语句操作数据库 140
8.1.1数据库的创建 140
8.1.2数据库的修改 143
8.1.3删除数据库 149
8.2数据表操作 149
8.2.1使用CREATE TABLE语句创建表 150
8.2.2创建、修改和删除约束 153
8.2.3使用ALTER TABLE语句修改表结构 160
8.2.4使用DROP TABLE语句删除表 161
8.3数据操作 162
8.3.1使用SELECT语句浏览数据表 162
8.3.2使用INSERT语句添加数据 162
8.3.3使用UPDATE语句修改指定数据 163
8.3.4使用DELETE语句删除指定数据 164
8.4视图操作 165
8.4.1使用CREATE VIEW语句创建视图 165
8.4.2重命名视图 166
8.4.3使用ALTER VIEW语句修改视图 167
8.4.4使用DROP VIEW语句删除视图 168
8.5视图中的数据操作 168
8.5.1从视图中浏览数据 169
8.5.2向视图中添加数据 169
8.5.3修改视图中的数据 170
8.5.4删除视图中的数据 170
8.6小结 171
8.7实践与练习 171
第9章SQL数据查询 173
9.1 SELECT检索数据 174
9.1.1 SELECT语句的基本结构 174
9.1.2 WITH子句 175
9.1.3 SELECT…FROM子句 176
9.1.4 INTO子句 180
9.1.5 WHERE子句 181
9.1.6 GROUP BY子句 189
9.1.7 HAVING子句 191
9.1.8 ORDER BY子句 191
9.1.9 COMPUTE子句 192
9.1.10 DISTINCT关键字 194
9.1.11 TOP关键字 194
9.2 UNION合并多个查询结果 195
9.2.1 UNION与联接之间的区别 195
9.2.2使用UNION ALL合并表 196
9.2.3 UNION中的order by子句 196
9.2.4 UNION中的自动数据类型转换 197
9.2.5使用UNION合并不同类型的数据 197
9.2.6使用UNION合并有不同列数的两个表 198
9.2.7使用UNION进行多表合并 198
9.3子查询与嵌套查询 199
9.3.1什么是子查询 199
9.3.2什么是嵌套查询 199
9.3.3简单的嵌套查询 200
9.3.4带IN的嵌套查询 200
9.3.5带NOT IN的嵌套查询 201
9.3.6带SOME的嵌套查询 201
9.3.7带ANY的嵌套查询 201
9.3.8带ALL的嵌套查询 202
9.3.9带EXISTS的嵌套查询 202
9.4联接查询 202
9.4.1内部联接 203
9.4.2外部联接 203
9.4.3交叉联接 205
9.4.4联接多表的方法 206
9.5使用CASE函数进行查询 207
9.6小结 209
9.7实践与练习 210
第10章 存储过程和触发器 211
10.1存储过程概述 212
10.1.1存储过程的概念 212
10.1.2存储过程的优点 212
10.2创建存储过程 213
10.2.1使用向导创建存储过程 213
10.2.2使用CREATE PROC语句创建存储过程 214
10.3管理存储过程 215
10.3.1执行存储过程 215
10.3.2查看存储过程 217
10.3.3修改存储过程 218
10.3.4重命名存储过程 221
10.3.5删除存储过程 222
10.4触发器概述 224
10.4.1触发器的概念 224
10.4.2触发器的优点 224
10.4.3触发器的种类 224
10.5创建触发器 225
10.5.1创建DML触发器 225
10.5.2创建DDL触发器 227
10.5.3创建登录触发器 228
10.6管理触发器 230
10.6.1查看触发器 230
10.6.2修改触发器 231
10.6.3重命名触发器 234
10.6.4禁用和启用触发器 234
10.6.5删除触发器 236
10.7小结 238
10.8实践与练习 238
第3篇 高级应用 241
第11章 索引与数据完整性 241
11.1索引的概念 242
11.2索引的优缺点 242
11.2.1索引的优点 242
11.2.2索引的缺点 242
11.3索引引的分类 243
11.3.1聚集索引 243
11.3.2非聚集索引 243
11.4索引的操作 244
11.4.1索引的创建 244
11.4.2查看索引信息 247
11.4.3索引的修改 248
11.4.4索引的删除 249
11.4.5设置索引的选项 250
11.5索引的分析与维护 253
11.5.1索引的分析 253
11.5.2索引的维护 254
11.6全文索引 257
11.6.1使用企业管理器启用全文索引 257
11.6.2使用Transact-SQL语句启用全文索引 260
11.6.3使用Transact-SQL语句删除全文索引 262
11.6.4全文目录 263
11.6.5全文目录的维护 266
11.7数据完整性 268
11.7.1域完整性 268
11.7.2实体完整性 268
11.7.3引用完整性 269
11.7.4用户定义完整性 269
11.8小结 269
11.9实践与练习 269
第12章 游标的使用 271
12.1游标的概述 272
12.1.1游标的实现 272
12.1.2游标的类型 272
12.2游标的基本操作 273
12.2.1声明游标 273
12.2.2打开游标 276
12.2.3读取游标中的数据 276
12.2.4关闭游标 278
12.2.5释放游标 279
12.3使用系统过程查看游标 279
12.3.1 sp_cursor list 279
12.3.2 sp describe cursor 280
12.4小结 282
12.5实践与练习 282
第13章SQL函数的使用 283
13.1聚合函数 284
13.1.1聚合函数概述 284
13.1.2 SUM(求和)函数 284
13.1.3 AVG(平均值)函数 285
13.1.4 MIN(最小值)函数 286
13.1.5 MAX(最大值)函数 286
13.1.6 COUNT(统计)函数 287
13.1.7 DISTINCT(取不重复记录)函数 288
13.1.8查询重复记录 289
13.2数学函数 289
13.2.1数学函数概述 289
13.2.2 ABS(绝对值)函数 290
13.2.3 PI(圆周率)函数 290
13.2.4 POWER(乘方)函数 291
13.2.5 RAND(随机浮点数)函数 291
13.2.6 ROUND(四舍五入)函数 292
13.2.7 SQUARE(平方)函数和SQRT(平方根)函数 292
13.2.8三角函数 293
13.3字符串函数 295
13.3.1字符串函数概述 295
13.3.2 ASCⅡ(获取ASCⅡ码)函数 296
13.3.3 CHARINDEX(返回字符串的起始位置)函数 297
13.3.4 LEFT(取左边指定个数的字符)函数 298
13.3.5 RIGHT(取右边指定个数的字符)函数 298
13.3.6 LEN(返回字符个数)函数 299
13.3.7 REPLACE(替换字符串)函数 300
13.3.8 REVERSE(返回字符表达式的反转)函数 300
13.3.9 STR函数 300
13.3.10 SUBSTRING(取字符串)函数 301
13.4日期和时间函数 302
13.4.1日期和时间函数概述 302
13.4.2 GETDATE(返回当前系统日期和时间)函数 302
13.4.3 DAY(返回指定日期的天)函数 303
13.4.4 MONTH(返回指定日期的月)函数 303
13.4.5 YEAR(返回指定日期的年)函数 303
13.4.6 DATEDIFF(返回日期和时间的边界数)函数 304
13.4.7 DATEADD(添加日期时间)函数 304
13.5转换函数 305
13.5.1转换函数概述 305
13.5.2 CAST函数 306
13.5.3 CONVERT函数 307
13.6元数据函数 308
13.6.1元数据函数概述 308
13.6.2 COL_LENGTH函数 308
13.6.3 COL NAME函数 309
13.6.4 DB NAME函数 309
13.7小结 310
13.8实践与练习 310
第14章SQL中的事务 311
14.1事务的概念 312
14.2显式事务与隐式事务 312
14.2.1显式事务 313
14.2.2隐式事务 314
14.2.3 API中控制隐式事务 314
14.2.4事务的COMMIT和ROLLBACK 315
14.3使用事务 315
14.3.1开始事务 315
14.3.2结束事务 316
14.3.3回滚事务 316
14.3.4事务的工作机制 317
14.3.5自动提交事务 318
14.3.6事务的并发问题 318
14.3.7事务的隔离级别 319
14.4锁 321
14.4.1 SQL Server锁机制 321
14.4.2锁模式 321
14.4.3锁的粒度 323
14.4.4查看锁 324
14.4.5死锁 324
14.5分布式事务处理 325
14.5.1分布式事务简介 325
14.5.2创建分布式事务 326
14.5.3分布式处理协调器 326
14.6小结 326
14.7实践与练习 327
第4篇 项目实战 331
第15章 基于C#的企业ERP管理系统 331
15.1系统分析 332
15.1.1需求分析 332
15.1.2可行性分析 332
15.1.3编写项目计划书 333
15.2系统设计 335
15.2.1系统目标 336
15.2.2系统功能结构 336
15.2.3系统业务流程图 337
15.2.4系统编码规范 338
15.2.5系统预览 340
15.3系统运行环境 342
15.4数据库与数据表设计 343
15.4.1数据库分析 343
15.4.2数据库概念设计 344
15.4.3数据库逻辑设计 346
15.4.4数据表逻辑关系 349
15.5文件夹组织结构 350
15.6公共类设计 351
15.6.1 DataBase类 351
15.6.2 CommonUse类 355
15.7物料清单模块设计 359
15.7.1设计物料清单(BOM)窗体 359
15.7.2加载物料清单的母件和子件信息 360
15.7.3添加物料清单信息 361
15.7.4保存物料清单信息 362
15.8销售收款单模块设计 364
15.8.1设计销售收款单窗体 365
15.8.2浏览已审核的销售出库单信息 365
15.8.3选择已审核的销售出库单 367
15.9生产单模块设计 368
15.9.1设计生产单窗体 368
15.9.2浏览已审核的主生产计划信息 369
15.9.3审核的生产单信息 370
15.9.4弃审的生产单信息 371
15.10产品销售毛利汇总模块设计 372
15.10.1设计产品销售毛利汇总窗体 372
15.10.2加载产品名称信息 373
15.10.3查询产品销售毛利信息 373
15.11系统打包部署 375
15.12小结 379