第1章 Linux基础 1
1.1 Linux概述 2
1.1.1 什么是Linux 2
1.1.2 Linux的常见版本 3
1.2 Linux的特性 6
1.3 Linux的安装 8
1.3.1 安装准备 8
1.3.2 VMware的安装 10
1.3.3 Linux加载与启动 14
1.3.4 SSHClient的安装 15
1.3.5 远程连接的配置 15
1.4 Linux使用 17
1.4.1 Linux的基本组成 17
1.4.2 Linux文件系统结构 19
1.4.3 Linux的常用命令 21
1.5 流行Linux站点 24
1.6 本章小结 25
1.7 习题 25
第2章 Linux下的数据库 27
2.1 数据库概述 28
2.1.1 什么是数据库 28
2.1.2 数据库的特点 29
2.1.3 数据库的历史 29
2.1.4 数据库基本原理 31
2.2 常见的数据库 34
2.2.1 Linux下的数据库 34
2.2.2 Oracle数据库 34
2.2.3 PostgreSQL数据库 35
2.2.4 DB2数据库 36
2.2.5 MySQL数据库 37
2.3 MySQL数据库 37
2.3.1 MySQL分发包 38
2.3.2 MySQL的安装 39
2.3.3 MySQL的基本配置 41
2.4 MySQL的基本使用 44
2.4.1 MySQL的基本命令 44
2.4.2 一个员工信息数据库示例 47
2.5 本章小结 49
2.6 习题 50
第3章 SQL语言基础 51
3.1 SQL概述 52
3.2 数据库操作 53
3.2.1 创建数据库 53
3.2.2 删除数据库 54
3.3 表的操作 54
3.3.1 创建表 54
3.3.2 修改表 58
3.3.3 删除表 58
3.4 记录的操作 58
3.4.1 插入记录 58
3.4.2 更新记录 59
3.4.3 删除记录 59
3.5 查询 59
3.6 学生选课系统数据库设计示例 61
3.6.1 系统分析 61
3.6.2 逻辑设计 63
3.6.3 实施 64
3.7 本章小结 68
3.8 习题 68
第4章 MySQL高级语法 69
4.1 视图操作 70
4.1.1 什么是视图 70
4.1.2 视图的语法 71
4.1.3 视图的使用 72
4.2 触发器操作 74
4.2.1 什么是触发器 74
4.2.2 触发器的语法 75
4.2.3 触发器的使用 76
4.3 存储过程操作 78
4.3.1 什么是存储过程 78
4.3.2 存储过程的语法 79
4.3.3 存储过程的使用 80
4.4 索引 82
4.4.1 什么是索引 82
4.4.2 索引的语法 84
4.4.3 索引的使用 85
4.5 事务与锁 87
4.5.1 什么是事务 87
4.5.2 事务的语法 89
4.5.3 事务的使用 92
4.6 数据类型 94
4.6.1 数值数据类型 94
4.6.2 字符串数据类型 95
4.6.3 日期和时间类型 98
4.7 本章小结 99
4.8 习题 99
第5章 MySQL查询技术 101
5.1 MySQL运算符 102
5.1.1 比较运算符 102
5.1.2 逻辑运算符 105
5.1.3 算术运算符 107
5.2 MySQL函数 108
5.2.1 字符串操作函数 108
5.2.2 控制函数 114
5.2.3 数学函数 116
5.2.4 时间与日期函数 117
5.2.5 加密函数 119
5.3 查询技术 120
5.3.1 查询案例 121
5.3.2 统计查询 123
5.3.3 排序与分类 129
5.3.4 日期查询 130
5.4 复杂查询 132
5.4.1 案例扩展 132
5.4.2 多表查询 133
5.4.3 嵌套查询 136
5.5 本章小结 139
5.6 习题 139
第6章 MySQL的管理 141
6.1 MySQL权限管理 142
6.1.1 权限原理 142
6.1.2 用户管理 148
6.1.3 grant语句 150
6.1.4 show grants语句 157
6.1.5 revoke语句 158
6.2 数据导入与导出 160
6.2.1 数据导入 160
6.2.2 数据导出 164
6.3 复制技术 166
6.3.1 表与数据复制 166
6.3.2 表结构复制 167
6.3.3 记录复制 168
6.4 备份与恢复 170
6.4.1 利用mysqldump 170
6.4.2 利用SQL语句 171
6.4.3 利用backup语句 172
6.5 本章小结 173
6.6 习题 173
第7章 MySQL常见问题解答 175
7.1 MySQL安装常见问题 176
7.1.1 操作系统的注意事项 176
7.1.2 MySQL版本的选择 177
7.1.3 MySQL安装过程中的常见问题 178
7.2 MySQL运行维护常见问题 182
7.3 MySQL配置常见问题 189
7.3.1 MySQL的配置方式 189
7.3.2 MySQL的具体配置 192
7.4 MySQL安全常见问题 192
7.4.1 设置密码的问题 192
7.4.2 忘记MySQL密码的问题 193
7.4.3 用户权限设定 194
7.4.4 创建MySQL用户 194
7.5 优化常见问题 195
7.5.1 MyISAM存储引擎的优化 196
7.5.2 InnoDB存储引擎的优化 198
7.6 本章小结 199
7.7 习题 200
第8章 MySQL高级特性 201
8.1 MySQL的存储引擎 202
8.1.1 存储引擎简介 202
8.1.2 MyISAM引擎原理 205
8.1.3 InnoDB引擎原理 209
8.1.4 MyISAM与InnoDB存储引擎的关系 216
8.2 MySQL的锁机制 217
8.2.1 锁简介 217
8.2.2 锁分类 218
8.2.3 如何利用锁进行性能优化 223
8.3 本章小结 223
8.4 习题 224
第9章 可视化工具的使用 225
9.1 常用的可视化工具 226
9.2 phpMyAdmin 227
9.2.1 phpMyAdmin介绍 227
9.2.2 phpMyAdmin的安装 228
9.2.3 phpMyAdmin的配置 228
9.2.4 phpMyAdmin运行测试 229
9.3 phpMyAdmin的基本使用 231
9.3.1 phpMyAdmin功能简介 231
9.3.2 phpMyAdmin数据库与数据表操作 233
9.3.3 数据库用户权限的设置 235
9.4 一个微博客的数据库设计示例 237
9.4.1 微博客的概念 237
9.4.2 微博客数据库设计 238
9.4.3 实现并测试 241
9.5 本章小结 243
9.6 习题 244
第10章 MySQL连接技术 245
10.1 MySQL数据库连接概述 246
10.2 C语言API 247
10.2.1 C API数据类型 247
10.2.2 C API预处理 249
10.2.3 MySQL数据库连接函数 251
10.2.4 数据操作函数 254
10.2.5 关闭连接 256
10.2.6 应用示例 258
10.3 PHP语言API 260
10.3.1 PHP数据库连接概述 260
10.3.2 PHP连接MySQL数据库 264
10.3.3 数据操作 265
10.3.4 关闭连接 268
10.3.5 应用示例 268
10.4 Python语言API 270
10.4.1 Python数据库连接概述 270
10.4.2 MySQL数据库的连接 272
10.4.3 数据操作 273
10.4.4 关闭连接 273
10.4.5 应用示例 273
10.5 Java语言API 274
10.5.1 Java和JDBC概述 274
10.5.2 使用JDBC连接MySQL数据库 277
10.5.3 数据操作 278
10.5.4 关闭连接 278
10.5.5 应用示例 278
10.6 本章小结 280
10.7 习题 280
第11章 Linux应用程序开发基础 281
11.1 Linux程序开发概述 282
11.2 Qt开发基础 284
11.2.1 Qt简介 284
11.2.2 Qt基础 286
11.2.3 常用的Qt类与控件 287
11.2.4 使用Qt Creator开发Qt程序 293
11.3 网络应用开发基础 298
11.3.1 网络编程基础 298
11.3.2 TCP/IP协议 299
11.3.3 套接字 300
11.4 Linux下的Web开发 306
11.4.1 Web开发简介 306
11.4.2 PHP开发基础 307
11.4.3 JSP开发基础 312
11.5 本章小结 317
11.6 习题 317
第12章 分布式数据包抓取系统 319
12.1 入侵检测系统 320
12.1.1 什么是入侵检测系统 320
12.1.2 入侵检测系统的组成 321
12.1.3 入侵检测系统的产品 323
12.2 需求描述 323
12.2.1 基本功能 323
12.2.2 技术难点 324
12.3 Libpcap库的使用 324
12.3.1 Libpcap简介 324
12.3.2 Libpcap的安装与使用 326
12.3.3 工作原理介绍 328
12.4 系统的架构 333
12.4.1 模块划分 333
12.4.2 信息的格式 334
12.4.3 表的设计 335
12.4.4 主控制模块的设计 336
12.4.5 采集模块的设计 337
12.4.6 存储模块的设计 340
12.5 系统的实现 341
12.5.1 基本数据结构 341
12.5.2 公共数据 344
12.5.3 公共函数 345
12.5.4 主控制模块的实现 346
12.5.5 采集模块的实现 347
12.5.6 存储模块的实现 353
12.5.7 数据库自动切换的实现 355
12.5.8 其他模块的实现 357
12.6 系统部署与测试 361
12.6.1 编译与执行 361
12.6.2 采集与存储工作的开启 362
12.6.3 采集与存储工作的关闭 363
12.6.4 帮助与其他功能的测试 364
12.7 本章小结 366
12.8 习题 366
第13章 网址信息收集器 367
13.1 URL与搜索引擎 368
13.1.1 什么是URL 368
13.1.2 搜索引擎 370
13.1.3 网址信息收集器的工作原理 371
13.2 主要技术介绍 372
13.2.1 总述 372
13.2.2 DNS实现 373
13.2.3 HTTP请求与数据下载 374
13.2.4 一个完整的示例 377
13.3 系统架构 380
13.3.1 模块划分 380
13.3.2 表的设计 381
13.3.3 主控制模块的设计 381
13.3.4 采集模块的设计 382
13.3.5 网页分析模块的设计 384
13.3.6 存储模块的设计 384
13.4 系统实现 385
13.4.1 概述 385
13.4.2 主控模块 385
13.4.3 公共数据区 386
13.4.4 网址信息采集模块 388
13.4.5 网址分析与存储模块 392
13.4.6 其他模块介绍 394
13.5 系统编译与运行 398
13.5.1 编译 398
13.5.2 执行 398
13.6 本章小结 400
13.7 习题 400
第14章 聊天工具的开发 401
14.1 需求分析 402
14.1.1 聊天工具介绍 402
14.1.2 聊天工具的功能 404
14.1.3 需求定位 404
14.2 总体设计 405
14.2.1 架构设计 405
14.2.2 服务器端设计 409
14.2.3 客户端设计 412
14.2.4 通信协议设计 413
14.2.5 数据库表的设计 416
14.3 服务器端实现 419
14.3.1 公共数据的设计 419
14.3.2 主调度模块的实现 419
14.3.3 数据接收模块的实现 422
14.3.4 业务服务模块的实现 423
14.3.5 数据写入模块的实现 429
14.3.6 即时服务启动 430
14.3.7 即时服务停止 431
14.4 客户端实现 431
14.4.1 客户端界面设计 431
14.4.2 数据结构的设计 433
14.4.3 登录模块的设计 434
14.4.4 注册模块的设计 434
14.4.5 聊天模块的设计 435
14.4.6 离线模块的设计 436
14.4.7 数据接收模块的设计 437
14.5 编译与运行 441
14.5.1 服务器端编译与执行 441
14.5.2 客户端编译与执行 442
14.5.3 测试示意图 442
14.6 本章小结 445
14.7 习题 445
第15章 嵌入式数据库 447
15.1 嵌入式数据库简介 448
15.1.1 什么是嵌入式数据库 448
15.1.2 嵌入式数据库分类 450
15.1.3 嵌入式数据库的应用领域 451
15.1.4 嵌入式数据库的未来 452
15.2 常见的嵌入式数据库 453
15.2.1 SQLite简介 453
15.2.2 Berkeley DB简介 455
15.2.3 Empress简介 456
15.3 Berkeley DB的配置 458
15.3.1 Berkeley DB的下载 458
15.3.2 Beikeley DB的安装 458
15.3.3 Berkeley DB测试 459
15.4 Berkeley DB的原理 461
15.4.1 Berkeley DB的设计思想 461
15.4.2 Berkeley DB的核心数据结构 462
15.4.3 Berkeley DB基本算法 464
15.5 Berkeley DB的主要函数 465
15.5.1 数据库的打开 465
15.5.2 添加数据 467
15.5.3 查询数据 468
15.5.4 删除数据 469
15.5.5 数据库的关闭、删除与重命名 470
15.5.6 错误处理 471
15.6 本章小结 472
15.7 习题 473
第16章 SQLite 475
16.1 SQLite的安装与配置 476
16.1.1 SQLite下载 476
16.1.2 SQLite安装 476
16.1.3 SQLite的基本使用 478
16.1.4 SQLite的一个小示例 479
16.2 SQLite的原理 482
16.2.1 SQLite的基本架构 482
16.2.2 SQLite的数据类型 485
16.2.3 SQLite的数据导入与导出 486
16.2.4 SQL高级用法 490
16.2.5 SQLite的一些内置函数 492
16.3 SQLite的编程接口 494
16.3.1 C语言接口库 495
16.3.2 数据库打开与关闭函数 495
16.3.3 SQL执行函数 497
16.3.4 数据查询函数 498
16.3.5 错误处理函数 500
16.4 使用示例 501
16.5 本章小结 503
16.6 习题 503
参考文献 504
附录:各章习题答案 505