1.1 什么是数据库 2
1.1.1 关系、数据库系统、服务器和客户 2
第一部分 入门 2
第1章 什么是MySQL 2
1.1.3 数据表、记录、字段、查询、SQL、索引和键 3
1.1.2 关系数据库系统与面向对象数据库系统 3
1.2 MySQL 4
1.3 MySQL的不足 6
1.4 MySQL的版本编号 7
1.4.2 按版本编号排列的MySQL功能表 8
1.4.1 Alpha、Beta、Gamma、Production(Generally Available) 8
1.5.2 开源许可证下的MySQL软件 10
1.5.1 GPL许可证下的权利和义务 10
1.5 MySQL的许可证 10
1.5.3 商用许可证下的MySQL软件 11
1.5.5 PHP项目的客户许可证问题——F(L)OSS特例 12
1.5.4 MySQL客户软件开发库(Connector/ODBC、Connector/J等)的商用许可证 12
1.5.6 MySQL软件的版本名称 13
1.6 MySQL软件的替代品 14
1.5.7 MySQL软件的技术支持合同 14
1.7 小结 15
2.1.1 MySQL应用现状(因特网上的数据库服务器) 16
2.1 是Windows还是UNIX/Linux 16
第2章 测试环境 16
2.2 在Windows系统上安装MySQL和相关软件 17
2.1.2 开发环境 17
2.2.1 安装Apache 2.0 18
2.2.2 安装MySQL 5.0 19
2.2.3 安装PHP 5.0 22
2.2.4 安装Perl 23
2.3.1 安装Apache 2、PHP 5和Perl 25
2.3 在SUSE Linux 9.3系统上安装MySQL和相关软件 25
2.3.2 安装MySQL 5.0 27
2.4.1 安装Apache 2 29
2.4 在Red Hat Enterprise Linux 4系统上安装MySQL和相关软件 29
2.4.3 编译PHP 5 30
2.4.2 安装MySQL 5 30
2.5.1 安装Bitkeeper 33
2.5 编译MySQL软件的开发者版本(Linux) 33
2.4.4 安装Perl 5.8 33
2.5.5 MySQL配置文件和Init-V脚本 34
2.5.4 创建用来管理访问权限的mysql数据库 34
2.5.2 下载MySQL软件的开发者版本 34
2.5.3 编译MySQL 34
2.6.1 配置文件 35
2.6 配置Apache 35
2.5.6 启动MySQL服务器 35
2.6.2 基本设置 36
2.6.3 对不同子目录的访问权限(htaccess) 37
2.7 配置PHP 39
2.8 配置MySQL 41
3.1 概述 43
第3章 初级案例研究:MySQL+PHP 43
3.2.1 启动mysql命令行解释器 44
3.2 数据库的开发 44
3.2.2 创建数据库 45
3.2.3 创建数据表 46
3.2.4 为什么要避简就难 47
3.3 调查问卷 48
3.4.3 对数据进行处理并把它存入数据库 49
3.4.2 建立与数据库的连接 49
3.4 问卷调查结果的处理和显示 49
3.4.1 mysql界面与mysqli界面 49
3.4.4 显示问卷调查的结果 50
3.4.5 程序代码(results.php) 51
3.5 改进意见 52
3.4.6 最终生成的HTML代码 52
4.1 mysql 56
第4章 mysql、mysqladmin和mysqldump 56
第二部分 管理工具和用户操作界面 56
4.1.1 启动mysql 57
4.1.2 mysql的命令行选项 58
4.1.3 交互式使用mysql 59
4.1.4 UNIX/Linux环境中mysql的使用技巧 60
4.1.5 Windows环境下mysql的使用技巧 61
4.1.6 用mysql处理SQL文件 63
4.3 mysqldump 64
4.2 mysqladmin 64
5.1 安装 65
第5章 MySQL Administrator和MySQL Query Browser 65
5.2 与MySQL服务器建立连接 66
5.3 MySQL Administrator 67
5.3.3 Startup Variables模块(配置启动参数) 68
5.3.2 Service Control模块(启动/停止MySQL服务器) 68
5.3.1 Server Information模块(查看服务器信息) 68
5.3.4 User Administration模块(用户管理) 69
5.3.6 Health模块(查看系统负载) 71
5.3.5 Server Connections模块(查看服务器连接信息) 71
5.3.8 Backup模块(制作数据库备份) 72
5.3.7 Server Logs模块(查看服务器日志) 72
5.3.9 Restore模块(用备份恢复数据库) 73
5.4.1 SQL命令的输入和执行 74
5.4 MySQL Query Browser 74
5.3.10 Replication Status模块(查看镜像机制的工作状态) 74
5.3.11 Catalogs模块(对数据库和数据表进行管理) 74
5.4.2 对SELECT结果里的数据进行修改 76
5.4.6 MySQL Help(帮助文档) 77
5.4.5 存储过程 77
5.4.3 SQL命令的历史记录和书签 77
5.4.4 一次执行多条命令(脚本) 77
第6章 phpMyAdmin 78
6.1.2 配置phpMyAdmin 79
6.1.1 安装phpMyAdmin文件 79
6.1 phpMyAdmin的安装与配置 79
6.1.3 config身份验证模式 80
6.1.4 http和cookie身份验证模式 82
6.2 用户管理,保护MySQL 84
6.2.1 保护MySQL 85
6.2.2 创建新用户 86
6.3.1 创建数据库 88
6.3 创建和编辑数据库 88
6.3.2 编辑现有的数据表 89
6.3.4 数据库设计方案的汇总和存档 90
6.3.3 设置外键规则 90
6.4 查看、插入和编辑数据 91
6.5 执行SQL命令 92
6.6.1 数据库备份(SQL文件) 93
6.6 导入和导出 93
6.6.3 导入数据库或数据表(SQL文件) 95
6.6.2 导出数据表(CSV文本文件) 95
6.7 服务器管理 96
6.6.4 插入数据表数据(文本文件) 96
6.8.1 为phpMyAdmin创建数据库 97
6.8 辅助功能 97
6.8.3 关联/引用关系信息的保存 98
6.8.2 SQL书签和历史记录 98
6.8.4 创建PDF格式的数据表关联/引用关系图 100
6.8.5 格式转换(数据列内容的另类显示效果) 101
7.1 安装Connector/ODBC 103
第7章 Microsoft Office和OpenOffice/StarOffice 103
7.2 Microsoft Access 106
7.2.1 数据表的导入和导出 107
7.2.2 数据库转换器:Access→MySQL(exportsql.txt) 109
7.3 Microsoft Excel 110
7.4.2 安装 112
7.4.1 Connector/J 112
7.4 安装Connector/J 112
7.5.1 与MySQL数据库建立连接 113
7.5 OpenOffice/StarOffice Base 113
7.5.2 Table模块 114
7.5.3 Queries模块 115
7.5.4 Forms模块、Rerports模块和其他功能 116
7.6 OpenOffice/StarOffice的Data Source视图 117
7.6.2 数据的导入 118
7.6.1 建立数据源 118
8.1 参考读物 120
第8章 数据库设计概论 120
第三部分 基础知识 120
8.2.1 MyISAM数据表 121
8.2 数据表类型 121
8.2.2 InnoDB数据表 122
8.2.3 HEAP数据表 123
8.2.5 其他的数据表类型 124
8.2.4 临时数据表 124
8.2.6 数据表文件 125
8.3.1 整数(xxxINT) 126
8.3 MySQL数据类型 126
8.3.2 定点数(DECIMAL) 127
8.3.3 日期与时间(DATE、TIME、DATETIME、TIMESTAMP) 128
8.3.4 字符串(CHAR、VARCHAR、xxxTEXT) 130
8.3.5 二进制数据(xxxBLOB和BIT) 133
8.4.1 数据库设计要求 135
8.4 数据库设计技巧 135
8.3.6 选项和属性 135
8.4.3 数据库具体设计工作中的技巧 136
8.4.2 起名字的技巧 136
8.5.1 起点 137
8.5 规范化 137
8.5.2 第一范式 138
8.5.3 第二范式 139
8.5.4 第三范式 140
8.5.5 规范化理论 141
8.6 层次关系的处理 143
8.6.1 层次关系的处理难点 144
8.6.2 从数据表创建层次关系树 145
8.6.3 搜索categories数据表里的下级图书门类 147
8.6.4 搜索categories数据表里的上级图书门类 148
8.7.1 1:1关系 149
8.7 关系 149
8.7.2 1:n关系 150
8.8.1 主键 151
8.8 主键和外键 151
8.7.3 n:m关系 151
8.8.2 外键 152
8.8.3 引用一致性(外键约束条件) 153
8.9 索引 156
8.9.1 普通索引、唯一索引和主索引 157
8.9.2 全文索引 158
8.9.3 查询和索引的优化 159
8.10 视图 161
8.11 示例数据库mylibrary(图书管理) 163
8.11.2 数据表的属性 164
8.11.1 数据库的属性 164
8.12.1 讨论组数据库:myforum 165
8.12 示例数据库myforum(网上论坛) 165
8.12.2 帖子之间的层次关系 166
8.13.1 数据表testall 167
8.13 示例数据库exceptions(用于特殊情况的测试) 167
8.13.7 数据表test_sortl 168
8.13.6 数据表test_null 168
8.13.2 数据表text_text 168
8.13.3 数据表test_blob 168
8.13.4 数据表test_date 168
8.13.5 数据表test_enum 168
8.13.9 数据表importtablel、importtable2、exporttable 169
8.13.8 数据表test_sort2 169
9.1 简介 170
第9章 SQL语言入门 170
9.2 简单查询(SELECT) 171
9.2.3 限制查询结果中的数据列个数 172
9.2.2 确定数据表里有多少条内容不重复的数据记录(DISTINCT) 172
9.2.1 确定数据表里有多少条数据记录(数据行) 172
9.2.5 在使用LIMIT关键字确定数据表里的数据记录数(SQL_CALC_FOUND_ROWS、FOUND_ROWS()) 173
9.2.4 限制查询结果中的数据记录个数(LIMIT) 173
9.3.1 选择一种排序方式 174
9.3 对查询结果进行排序(ORDER BY) 174
9.3.2 试用不同的排序方式 175
9.4 筛选数据记录(WHERE,HAVING) 176
9.5 涉及多个数据表的关联查询(LEFT/RIGHT JOIN) 177
9.5.1 两个数据表的关联 178
9.5.2 3个或更多个数据表的关联 179
9.7 分组查询,统计函数(GROUP BY) 181
9.6 合并查询结果(UNION) 181
9.7.1 统计函数 182
9.7.2 统计函数GROUP_CONCAT() 183
9.7.4 GROUP BY...WITH ROLLUP 184
9.7.3 对多个数据列进行GROUP BY查询 184
9.8.1 备份数据 185
9.8 修改数据(INSERT、UPDATE和DELETE) 185
9.8.2 插入数据记录(INSERT) 186
9.8.4 删除数据记录(DELETE) 188
9.8.3 修改数据记录(UPDATE) 188
9.9.1 创建数据库(CREATE DATABASE) 190
9.9 创建数据表、数据库和索引 190
9.9.2 创建数据表(CREATE TABLE) 191
9.9.4 变更数据表的结构(ALTER TABLE) 192
9.9.3 创建索引(CREATE INDEX) 192
9.9.6 自动修改数据表设计(默许的数据列修改) 193
9.9.5 删除数据库和数据表(DROP) 193
9.9.7 SHOW命令 194
家族 195
9.9.8 INFORMATION_SCHEMA数据表 195
10.1.1 基本函数 197
10.1 字符串 197
第10章 SQL解决方案 197
10.1.2 改变字符集 198
10.1.3 设置客户端字符集 199
10.1.4 模板匹配 200
10.2.1 日期和时间的语法 201
10.2 日期和时间 201
10.2.2 与日期和时间有关的计算 202
10.2.3 UNIX时间戳 204
10.2.4 地理时区 206
10.3.1 ENUM 208
10.3 ENUM和SET数据类型 208
10.4 变量与条件表达式(IF、CASE) 209
10.3.2 SET 209
10.4.1 变量 210
10.4.3 CASE分支 211
10.4.2 IF查询 211
10.5.1 利用复制操作创建新数据表 212
10.5 在数据表间复制数据 212
10.6 统计报表 213
10.5.2 把数据复制到现有数据表 213
10.6.1 涉及titles、languages和cate-gories数据表的统计报表 214
10.6.2 月度查询统计报表 215
10.7.1 语法变体 216
10.7 子查询 216
10.7.2 示例 218
10.8.2 找出无效的出版公司引用:1:n关系中的无效记录 219
10.8.1 找出没有作者的图书 219
10.8 保证数据的一致性 219
10.8.3 找出作者与图书之间的无效链接(n:m关系) 220
10.10 数据表设计方案的改进 221
10.9 找出冗余的数据记录 221
10.11.1 数据查询(SELECT) 223
10.11 对前n条或后n条记录进行处理 223
10.11.3 把全部讨论线程删除到只剩下最新的500个线程 224
10.11.2 修改现有记录(UPDATE和DELETE) 224
10.12.2 自备随机数的数据表 225
10.12.1 通用方法:RAND()函数 225
10.12 以随机方式选择数据记录 225
10.13 全文索引 226
10.12.3 利用id数据列选择随机记录 226
10.13.1 基础知识 227
10.13.2 图书检索 229
10.13.3 论坛文章检索 231
10.14.1 语法 232
10.14 锁定 232
10.15.1 为什么要使用事务 233
10.15 事务 233
10.14.2 GET_LOCK和RELEASE_LOCK函数 233
10.15.2 事务的控制 234
10.15.3 事务机制的工作流程 235
10.15.4 事务与锁定 237
10.15.5 事务的隔离模式 238
10.15.6 出错处理 240
11.1.1 客户与MySQL服务器之间的连接 241
11.1 简介 241
第11章 访问权限与信息安全 241
11.1.2 访问管理 242
11.2.1 保护MySQL安装 246
11.2 急救 246
11.2.2 创建新的数据库和用户 247
11.2.3 授予创建个人数据库的权限 248
11.2.4 忘记root密码情况的处理 249
11.3.2 权限 250
11.3.1 两级访问控制 250
11.3 访问控制机制的内部工作原理 250
11.3.3 mysql数据库 253
11.3.4 user数据表 254
11.3.5 user.Host数据列 257
11.3.6 db数据表和host数据表 260
11.3.7 tables_priv和columns_priv数据表 261
11.4.1 使用GRANT和REVOKE命令改变访问权限 263
11.4 访问权限的设置工具 263
11.3.8 procs_priv数据表 263
11.5 MySQL 4.1版本开始的安全密码验证 265
11.4.3 使用mysqladmin程序改变密码 265
11.4.2 使用SHOW GRANT命令查看访问权限 265
11.5.3 同时使用的和新的密码的操作 266
11.5.2 old-passwords模式 266
11.5.1 升级客户端函数库 266
11.6.1 连接困难的可能原因 267
11.6 建立连接的问题 267
11.7.1 系统级安全措施 270
11.7 系统安全性 270
11.6.2 错误检查的更多方法 270
11.7.4 不要使用root或Administrator权限来运行MySQL服务器 271
11.7.3 与MySQL服务器有关的安全风险 271
11.7.2 重要数据存储的安全保护 271
11.7.5 网络安全与防火墙 272
12.1.1 地理坐标的表示方法 273
12.1 GIS数据格式 273
第12章 GIS函数 273
12.1.2 Well-Known Text和Well-Known Binary(OpenGIS) 274
12.2.1 数据类型 275
12.2 MySQL的GIS实现 275
12.2.2 简单的几何函数 277
12.2.3 空间分析函数 279
12.3 SQL示例(冰川数据库) 281
12.2.4 为几何数据创建索引 281
12.3.3 查询数据 282
12.3.2 插入数据 282
12.3.1 创建数据表 282
12.4 SQL示例(opengeodb数据库) 284
12.4.2 导入 285
12.4.1 数据来源和导入 285
12.4.3 对圆形地理区域进行搜索 286
13.1.1 存储过程 288
13.1 为什么要使用存储过程和触发器 288
第13章 存储过程和触发器 288
13.2 初识SP 289
13.1.2 触发器 289
13.2.1 MySQL命令解释器:mysql程序 290
13.2.2 MySQL Query Browser 291
13.3 SP的实现 292
13.4.1 创建、编辑和删除SP 293
13.4 SP的管理 293
13.4.3 SP的备份和恢复 295
13.4.2 信息安全问题 295
13.5.1 基本语法规则 296
13.5 SP的语法和语言元素 296
13.5.2 调用SP(CALL) 297
13.5.3 参数和返回值 298
13.5.4 命令的封装(BEGIN-END) 299
13.5.6 循环 301
13.5.5 分支 301
13.5.7 出错处理(出错处理句柄) 302
13.5.8 光标 304
13.6.1 增加新的图书门类 306
13.6 SP应用示例 306
13.6.2 增加一本新图书 307
13.6.3 确定父门类 308
13.6.4 按层次结构生成图书门类清单 309
13.7.1 创建触发器 311
13.7 触发器 311
13.7.4 功能局限性 312
13.7.3 实现细节和管理工具 312
13.7.2 删除触发器 312
13 7.5 触发器应用示例 313
14.1.1 MySQL数据库系统的管理工具 314
14.1 基础知识 314
第14章 管理与服务器配置 314
14.1.2 设置root密码 315
14.1.4 重新启动MySQL服务器 316
14.1.3 MySQL服务器配置文件 316
14.1.7 通信设置 317
14.1.6 目录 317
14.1.5 MySQL服务器的基本配置 317
14.1.10 地理时区 318
14.1.9 新数据表的默认字符集和排序方式 318
14.1.8 默认的数据表格式 318
14.1.12 SQL模式 319
14.1.11 出错消息的显示语言 319
14.2.1 备份数据库(mysqldump) 321
14.2 备份 321
14.2.2 用备份恢复数据库(mysql) 324
14.2.3 快速备份(mysqlhotcopy) 325
14.3 数据库的迁移 327
14.4.1 文本文件里的特殊字符 329
14.4 导出和导入文本文件 329
14.4.3 用LOAD DATA INFILE命令导入 330
14.4.2 字符串、数值、日期/时间、BLOB和NULL值 330
14.4.5 用SELECT...INTO OUTFILE命令导出 333
14.4.4 用mysqlimport工具导入 333
14.4.7 用mysql程序的批处理模式导出 335
14.4.6 用mysqldump程序导出 335
14.5.1 为什么要使用日志 337
14.5 日志 337
14.5.3 变更日志(update log) 338
14.5.2 缺点与不足 338
14.5.4 出错日志、登录日志和慢查询日志 340
14.6.1 简介 342
14.6 镜像机制 342
14.5.5 日志文件的管理 342
14.6.2 建立镜像机制的主控系统 344
14.6.3 建立镜像机制的从属系统 346
14.6.5 内部镜像机制 348
14.6.4 用LOAD DATA命令建立镜像机制 348
14.6.6 客户端编程 350
14.7.1 myisamchk程序 351
14.7 管理MyISAM数据表 351
14.7.3 速度优化与内存使用情况 352
14.7.2 myisamchk程序的使用方法 352
14.7.5 修复受损的MyISAM数据表 353
14.7.4 对MyISAM数据表进行压缩和优化 353
14.8.1 表空间的管理 354
14.8 InnoDB数据表的管理 354
14.7.6 压缩MyISAM数据表(myisampack程序) 354
14.8.2 日志文件 359
14.9 MySQL服务器的优化 362
14.9.1 优化内存管理 363
14.9.2 查询缓存区 364
14.10.3 实现自定义的PHP脚本 366
14.10.2 phpMyAdmin工具 366
14.10 ISP数据库管理 366
14.10.1 ssh工具 366
14.10.4 自定义:Perl脚本 367
15.1 mysql功能模块 370
第15章 PHP 370
第四部分 程序设计 370
15.1.1 连接MySQL服务器 371
15.1.2 执行SQL命令 372
15.1.3 处理SELECT查询结果 373
15.1.5 出错处理与查找 376
15.1.4 事务 376
15.2.1 选择编程接口:mysql还是mysqli 377
15.2 mysqli的类、方法和属性 377
15.2.4 连接MySQL服务器 378
15.2.3 构成mysqli接口的类 378
15.2.2 有效性测试 378
15.2.6 处理SELECT查询结果(mysqli_result()方法) 380
15.2.5 执行SQL命令 380
15.2.8 带参数的SQL命令(预处理语句) 382
15.2.7 一次执行多条SQL命令 382
15.3.1 使用单独的密码文件提高安全性 385
15.3 把数据库功能打包为一个类 385
15.2.9 事务 385
15.3.2 使用MyDb类实现安全和方便 386
15.4 把SELECT查询结果显示为一个表格 389
15.5.1 字符串和BLOB 390
15.5 字符串、日期、时间、BLOB和NULL 390
15.5.2 日期和时间 391
15.5.3 NULL值 392
15.7 处理来自HTML表单的输入数据 393
15.6 向关联数据表插入新数据记录 393
15.7.1 代码结构 394
15.7.2 创建HTML表单 396
15.7.3 对表单数据进行合法性检查 400
15.7.4 把表单数据存入数据库 401
15.7.5 删除一本图书 403
15.8 分页显示查询结果 404
15.7.6 值得改进的地方 404
15.8.1 代码结构 405
15.8.2 对图书作者进行搜索 407
15.8.4 显示搜索结果 408
15.8.3 对图书进行搜索 408
15.9 处理层次化数据 410
15.8.5 指向其他结果页面的链接 410
15.9.1 代码结构 411
15.9.2 显示图书门类树 413
15.9.3 插入一个或多个新图书门类 415
15.9.4 删除一个图书门类及其下级门类 416
15.9.5 搜索上级图书门类 417
15.9.6 搜索下级图书门类 418
15.10.1 提高代码执行效率的基本原则 419
15.10 速度优化 419
15.10.2 统计信息和性能指标 420
15.10.3 示例:高效地生成图书门类下拉列表 421
15.1.1 Unicode 424
15.12 二进制数据(BLOB)和图像 428
15.12.1 在数据库里存储图像的基础知识与编程技巧 429
15.12.2 在数据库里存储图像的程序代码 431
15.13 存储过程 434
15.14.2 使用SP Administrator 435
15.14.1 安装SP Administrator 435
15.14 SP Administrator 435
15.14.3 SP Administrator代码 436
16.1.1 DBI和DBD::mysql模块 441
16.1 编程技巧 441
第16章 Perl 441
16.1.2 与数据库建立连接 442
16.1.3 执行SQL命令 443
16.1.4 处理SELECT查询结果 445
16.1.5 字符串、BLOB、日期值、SET、ENUM和NULL 449
16.1.6 DBD::mysql模块特有的方法和属性 452
16.1.7 Unicode 453
16.1.9 出错处理 454
16.1.8 事务 454
16.2 示例:删除无效的数据记录(mylibrary) 456
16.3.1 图书检索(mylibrary-find.pl脚本) 457
16.3 CGI示例:图书管理(mylibrary) 457
16.3.2 新图书的简单输入(mylibrary-simpleinput.pl脚本) 460
16.4.1 图书检索(mylibrary-find-utf8.pl脚本) 462
16.4 CGI Unicode示例 462
16.4.2 新图书的输入(mylibrary-simpleinput-utf8.pl脚本) 463
17.1.1 Java的安装 464
17.1 基础知识 464
第17章 Java(JDBC和Connector/J) 464
17.1.2 Connector/J的安装 466
17.2 程序设计技巧 468
17.2.1 第一个示例 469
17.2.2 与MySQL服务器建立连接 470
17.2.3 连接MySQL服务器时可能遇到的问题 472
17.2.4 执行SQL命令 473
17.2.5 处理SELECT查询结果 474
17.2.6 预处理语句 478
17.2.8 批处理命令 479
17.2.7 事务 479
17.2.9 二进制数据(BLOB)的处理 480
18.2.1 对系统的基本要求 483
18.2 Hello,World 483
第18章 C语言 483
18.1 MySQL C API(libmysqlclient) 483
18.2.2 入门级示例 484
18.2.3 编译与链接 485
18.2.5 以静态方式绑定MySQL API函数 486
18.2.4 Makefile 486
18.3 与MySQL服务器建立连接 487
18.3.2 处理命令行选项 488
18.3.1 处理MySQL配置文件my.cnf 488
18.4.1 简单的SQL命令 489
18.4 执行SQL命令 489
18.4.2 一次执行多条SQL命令 490
18.4.3 预处理语句 493
18.4.4 字符集设置(Unicode) 497
18.5 处理二进制数据和特殊字符 498
18.6 出错处理 500
19.1 基础知识和术语 501
第19章 Visual Basic 6/VBA 501
19.2 Connector/ODBC选项 503
19.3 ADO程序设计与 Visual Basic 6/VBA 504
19.4.2 与MySQL服务器建立连接(不使用DSN) 506
19.4.1 与MySQL服务器建立连接:使用DSN 506
19.4 与MySQL服务器建立连接 506
19.4.3 ADO程序设计技巧 509
19.4.4 示例:给titles数据表增加一个authors数据列 514
19.4.5 示例:添加一本新图书 517
19.4.6 示例:把图像文件存入和读出BLOB数据列 519
19.5 转换器:从Microsoft SQL Server到MySQL 521
19.5.1 mssql2mysql脚本的特点 521
19.5.2 对系统的要求 521
19.5.3 缺陷与不足 521
19.5.4 使用方法 522
19.5.5 设置有关参数 522
19.6 VBMySQLDirect 523
19.6.1 安装 524
19.6.2 应用 524
19.6.3 示例 524
第20章 Visual Basic.NET和C# 526
20.1 ADO.NET与MySQL之间的通信 526
20.1.1 通过Connector/Net连接数据库 527
20.1.2 用ODBC数据泵连接数据库 530
20.2 编程技巧 532
20.2.1 执行SQL命令(MySql-Command对象) 532
20.2.2 带参数的SQL命令(MySql-Parameter对象) 533
20.2.3 处理离散的SELECT查询结果(ExecuteScalar()方法) 535
20.2.4 读取SELECT查询结果(MySqlDataReader对象) 535
20 2.5 DataSet、DataTable和MySqlDataAdapter对象 537
20.2.7 出错处理 540
20.2.8 Windows.Form和ASP.NET控件 540
20.2.6 辅助函数 540
20.2.9 事务 542
20.3 示例:把新图书记录存入mylibrary数据库 542
20.4 示例:把图像文件存入和读出一个BLOB数据列 544
21.1 语法 548
第21章 SQL语法指南 548
21.1.1 对象命名规则 548
第五部分 参考资料 548
21.1.2 区分字母大小写 549
21.1.3 字符串 549
21.1.5 数值 550
21.1.6 数值和字符串的自动转换 550
21.1.4 字符集和排序方式 550
21.1.9 二进制数值 551
21.1.8 二进制数据 551
21.1.10 注释语句 551
21.1.7 日期和时间 551
21.1.11 SQL命令末尾的分号 552
21.2 操作符 552
21.2.2 比较操作符 553
21.2.3 使用LIKE操作符进行模式匹配 553
21.2.1 算术操作符与位操作符 553
21.2.4 使用REGEXP操作符进行模式匹配 554
21.2.5 二进制字符串比较 554
21.3.1 变量赋值 555
21.3 变量和常数 555
21.3.2 使用和查看变量 555
21.2.6 逻辑操作符 555
21.3.4 SET PASSWORD命令 556
21.3.5 结构化变量 556
21.3.3 全局级系统变量与会话级系统变量 556
21.3.6 常数 557
21.4 MySQL数据类型 557
21.5 SQL命令汇总表(按功能分类) 559
21.6 SQL命令指南(按字母表顺序排列) 561
21.7 SQL函数指南 596
21.7.1 算术函数 596
21.7.3 类型转换(投射) 597
21.7.4 字符串处理 597
21.7.2 比较函数、测试函数、分支函数 597
21.7.5 日期/时间函数 600
21.7.6 GROUP BY函数 604
21.7.7 其他函数 605
21.8 GIS数据类型与GIS函数 606
21.9 与存储过程和触发器有关的语言元素 608
22.2 通用选项和配置文件 610
22.1 概述 610
22.2.1 通用选项 610
第22章 MySQL工具和选项 610
22.2.2 设置配置文件的选项 612
22.2.3 内存量的表示方法 613
22.2.4 环境变量(系统变量) 613
22.2.5 选项设置规则 614
22.3 mysqld程序(服务器) 614
22.3.1 基本选项 615
22.3.2 与日志和镜像功能有关的选项 617
22.3.3 InnoDB配置选项 618
22.3.4 其他选项 620
22.4 mysqld_safe脚本(启动MySQL服务器) 620
22.5 mysql_install_db脚本(安装mysql数据库) 621
22.7 mysql_fix_extensions脚本(重命名MyISAM文件) 622
22.8 mysql程序(SQL命令解释器) 622
22.6 mysql_fix_privileges脚本(更新mysql数据库) 622
22.9 mysqladmin程序(日常管理) 624
22.10 mysqldump程序(数据的备份/导出) 625
22.11 mysqlimport程序(文本导入、批量导入) 628
22.12 mysqlshow程序(查看信息) 628
22.13 myisamchk程序(修复MyISAM文件) 629
22.14 myisampack程序(压缩MyISAM文件) 630
第23章 MySQL API应用指南 632
23.1 PHP API(mysql接口) 632
23.2 PHP API(mysqli接口) 635
23.2.1 mysqli类 636
23.2.2 mysqli_result类 637
23.3 Perl DBI 638
23.3.1 常用的变量名 638
23.2.3 mysqli_stmt类 638
23.3.2 与MySQL服务器建立连接 639
23.3.3 执行SQL命令、处理SELECT查询结果 640
23.3.5 辅助函数 642
23.3.6 DBD::mysql驱动程序中的MySQL专用扩展模块 642
23.3.4 出错处理 642
23.4.1 与MySQL服务器建立连接 644
23.4.2 执行SQL命令 644
23.4 JDBC(Connector/J) 644
23.4.3 处理SELECT 查询结果(ResultSet类) 646
23.5 ADO.NET(Connector/Net) 647
23.5.1 与MySQL服务器建立连接 647
23.4.4 事务 647
23.5.2 执行SQL命令与处理SELECT查询结果 648
23.5.3 利用DataSet/DataTable类修改数据 649
23.6 C API 650
23.6.1 数据结构 650
23.5.4 事务 650
23.6.2 连接与管理 652
23.6.3 执行SQL命令及处理SELECT查询结果 654
23.6.4 预处理语句 656
第六部分 附录 658
附录A 术语解释 658
附录B 本书的配套示例文件 663
附录C 参考书目 664