第1篇 基础知识 2
第1章 数据库基础 2
1.1数据库系统简介 3
1.1.1数据库技术的发展 3
1.1.2数据库系统的组成 3
1.2数据库的体系结构 4
1.2.1数据库三级模式结构 4
1.2.2三级模式之间的映射 5
1.3数据模型 5
1.3.1数据模型的概念 6
1.3.2常见的数据模型 6
1.3.3关系数据库的规范化 7
1.3.4关系数据库的设计原则 8
1.3.5实体与关系 8
1.4常见关系数据库 8
1.4.1 Access数据库 8
1.4.2 SQL Server数据库 9
1.4.3 Oracle数据库 9
1.4.4 MySQL数据库 9
1.5小结 9
1.6实践与练习 10
第2章 SQL Server数据库环境搭建 11
2.1 SQL Server数据库简介 12
2.2 SQL Server 2017的安装与卸载 12
2.2.1 SQL Server 2017安装必备 12
2.2.2下载SQL Server 2017安装引导文件 12
2.2.3下载SQL Server 2017安装文件 13
2.2.4安装SQL Server 2017数据库 15
2.2.5安装SQL Server Management Studio管理工具 24
2.2.6启动SQL Server管理工具 25
2.2.7 SQL Server 2017的卸载 26
2.3小结 27
第3章 SQL Server服务的启动与注册 28
3.1 SQL Server数据库服务 29
3.2启动SQL Server服务 29
3.2.1通过后台启动服务 29
3.2.2通过配置管理器启动服务 30
3.3注册SQL Server服务器 30
3.3.1创建与删除服务器组 30
3.3.2注册与删除服务器 32
3.4小结 34
3.5实践与练习 34
第4章 创建与管理数据库 35
4.1认识数据库 36
4.1.1数据库基本概念 36
4.1.2数据库常用对象 37
4.1.3数据库组成 37
4.1.4系统数据库 38
4.2 SQL Server的命名规则 39
4.2.1标识符 39
4.2.2对象命名规则 40
4.2.3实例命名规则 41
4.3数据库的创建与管理 41
4.3.1创建数据库 41
4.3.2修改数据库 45
4.3.3删除数据库 48
4.4小结 50
4.5实践与练习 50
第5章 操作数据表 51
5.1数据表基础 52
5.1.1基本数据类型 52
5.1.2用户自定义数据类型 53
5.1.3数据表的数据完整性 54
5.2数据表的创建与管理 55
5.2.1以界面方式操作数据表 56
5.2.2使用CREATE TABLE语句创建表 57
5.2.3使用ALTER TABLE语句修改表结构 60
5.2.4使用DROP TABLE语句删除表 62
5.3管理数据 62
5.3.1使用INSERT语句添加数据 62
5.3.2使用UPDATE语句修改数据 63
5.3.3使用DELETE语句删除数据 64
5.4创建、删除和修改约束 64
5.4.1非空约束 65
5.4.2主键约束 65
5.4.3唯一约束 67
5.4.4检查约束 68
5.4.5默认约束 69
5.4.6 外键约束 71
5.5关系的创建与维护 72
5.5.1一对一关系 73
5.5.2一对多关系 74
5.5.3多对多关系 75
5.6小结 75
5.7实践与练习 75
第2篇 核心技术 78
第6章 SQL基础 78
6.1 T-SQL概述 79
6.1.1 T-SQL的组成 79
6.1.2 T-SQL语句结构 79
6.1.3 T-SQL语句分类 80
6.2常量 80
6.2.1数字常量 80
6.2.2字符串常量 81
6.2.3日期和时间常量 81
6.2.4符号常量 81
6.3变量 81
6.3.1局部变量 82
6.3.2全局变量 83
6.4注释符、运算符与通配符 84
6.4.1注释符 85
6.4.2运算符 85
6.4.3通配符 88
6.5流程控制 89
6.5.1 BEGIN …END 89
6.5.2 IF 90
6.5.3 IF …ELSE 91
6.5.4 CASE 92
6.5.5 WHILE 94
6.5.6 WHILE…CONTINUE…BREAK 94
6.5.7 RETURN 95
6.5.8 GOTO 96
6.5.9 WAITFOR 97
6.6常用命令 97
6.6.1 DBCC 98
6.6.2 CHECKPOINT 99
6.6.3 DECLARE 99
6.6.4 PRINT 101
6.6.5 RAISERROR 101
6.6.6 READTEXT 102
6.6.7 BACKUP 103
6.6.8 RESTORE 104
6.6.9 SELECT 105
6.6.10 SET 106
6.6.11 SHUTDOWN 107
6.6.12 WRITETEXT 108
6.6.13 USE 109
6.7小结 109
6.8实践与练习 110
第7章 SQL函数的使用 111
7.1聚合函数 112
7.1.1聚合函数概述 112
7.1.2 SUM(求和)函数 112
7.1.3 AVG(平均值)函数 113
7.1.4 MIN(最小值)函数 114
7.1.5 MAX(最大值)函数 115
7.1.6 COUNT(统计)函数 116
7.1.7 DISTINCT(取不重复记录)函数 117
7.1.8查询重复记录 117
7.2数学函数 118
7.2.1数学函数概述 118
7.2.2 ABS(绝对值)函数 119
7.2.3 PI(圆周率)函数 119
7.2.4 POWER(乘方)函数 120
7.2.5 RAND(随机浮点数)函数 120
7.2.6 ROUND(四舍五入)函数 121
7.2.7 SQUARE(平方)函数和SQRT(平方根)函数 122
7.2.8三角函数 123
7.3字符串函数 125
7.3.1字符串函数概述 125
7.3.2 ASCII(获取ASCII码)函数 125
7.3.3 CHARINDEX(返回字符串的起始位置)函数 127
7.3.4 LEFT(取左边指定个数的字符)函数 128
7.3.5 RIGHT(取右边指定个数的字符)函数 129
7.3.6 LEN(返回字符个数)函数 129
7.3.7 REPLACE(替换字符串)函数 130
7.3.8 REVERSE(返回字符表达式的反转)函数 131
7.3.9 STR函数 131
7.3.10 SUBSTRING(取字符串)函数 132
7.4日期和时间函数 133
7.4.1日期和时间函数概述 133
7.4.2 GETDATE(返回当前系统日期和时间)函数 133
7.4.3 DAY(返回指定日期的天)函数 134
7.4.4 MONTH(返回指定日期的月)函数 134
7.4.5 YEAR(返回指定日期的年)函数 135
7.4.6 DATEDIFF(返回日期和时间的边界数)函数 135
7.4.7 DATEADD(添加日期时间)函数 136
7.5转换函数 137
7.5.1转换函数概述 137
7.5.2 CAST函数 138
7.5.3 CONVERT函数 139
7.6元数据函数 140
7.6.1元数据函数概述 141
7.6.2 COL LENGTH函数 141
7.6.3 COL NAME函数 142
7.6.4 DB NAME函数 143
7.7小结 143
7.8实践与练习 143
第8章 SQL数据查询基础 144
8.1 SELECT检索数据 145
8.1.1 SELECT语句的基本结构 145
8.1.2 WITH子句 146
8.1.3 SELECT…FROM子句 147
8.1.4 INTO子句 151
8.1.5 WHERE子句 152
8.1.6 GROUP BY子句 162
8.1.7 HAVING子句 164
8.1.8 ORDER BY子句 165
8.1.9 COMPUTE子句 166
8.1.10 DISTINCT关键字 168
8.1.11 TOP关键字 168
8.2 UNION合并多个查询结果 169
8.2.1 UNION与连接之间的区别 169
8.2.2使用UNION ALL合并表 170
8.2.3 UNION中的ORDER BY子句 171
8.2.4 UNION中的自动数据类型转换 171
8.2.5使用UNION合并不同类型的数据 172
8.2.6使用UNION合并有不同列数的两个表 172
8.2.7使用UNION进行多表合并 173
8.3小结 174
8.4实践与练习 174
第9章 SQL数据高级查询 175
9.1子查询与嵌套查询 176
9.1.1子查询概述 176
9.1.2嵌套查询概述 176
9.1.3简单的嵌套查询 177
9.1.4带IN的嵌套查询 177
9.1.5带NOT IN的嵌套查询 178
9.1.6带SOME的嵌套查询 179
9.1.7带ANY的嵌套查询 179
9.1.8带ALL的嵌套查询 180
9.1.9带EXISTS的嵌套查询 180
9.2连接查询 181
9.2.1内连接 181
9.2.2外连接 182
9.2.3交叉连接 183
9.2.4连接多表 185
9.3使用CASE函数进行查询 186
9.4小结 189
9.5实践与练习 189
第10章 视图的使用 190
10.1视图概述 191
10.2视图的分类与操作 191
10.2.1以界面方式操作视图 191
10.2.2使用CREATE VIEW语句创建视图 192
10.2.3使用ALTER VIEW语句修改视图 195
10.2.4使用DROP VIEW语句删除视图 196
10.2.5使用存储过程sp rename修改视图 197
10.3通过视图操作数据 197
10.3.1从视图中浏览数据 197
10.3.2向视图中添加数据 198
10.3.3修改视图中的数据 199
10.3.4删除视图中的数据 199
10.4小结 200
10.5实践与练习 200
第3篇 高级应用 202
第11章 存储过程 202
11.1存储过程概述 203
11.1.1存储过程的概念 203
11.1.2存储过程的优点 203
11.2创建存储过程 204
11.2.1使用向导创建存储过程 204
11.2.2使用CREATEPROC语句创建存储过程 205
11.3管理存储过程 206
11.3.1执行存储过程 206
11.3.2查看存储过程 208
11.3.3修改存储过程 209
11.3.4重命名存储过程 212
11.3.5删除存储过程 213
11.4小结 215
11.5实践与练习 215
第12章 触发器 216
12.1触发器概述 217
12.1.1触发器的概念 217
12.1.2触发器的优点 217
12.1.3触发器的种类 217
12.2创建触发器 218
12.2.1创建DML触发器 218
12.2.2创建DDL触发器 220
12.2.3创建登录触发器 221
12.3管理触发器 223
12.3.1查看触发器 223
12.3.2修改触发器 224
12.3.3重命名触发器 227
12.3.4禁用和启用触发器 227
12.3.5删除触发器 229
12.4小结 231
12.5实践与练习 231
第13章 游标的使用 232
13.1游标的概述 233
13.1.1游标的实现 233
13.1.2游标的类型 233
13.2游标的基本操作 234
13.2.1声明游标 234
13.2.2打开游标 237
13.2.3读取游标中的数据 238
13.2.4关闭游标 240
13.2.5释放游标 241
13.3使用系统过程查看游标 241
13.3.1 sp_cursor_list 242
13.3.2 sp_escribe_cursor 243
13.4小结 244
13.5实践与练习 245
第14章 索引与数据完整性 246
14.1索引的概念 247
14.2索引的优缺点 247
14.2.1索引的优点 247
14.2.2索引的缺点 247
14.3索引的分类 248
14.3.1聚集索引 248
14.3.2非聚集索引 248
14.4索引的操作 249
14.4.1索引的创建 249
14.4.2查看索引信息 252
14.4.3索引的修改 253
14.4.4索引的删除 254
14.4.5设置索引的选项 255
14.5索引的分析与维护 258
14.5.1索引的分析 258
14.5.2索引的维护 259
14.6全文索引 262
14.6.1使用可视化管理工具启用全文索引 262
14.6.2使用T-SQL语句启用全文索引 264
14.6.3使用T-SQL语句删除全文索引 267
14.6.4全文目录 267
14.6.5全文目录的维护 270
14.7数据完整性 273
14.7.1域完整性 273
14.7.2实体完整性 274
14.7.3引用完整性 275
14.7.4用户定义完整性 275
14.8小结 276
14.9实践与练习 276
第15章 SQL中的事务 277
15.1事务的概念 278
15.2显式事务与隐式事务 278
15.2.1显式事务 279
15.2.2隐式事务 280
15.2.3事务的COMMIT和ROLLBACK 280
15.3使用事务 281
15.3.1开始事务 281
15.3.2结束事务 282
15.3.3回滚事务 282
15.3.4事务的工作机制 283
15.3.5自动提交事务 284
15.3.6事务的并发问题 284
15.3.7事务的隔离级别 285
15.4锁 288
15.4.1 SQL Server锁机制 288
15.4.2锁模式 288
15.4.3锁的粒度 290
15.4.4查看锁 291
15.4.5死锁 291
15.5分布式事务处理 292
15.5.1分布式事务简介 292
15.5.2创建分布式事务 292
15.5.3分布式事物处理协调器 293
15.6小结 293
15.7实践与练习 294
第16章 维护SQL Server数据库 295
16.1脱机与联机数据库 296
16.1.1脱机数据库 296
16.1.2联机数据库 296
16.2分离和附加数据库 297
16.2.1分离数据库 297
16.2.2附加数据库 298
16.3导入/导出数据 299
16.3.1导入SQL Server数据表 299
16.3.2导入其他数据源的数据 302
16.3.3导出SQL Server数据表 304
16.4备份和恢复数据库 307
16.4.1备份类型 307
16.4.2恢复模式 307
16.4.3备份数据库 308
16.4.4恢复数据库 309
16.5收缩数据库和文件 311
16.5.1自动收缩数据库 311
16.5.2手动收缩数据库 312
16.6生成与执行SQL脚本 313
16.6.1将数据库生成SQL脚本 313
16.6.2将数据表生成SQL脚本 314
16.6.3执行SQL脚本 314
16.7小结 315
16.8实践与练习 315
第17章 数据库的安全机制 316
17.1数据库安全概述 317
17.2数据库登录管理 317
17.2.1选择验证模式 317
17.2.2管理登录账号 317
17.2.3更改登录验证方式 326
17.2.4设置密码 327
17.3用户及权限管理 327
17.3.1创建与删除数据库用户 327
17.3.2设置服务器角色权限 328
17.4小结 329
17.5实践与练习 330
第4篇 项目实战 332
第18章 Visual C+++SQL Server实现酒店客房管理系统 332
18.1开发背景 333
18.2需求分析 333
18.3系统设计 333
18.3.1系统目标 333
18.3.2系统功能结构 334
18.3.3系统预览 334
18.3.4业务流程图 336
18.3.5数据库设计 336
18.4主窗体设计 337
18.4.1主窗体概述 337
18.4.2主窗体实现过程 338
18.5登录模块设计 343
18.5.1登录模块概述 343
18.5.2登录模块技术分析 344
18.5.3登录模块设计过程 344
18.6客房预订模块设计 348
18.6.1客房预订模块概述 348
18.6.2客房预订模块技术分析 349
18.6.3客房预订模块实现过程 349
18.7追加押金模块设计 353
18.7.1追加押金模块概述 353
18.7.2追加押金模块技术分析 354
18.7.3追加押金模块实现过程 354
18.8调房登记模块设计 359
18.8.1调房登记模块概述 359
18.8.2调房登记模块技术分析 360
18.8.3调房登记模块实现过程 360
18.9客房销售报表模块设计 365
18.9.1客房销售报表模块概述 365
18.9.2客房销售报表模块技术分析 366
18.9.3客房销售报表模块实现过程 366
18.10小结 375
第19章 C#+SQL Server实现企业人事管理系统 376
19.1系统概述 377
19.2系统设计 377
19.2.1系统目标 377
19.2.2系统功能结构 377
19.2.3系统业务流程图 377
19.3系统运行环境 379
19.4数据库与数据表设计 379
19.4.1数据库分析 379
19.4.2主要数据表结构 379
19.4.3数据表逻辑关系 383
19.5创建项目 385
19.6公共类设计 386
19.6.1 MyMeans公共类 386
19.6.2 MyModule公共类 389
19.7登录模块设计 403
19.7.1设计登录窗体 403
19.7.2按Enter键时移动鼠标焦点 404
19.7.3登录功能的实现 404
19.8系统主窗体设计 405
19.8.1设计菜单栏 406
19.8.2设计工具栏 407
19.8.3设计导航菜单 408
19.8.4设计状态栏 408
19.9人事档案管理模块设计 409
19.9.1设计人事档案管理窗体 410
19.9.2添加/修改人事档案信息 412
19.9.3删除人事档案信息 414
19.9.4单条件查询人事档案信息 414
19.9.5逐条查看人事档案信息 417
19.9.6将人事档案信息导出为Word文档 418
19.9.7将人事档案信息导出为Excel表格 423
19.10用户设置模块设计 427
19.10.1设计用户设置窗体 427
19.10.2添加/修改用户信息 428
19.10.3删除用户基本信息 430
19.10.4设置用户操作权限 430
19.11数据库维护模块设计 431
19.11.1设计数据库维护窗体 431
19.11.2备份数据库 432
19.11.3还原数据库 432
19.12小结 434
第20章 Java+SQL Server实现学生成绩管理系统 435
20.1系统概述 436
20.2系统分析 436
20.2.1需求分析 436
20.2.2可行性研究 436
20.3系统设计 436
20.3.1系统目标 436
20.3.2系统功能结构 437
20.3.3系统预览 437
20.3.4构建开发环境 438
20.3.5文件夹组织结构 438
20.4数据库设计 439
20.4.1数据库分析 439
20.4.2数据库概念设计 439
20.4.3数据库逻辑结构设计 439
20.5公共模块设计 441
20.5.1各种实体类的编写 442
20.5.2操作数据库公共类的编写 443
20.6系统用户登录模块设计 449
20.6.1系统用户登录模块概述 449
20.6.2系统用户登录模块技术分析 449
20.6.3系统登录模块实现过程 449
20.7主窗体模块设计 451
20.7.1主窗体模块概述 451
20.7.2主窗体模块技术分析 452
20.7.3主窗体模块实现过程 452
20.8班级信息设置模块设计 455
20.8.1班级信息设置模块概述 455
20.8.2班级信息设置模块技术分析 455
20.8.3班级信息设置模块实现过程 455
20.9学生基本信息管理模块设计 459
20.9.1学生基本信息管理模块概述 459
20.9.2学生基本信息管理模块技术分析 459
20.9.3学生基本信息管理模块实现过程 459
20.10考试成绩信息管理模块设计 464
20.10.1考试成绩信息管理模块概述 464
20.10.2考试成绩管理模块技术分析 464
20.10.3考试成绩信息管理模块实现过程 465
20.11基本信息数据查询模块设计 469
20.11.1基本信息数据查询模块概述 469
20.11.2基本信息数据查询模块技术分析 470
20.11.3基本信息数据查询模块实现过程 470
20.12考试成绩班级明细查询模块设计 473
20.12.1考试成绩班级明细查询模块概述 473
20.12.2考试成绩班级明细查询模块技术分析 473
20.12.3考试成绩班级明细查询模块实现过程 473
20.13小结 476