CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/ 该资料是《MySQL 5权威指南(第3版)》的随书源代码 对应的书籍资料见: MySQL 5权威指南(第3版) 基本信息 原书名: The Definitive Guide to MySQL 5, Third Edition 原出版社: Apress 作者: (美)Michael Kofler 译者: 杨晓云 王建桥 杨涛 等 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:X 上架时间:2006-11-27 出版日期:2006 年12月 开本:16开 页码:662 版次:3-1 内容简介 本书全面深入地介绍了mysql的功能,主要内容包括mysql、php、apache、perl等组件的安装与功能简介,mysql等一些重要系统管理工具和用户操作界面的使用,mysql数据库系统设计的基础知识与用不同语言设计mysql数据库的过程,以及sql语法、工具、选项、api应用指南,最大限度地帮助读者更快地学习和掌握mysql数据库系统的设计和使用。本书覆盖了mysql 5.0,讨论了新的程序设计接口(如php 5里的mysqli)和新的系统管理工具。 本书是mysql数据库管理员和开发人员的必备参考书。 作译者 Michael Kofler 在奥地利格拉茨技术大学获得计算机科学博士学位。他写了很多非常成功的计算机图书,内容涉及Visual Basic、Linux、Mathematica和Maple等多种程序没计语言和软件。Kofler还是Definitive Guide to Excel VBA第2版的作者。 目录 封面 -23 封底 -22 扉页 -21 版权 -20 版权声明 -19 译者序 -18 前言 -16 目录 -11 第一部分 入门 1 第1章 什么是MySQL 2 1.1 什么是数据库 2 1.1.1 关系、数据库系统、服务器和客户 2 1.1.2 关系数据库系统与面向对象数据库系统 3 1.1.3 数据表、记录、字段、查询、SQL、索引和键 3 1.2 MySQL 4 1.3 MySQL的不足 6 1.4 MySQL的版本编号 7 1.4.1 Alpha、Beta、Gamma、Production(Generally Available) 8 1.4.2 按版本编号排列的MySQL功能表 8 1.5 MySQL的许可证 10 1.5.1 GPL许可证下的权利和义务 10 1.5.2 开源许可证下的MySQL软件 10 1.5.3 商用许可证下的MySQL软件 11 1.5.4 MySQL客户软件开发库(Connector/ODBC、Connector/J等)的商用许可证 12 1.5.5 PHP项目的客户许可证问题——F(L)OSS特例 12 1.5.6 MySQL软件的版本名称 13 1.5.7 MySQL软件的技术支持合同 14 1.6 MySQL软件的替代品 14 1.7 小结 15 第2章 测试环境 16 2.1 是Windows还是UNIX/Linux 16 2.1.1 MySQL应用现状(因特网上的数据库服务器) 16 2.1.2 开发环境 17 2.2 在Windows系统上安装MySQL和相关软件 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 在SUSE Linux 9.3系统上安装MySQL和相关软件 25 2.3.1 安装Apache 2、PHP 5和Perl 25 2.3.2 安装MySQL 5.0 27 2.4 在Red Hat Enterprise Linux 4系统上安装MySQL和相关软件 29 2.4.1 安装Apache 2 29 2.4.2 安装MySQL 5 30 2.4.3 编译PHP 5 30 2.4.4 安装Perl 5.8 33 2.5 编译MySQL软件的开发者版本(Linux) 33 2.5.1 安装Bitkeeper 33 2.5.2 下载MySQL软件的开发者版本 34 2.5.3 编译MySQL 34 2.5.4 创建用来管理访问权限的mysql数据库 34 2.5.5 MySQL配置文件和Init-V脚本 34 2.5.6 启动MySQL服务器 35 2.6 配置Apache 35 2.6.1 配置文件 35 2.6.2 基本设置 36 2.6.3 对不同子目录的访问权限(.htaccess) 37 2.7 配置PHP 39 2.8 配置MySQL 41 第3章 初级案例研究:MySQL+PHP 43 3.1 概述 43 3.2 数据库的开发 44 3.2.1 启动mysql命令行解释器 44 3.2.2 创建数据库 45 3.2.3 创建数据表 46 3.2.4 为什么要避简就难 47 3.3 调查问卷 48 3.4 问卷调查结果的处理和显示 49 3.4.1 mysql界面与mysqli界面 49 3.4.2 建立与数据库的连接 49 3.4.3 对数据进行处理并把它存入数据库 49 3.4.4 显示问卷调查的结果 50 3.4.5 程序代码(results.php) 51 3.4.6 最终生成的HTML代码 52 3.5 改进意见 52 第二部分 管理工具和用户操作界面 55 第4章 mysql、mysqladmin和mysqldump 56 4.1 mysql 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.2 mysqladmin 64 4.3 mysqldump 64 第5章 MySQL Administrator和MySQL Query Browser 65 5.1 安装 65 5.2 与MySQL服务器建立连接 66 5.3 MySQL Administrator 67 5.3.1 Server Information模块(查看服务器信息) 68 5.3.2 Service Control模块(启动/停止MySQL服务器) 68 5.3.3 Startup Variables模块(配置启动参数) 68 5.3.4 User Administration模块(用户管理) 69 5.3.5 Server Connections模块(查看服务器连接信息) 71 5.3.6 Health模块(查看系统负载) 71 5.3.7 Server Logs模块(查看服务器日志) 72 5.3.8 Backup模块(制作数据库备份) 72 5.3.9 Restore模块(用备份恢复数据库) 73 5.3.10 Replication Status模块(查看镜像机制的工作状态) 74 5.3.11 Catalogs模块(对数据库和数据表进行管理) 74 5.4 MySQL Query Browser 74 5.4.1 SQL命令的输入和执行 74 5.4.2 对SELECT结果里的数据进行修改 76 5.4.3 SQL命令的历史记录和书签 77 5.4.4 一次执行多条命令(脚本) 77 5.4.5 存储过程 77 5.4.6 MySQL Help(帮助文档) 77 第6章 phpMyAdmin 78 6.1 phpMyAdmin的安装与配置 79 6.1.1 安装phpMyAdmin文件 79 6.1.2 配置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 创建和编辑数据库 88 6.3.1 创建数据库 88 6.3.2 编辑现有的数据表 89 6.3.3 设置外键规则 90 6.3.4 数据库设计方案的汇总和存档 90 6.4 查看、插入和编辑数据 91 6.5 执行SQL命令 92 6.6 导入和导出 93 6.6.1 数据库备份(SQL文件) 93 6.6.2 导出数据表(CSV文本文件) 95 6.6.3 导入数据库或数据表(SQL文件) 95 6.6.4 插入数据表数据(文本文件) 96 6.7 服务器管理 96 6.8 辅助功能 97 6.8.1 为phpMyAdmin创建数据库 97 6.8.2 SQL书签和历史记录 98 6.8.3 关联/引用关系信息的保存 98 6.8.4 创建PDF格式的数据表关联/引用关系图 100 6.8.5 格式转换(数据列内容的另类显示效果) 101 第7章 Microsoft Office和OpenOffice/StarOffice 103 7.1 安装Connector/ODBC 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 安装Connector/J 112 7.4.1 Connector/J 112 7.4.2 安装 112 7.5 OpenOffice/StarOffice Base 113 7.5.1 与MySQL数据库建立连接 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.1 建立数据源 118 7.6.2 数据的导入 118 第三部分 基础知识 119 第8章 数据库设计概论 120 8.1 参考读物 120 8.2 数据表类型 121 8.2.1 MyISAM数据表 121 8.2.2 InnoDB数据表 122 8.2.3 HEAP数据表 123 8.2.4 临时数据表 124 8.2.5 其他的数据表类型 124 8.2.6 数据表文件 125 8.3 MySQL数据类型 126 8.3.1 整数(xxxINT) 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.3.6 选项和属性 135 8.4 数据库设计技巧 135 8.4.1 数据库设计要求 135 8.4.2 起名字的技巧 136 8.4.3 数据库具体设计工作中的技巧 136 8.5 规范化 137 8.5.1 起点 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 关系 149 8.7.1 1:1关系 149 8.7.2 1:n关系 150 8.7.3 n:m关系 151 8.8 主键和外键 151 8.8.1 主键 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.1 数据库的属性 164 8.11.2 数据表的属性 164 8.12 示例数据库myforum(网上论坛) 165 8.12.1 讨论组数据库:myforum 165 8.12.2 帖子之间的层次关系 166 8.13 示例数据库exceptions(用于特殊情况的测试) 167 8.13.1 数据表testall 167 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.6 数据表test_null 168 8.13.7 数据表test_sort1 168 8.13.8 数据表test_sort2 169 8.13.9 数据表importtable1、importtable2、exporttable 169 第9章 SQL语言入门 170 9.1 简介 170 9.2 简单查询(SELECT) 171 9.2.1 确定数据表里有多少条数据记录(数据行) 172 9.2.2 确定数据表里有多少条内容不重复的数据记录(DISTINCT) 172 9.2.3 限制查询结果中的数据列个数 172 9.2.4 限制查询结果中的数据记录个数(LIMIT) 173 9.2.5 在使用LIMIT关键字确定数据表里的数据记录数(SQLCALCFOUNDROWS、FOUNDROWS()) 173 9.3 对查询结果进行排序(ORDER BY) 174 9.3.1 选择一种排序方式 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.6 合并查询结果(UNION) 181 9.7 分组查询,统计函数(GROUP BY) 181 9.7.1 统计函数 182 9.7.2 统计函数GROUP_CONCAT() 183 9.7.3 对多个数据列进行GROUP BY查询 184 9.7.4 GROUP BY…WITH ROLLUP 184 9.8 修改数据(INSERT、UPDATE和DELETE) 185 9.8.1 备份数据 185 9.8.2 插入数据记录(INSERT) 186 9.8.3 修改数据记录(UPDATE) 188 9.8.4 删除数据记录(DELETE) 188 9.9 创建数据表、数据库和索引 190 9.9.1 创建数据库(CREATE DATABASE) 190 9.9.2 创建数据表(CREATE TABLE) 191 9.9.3 创建索引(CREATE INDEX) 192 9.9.4 变更数据表的结构(ALTER TABLE) 192 9.9.5 删除数据库和数据表(DROP) 193 9.9.6 自动修改数据表设计(默许的数据列修改) 193 9.9.7 SHOW命令 194 9.9.8 INFORMATION_SCHEMA数据表家族 195 第10章 SQL解决方案 197 10.1 字符串 197 10.1.1 基本函数 197 10.1.2 改变字符集 198 10.1.3 设置客户端字符集 199 10.1.4 模板匹配 200 10.2 日期和时间 201 10.2.1 日期和时间的语法 201 10.2.2 与日期和时间有关的计算 202 10.2.3 UNIX时间戳 204 10.2.4 地理时区 206 10.3 ENUM和SET数据类型 208 10.3.1 ENUM 208 10.3.2 SET 209 10.4 变量与条件表达式(IF、CASE) 209 10.4.1 变量 210 10.4.2 IF查询 211 10.4.3 CASE分支 211 10.5 在数据表间复制数据 212 10.5.1 利用复制操作创建新数据表 212 10.5.2 把数据复制到现有数据表 213 10.6 统计报表 213 10.6.1 涉及titles、languages和cate-gories数据表的统计报表 214 10.6.2 月度查询统计报表 215 10.7 子查询 216 10.7.1 语法变体 216 10.7.2 示例 218 10.8 保证数据的一致性 219 10.8.1 找出没有作者的图书 219 10.8.2 找出无效的出版公司引用:1:n关系中的无效记录 219 10.8.3 找出作者与图书之间的无效链接(n:m关系) 220 10.9 找出冗余的数据记录 221 10.10 数据表设计方案的改进 221 10.11 对前n条或后n条记录进行处理 223 10.11.1 数据查询(SELECT) 223 10.11.2 修改现有记录(UPDATE和DELETE) 224 10.11.3 把全部讨论线程删除到只剩下最新的500个线程 224 10.12 以随机方式选择数据记录 225 10.12.1 通用方法:RAND()函数 225 10.12.2 自备随机数的数据表 225 10.12.3 利用id数据列选择随机记录 226 10.13 全文索引 226 10.13.1 基础知识 227 10.13.2 图书检索 229 10.13.3 论坛文章检索 231 10.14 锁定 232 10.14.1 语法 232 10.14.2 GETLOCK和RELEASE LOCK函数 233 10.15 事务 233 10.15.1 为什么要使用事务 233 10.15.2 事务的控制 234 10.15.3 事务机制的工作流程 235 10.15.4 事务与锁定 237 10.15.5 事务的隔离模式 238 10.15.6 出错处理 240 第11章 访问权限与信息安全 241 11.1 简介 241 11.1.1 客户与MySQL服务器之间的连接 241 11.1.2 访问管理 242 11.2 急救 246 11.2.1 保护MySQL安装 246 11.2.2 创建新的数据库和用户 247 11.2.3 授予创建个人数据库的权限 248 11.2.4 忘记root密码情况的处理 249 11.3 访问控制机制的内部工作原理 250 11.3.1 两级访问控制 250 11.3.2 权限 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 tablespriv和columnspriv数据表 261 11.3.8 procs_priv数据表 263 11.4 访问权限的设置工具 263 11.4.1 使用GRANT和REVOKE命令改变访问权限 263 11.4.2 使用SHOW GRANT命令查看访问权限 265 11.4.3 使用mysqladmin程序改变密码 265 11.5 MySQL 4.1版本开始的安全密码验证 265 11.5.1 升级客户端函数库 266 11.5.2 old-passwords模式 266 11.5.3 同时使用旧的和新的密码的操作 266 11.6 建立连接的问题 267 11.6.1 连接困难的可能原因 267 11.6.2 错误检查的更多方法 270 11.7 系统安全性 270 11.7.1 系统级安全措施 270 11.7.2 重要数据存储的安全保护 271 11.7.3 与MySQL服务器有关的安全风险 271 11.7.4 不要使用root或Administrator权限来运行MySQL服务器 271 11.7.5 网络安全与防火墙 272 第12章 GIS函数 273 12.1 GIS数据格式 273 12.1.1 地理坐标的表示方法 273 12.1.2 Well-Known Text和Well- Known Binary(OpenGIS) 274 12.2 MySQL的GIS实现 275 12.2.1 数据类型 275 12.2.2 简单的几何函数 277 12.2.3 空间分析函数 279 12.2.4 为几何数据创建索引 281 12.3 SQL示例(冰川数据库) 281 12.3.1 创建数据表 282 12.3.2 插入数据 282 12.3.3 查询数据 282 12.4 SQL示例(opengeodb数据库) 284 12.4.1 数据来源和导入 285 12.4.2 导入 285 12.4.3 对圆形地理区域进行搜索 286 第13章 存储过程和触发器 288 13.1 为什么要使用存储过程和触发器 288 13.1.1 存储过程 288 13.1.2 触发器 289 13.2 初识SP 289 13.2.1 MySQL命令解释器:mysql程序 290 13.2.2 MySQL Query Browser 291 13.3 SP的实现 292 13.4 SP的管理 293 13.4.1 创建、编辑和删除SP 293 13.4.2 信息安全问题 295 13.4.3 SP的备份和恢复 295 13.5 SP的语法和语言素 296 13.5.1 基本语法规则 296 13.5.2 调用SP(CALL) 297 13.5.3 参数和返回值 298 13.5.4 命令的封装(BEGIN -END) 299 13.5.5 分支 301 13.5.6 循环 301 13.5.7 出错处理(出错处理句柄) 302 13.5.8 光标 304 13.6 SP应用示例 306 13.6.1 增加新的图书门类 306 13.6.2 增加一本新图书 307 13.6.3 确定父门类 308 13.6.4 按层次结构生成图书门类清单 309 13.7 触发器 311 13.7.1 创建触发器 311 13.7.2 删除触发器 312 13.7.3 实现细节和管理工具 312 13.7.4 功能局限性 312 13.7.5 触发器应用示例 313 第14章 管理与服务器配置 314 14.1 基础知识 314 14.1.1 MySQL数据库系统的管理工具 314 14.1.2 设置root密码 315 14.1.3 MySQL服务器配置文件 316 14.1.4 重新启动MySQL服务器 316 14.1.5 MySQL服务器的基本配置 317 14.1.6 目录 317 14.1.7 通信设置 317 14.1.8 默认的数据表格式 318 14.1.9 新数据表的默认字符集和排序方式 318 14.1.10 地理时区 318 14.1.11 出错消息的显示语言 319 14.1.12 SQL模式 319 14.2 备份 321 14.2.1 备份数据库(mysqldump) 321 14.2.2 用备份恢复数据库(mysql) 324 14.2.3 快速备份(mysqlhotcopy) 325 14.3 数据库的迁移 327 14.4 导出和导入文本文件 329 14.4.1 文本文件里的特殊字符 329 14.4.2 字符串、数值、日期/时间、BLOB和NULL值 330 14.4.3 用LOAD DATA INFILE命令导入 330 14.4.4 用mysqlimport工具导入 333 14.4.5 用SELECT … INTO OUTFILE命令导出 333 14.4.6 用mysqldump程序导出 335 14.4.7 用mysql程序的批处理模式导出 335 14.5 日志 337 14.5.1 为什么要使用日志 337 14.5.2 缺点与不足 338 14.5.3 变更日志(update log) 338 14.5.4 出错日志、登录日志和慢查询日志 340 14.5.5 日志文件的管理 342 14.6 镜像机制 342 14.6.1 简介 342 14.6.2 建立镜像机制的主控系统 344 14.6.3 建立镜像机制的从属系统 346 14.6.4 用LOAD DATA命令建立镜像机制 348 14.6.5 内部镜像机制 348 14.6.6 客户端编程 350 14.7 管理MyISAM数据表 351 14.7.1 myisamchk程序 351 14.7.2 myisamchk程序的使用方法 352 14.7.3 速度优化与内存使用情况 352 14.7.4 对MyISAM数据表进行压缩和优化 353 14.7.5 修复受损的MyISAM数据表 353 14.7.6 压缩MyISAM数据表(myisampack程序) 354 14.8 InnoDB数据表的管理 354 14.8.1 表空间的管理 354 14.8.2 日志文件 359 14.9 MySQL服务器的优化 362 14.9.1 优化内存管理 363 14.9.2 查询缓存区 364 14.10 ISP数据库管理 366 14.10.1 ssh工具 366 14.10.2 phpMyAdmin工具 366 14.10.3 实现自定义的PHP脚本 366 14.10.4 自定义:Perl脚本 367 第四部分 程序设计 369 第15章 PHP 370 15.1 mysql功能模块 370 15.1.1 连接MySQL服务器 371 15.1.2 执行SQL命令 372 15.1.3 处理SELECT查询结果 373 15.1.4 事务 376 15.1.5 出错处理与查找 376 15.2 mysqli的类、方法和属性 377 15.2.1 选择编程接口:mysql还是mysqli 377 15.2.2 有效性测试 378 15.2.3 构成mysqli接口的类 378 15.2.4 连接MySQL服务器 378 15.2.5 执行SQL命令 380 15.2.6 处理SELECT查询结果(mysqli_result()方法) 380 15.2.7 一次执行多条SQL命令 382 15.2.8 带参数的SQL命令(预处理语句) 382 15.2.9 事务 385 15.3 把数据库功能打包为一个类 385 15.3.1 使用单独的密码文件提高安全性 385 15.3.2 使用MyDb类实现安全和方便 386 15.4 把SELECT查询结果显示为一个表格 389 15.5 字符串、日期、时间、BLOB和NULL 390 15.5.1 字符串和BLOB 390 15.5.2 日期和时间 391 15.5.3 NULL值 392 15.6 向关联数据表插入新数据记录 393 15.7 处理来自HTML表单的输入数据 393 15.7.1 代码结构 394 15.7.2 创建HTML表单 396 15.7.3 对表单数据进行合法性检查 400 15.7.4 把表单数据存入数据库 401 15.7.5 删除一本图书 403 15.7.6 值得改进的地方 404 15.8 分页显示查询结果 404 15.8.1 代码结构 405 15.8.2 对图书作者进行搜索 407 15.8.3 对图书进行搜索 408 15.8.4 显示搜索结果 408 15.8.5 指向其他结果页面的链接 410 15.9 处理层次化数据 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 速度优化 419 15.10.1 提高代码执行效率的基本原则 419 15.10.2 统计信息和性能指标 420 15.10.3 示例:高效地生成图书门类下拉列表 421 15.11 Unicode 424 15.12 二进制数据(BLOB)和图像 428 15.12.1 在数据库里存储图像的基础知识与编程技巧 429 15.12.2 在数据库里存储图像的程序代码 431 15.13 存储过程 434 15.14 SP Administrator 435 15.14.1 安装SP Administrator 435 15.14.2 使用SP Administrator 435 15.14.3 SP Administrator代码 436 第16章 Perl 441 16.1 编程技巧 441 16.1.1 DBI和DBD::mysql模块 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.8 事务 454 16.1.9 出错处理 454 16.2 示例:删除无效的数据记录(mylibrary) 456 16.3 CGI示例:图书管理(mylibrary) 457 16.3.1 图书检索(mylibrary-find.pl脚本) 457 16.3.2 新图书的简单输入(mylibrary-simpleinput.pl脚本) 460 16.4 CGI Unicode示例 462 16.4.1 图书检索(mylibrary-find-utf8.pl脚本) 462 16.4.2 新图书的输入(mylibrary-simpleinput-utf8.pl脚本) 463 第17章 Java(JDBC和Connector/J) 464 17.1 基础知识 464 17.1.1 Java的安装 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.7 事务 479 17.2.8 批处理命令 479 17.2.9 二进制数据(BLOB)的处理 480 第18章 C语言 483 18.1 MySQL C API(libmysqlclient) 483 18.2 Hello,World 483 18.2.1 对系统的基本要求 483 18.2.2 入门级示例 484 18.2.3 编译与链接 485 18.2.4 Makefile 486 18.2.5 以静态方式绑定MySQL API函数 486 18.3 与MySQL服务器建立连接 487 18.3.1 处理MySQL配置文件my.cnf 488 18.3.2 处理命令行选项 488 18.4 执行SQL命令 489 18.4.1 简单的SQL命令 489 18.4.2 一次执行多条SQL命令 490 18.4.3 预处理语句 493 18.4.4 字符集设置(Unicode) 497 18.5 处理二进制数据和特殊字符 498 18.6 出错处理 500 第19章 Visual Basic 6/VBA 501 19.1 基础知识和术语 501 19.2 Connector/ODBC选项 503 19.3 ADO程序设计与Visual Basic 6/VBA 504 19.4 与MySQL服务器建立连接 506 19.4.1 与MySQL服务器建立连接:使用DSN 506 19.4.2 与MySQL服务器建立连接(不使用DSN) 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.6 辅助函数 540 20.2.7 出错处理 540 20.2.8 Windows.Form和ASP .NET控件 540 20.2.9 事务 542 20.3 示例:把新图书记录存入mylibrary数据库 542 20.4 示例:把图像文件存入和读出一个BLOB数据列 544 第五部分 参考资料 547 第21章 SQL语法指南 548 21.1 语法 548 21.1.1 对象命名规则 548 21.1.2 区分字母大小写 549 21.1.3 字符串 549 21.1.4 字符集和排序方式 550 21.1.5 数值 550 21.1.6 数值和字符串的自动转换 550 21.1.7 日期和时间 551 21.1.8 二进制数据 551 21.1.9 二进制数值 551 21.1.10 注释语句 551 21.1.11 SQL命令末尾的分号 552 21.2 操作符 552 21.2.1 算术操作符与位操作符 553 21.2.2 比较操作符 553 21.2.3 使用LIKE操作符进行模式匹配 553 21.2.4 使用REGEXP操作符进行模式匹配 554 21.2.5 二进制字符串比较 554 21.2.6 逻辑操作符 555 21.3 变量和常数 555 21.3.1 变量赋值 555 21.3.2 使用和查看变量 555 21.3.3 全局级系统变量与会话级系统变量 556 21.3.4 SET PASSWORD命令 556 21.3.5 结构化变量 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.2 比较函数、测试函数、分支函数 597 21.7.3 类型转换(投射) 597 21.7.4 字符串处理 597 21.7.5 日期/时间函数 600 21.7.6 GROUP BY函数 604 21.7.7 其他函数 605 21.8 GIS数据类型与GIS函数 606 21.9 与存储过程和触发器有关的语言素 608 第22章 MySQL工具和选项 610 22.1 概述 610 22.2 通用选项和配置文件 610 22.2.1 通用选项 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 mysqlinstalldb脚本(安装mysql数据库) 621 22.6 mysqlfixprivileges脚本(更新mysql数据库) 622 22.7 mysqlfixextensions脚本(重命名MyISAM文件) 622 22.8 mysql程序(SQL命令解释器) 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.2.3 mysqli_stmt类 638 23.3 Perl DBI 638 23.3.1 常用的变量名 638 23.3.2 与MySQL服务器建立连接 639 23.3.3 执行SQL命令、处理SELECT查询结果 640 23.3.4 出错处理 642 23.3.5 辅助函数 642 23.3.6 DBD::mysql驱动程序中的MySQL专用扩展模块 642 23.4 JDBC(Connector/J) 644 23.4.1 与MySQL服务器建立连接 644 23.4.2 执行SQL命令 644 23.4.3 处理SELECT查询结果(ResultSet类) 646 23.4.4 事务 647 23.5 ADO .NET(Connector/Net) 647 23.5.1 与MySQL服务器建立连接 647 23.5.2 执行SQL命令与处理SELECT查询结果 648 23.5.3 利用DataSet/DataTable类修改数据 649 23.5.4 事务 650 23.6 C API 650 23.6.1 数据结构 650 23.6.2 连接与管理 652 23.6.3 执行SQL命令及处理SELECT查询结果 654 23.6.4 预处理语句 656 第六部分 附录 657 附录A 术语解释 658 译者序 MySQL是使用最广泛的开源数据库系统,它正在数据库市场上重演Linux在操作系统领域逐步取得成功的故事。PHP或Perl语言与MySQL相结合的数据库系统解决方案正被越来越多的网站所采用,其中又以LAMP模式(“Linux + Apache + MySQL + Perl或PHP”组合方式)最为流行。MySQL的突出优点包括: ·适用面广。可以在Windows、Linux、Mac OS X及各种UNIX操作系统上运行,可以用C、C++、C#、Java、Perl、PHP、Python、Visual Basic和Visual Basic.NET等多种程序设计语言来开发MySQL应用程序。在Linux领域里,以MySQL作为后端数据库引擎的应用项目越来越多:它可以帮助人们更有效率地管理各种日志数据以及电子邮件、MP3文件、地址名单之类的数据。在Windows领域里,借助于ODBC接口,MySQL也能完成类似的任务(在许多场合下,MySQL提供了更好的技术基础)。 ·性能优异,运行稳定。MySQL是一种功能非常强大的关系数据库系统,它的安全性和稳定性足以满足许多应用项目的要求。美国航空航天局、美国洛斯?阿拉莫斯国家实验室(数据量高达7TB)、Yahoo!、Lycos、索尼、铃木、维基百科等大公司和大机构都采用了MySQL来建立它们的后端数据库。从这个意义上讲,选择MySQL就等于是让自己与这些优秀的公司站在了同一条起跑线上。此外,MySQL对硬件性能的要求不那么苛刻,这一点对小公司或个人用户来说特别有优势。 ·性价比高。MySQL是一个开源软件产品,采用GPL许可证发行,所以绝大多数MySQL应用项目都可以免费获得和使用MySQL软件。如果用户的MySQL项目不符合GPL许可证的有关规定,只须支付一些合理的费用就可以获得商业许可证和各种可选的技术支持服务合同。 ·技术支持丰富而且易于获得。因特网上有着丰富的MySQL资源。 与其他的开源数据库系统相比,MySQL不仅在性能指标方面高出一截,在应用范围和实际装机容量方面也远远领先于竞争对手。MySQL比其他数据库系统接受过更全面的测试,有着更齐全的文档,有MySQL经验的开发人员也相对更多一些。不过,MySQL目前还无法在所有的方面与一些老牌的商业化数据库系统抗衡。万一用户的项目必须用到某些MySQL尚不支持的功能,请在项目的前期可行性研究阶段做出判断和取舍。 本书是一部MySQL领域的名著,新版在第2版的基础上进行了大量的改写。大部分改动是根据MySQL软件从4.1版到5.0版的变化而做出的。围绕着MySQL相关领域做出的改动也有不少,其中包括新的程序设计接口(如PHP 5里的mysqli接口)和新的系统管理工具。本书从面向应用和面向示例两方面对MySQL数据库系统进行了全面系统的介绍,读者无须具备SQL编程或数据库设计经验,而书中的示例数据库和示例程序能够帮助那些打算自行开发一个数据库应用软件的读者打下坚实的基础。不过,因为本书没有足够的篇幅从入门开始对每一个论题进行探讨,所以书中有些内容(尤其是与编程有关的内容)需要读者具备相应的基础知识才能从中获得最大收益。 与任何一种现代数据库产品一样,MySQL的实际应用还需要涉及硬件设备、操作系统、网络与通信等许多方面。这些领域每天都有新的技术和改进诞生。 本书主要由杨晓云、王建桥、杨涛、李东梅翻译,参加翻译工作的还有范精明、许玉新、俞渭明、韩兰、张玉亭、李菘、张雁东、李京山、张立和、张勇、韩文光、孙殿刚、韩东升、陈丽芬、张异宝、卫健、李江卫、丁文学、张斌和汪艳华等同志。 因为译者水平有限,所以书中可能会有一些错误和疏漏,希望能够得到读者的谅解和指正。 前言 MySQL是使用最广泛的开源数据库系统,这主要有以下几个原因: ·MySQL很快。 ·MySQL很稳定。 ·MySQL很容易学习。 ·MySQL可以在各种主流的操作系统(Windows、Linux、Mac OS X和各种UNIX版本)上运行。 ·MySQL应用软件可以用多种程序设计语言(如C、C++、C#、Java、Perl、PHP、Python、Visual Basic和Visual Basic.NET等)来编写。 ·网上有详尽的MySQL文档,与MySQL有关的书籍也非常多。 ·有许多应用项目都允许用户免费使用MySQL来开发(在遵守GPL许可证制度的前提下)。 ·虽然也有许多商业化的应用软件不受GPL许可证的约束,但只需支付一些合理的费用就可以获得商业许可证和各种可选的技术支持服务合同。 MySQL正在数据库市场上重演Linux在操作系统领域逐步取得成功的故事。PHP或Perl语言与MySQL相结合的数据库系统解决方案被越来越多的网站所采用。其中又以“Linux + Apache + MySQL + Perl或PHP”的组合方式最为流行,这种组合被人们称为LAMP模式。MySQL并不仅仅适用于小型网站,连Yahoo!、Slashdot和美国航空航天局等数据量非常大的公司和机构也在使用它。 本书内容 本书面向应用和面向示例对MySQL数据库系统进行了全面系统的介绍。读者无需具备SQL编程或数据库设计的经验。 本书的入门部分将从如何在运行Windows和Linux操作系统的计算机上安装MySQL、Apache、PHP和Perl等软件组件的具体步骤开始展开讨论。此外,还将介绍如何安装需要与MySQL配合使用的其他组件。在此基础上的第一个示例将向大家演示MySQL和PHP的基本用法。 本书的第二部分将对mysql、mysqladmin、mysqldump、MySQL Administrator、MySQL Query Browser和phpMyAdmin等几个最为重要的系统管理工具和用户操作界面进行介绍,最后一个程序特别适合使用Web浏览器以离线方式来完成各种系统管理工作的情况。在这一部分还将专门用一章的篇幅来讨论如何通过Microsoft Office、Sun StarOffice和OpenOffice访问MySQL数据库。 本书的第三部分为读者准备了大量有关数据库语言SQL、数据库系统的设计思路、存储过程、MySQL的访问控制系统和多种系统管理工作(如备份、日志和镜像等)的背景资料。 本书的第四部分将重点介绍PHP语言,其中有一章内容很长,读者可以学到许多程序设计方面的技巧。将通过一系列示例程序来演示如何利用mysql和mysqli(PHP 5里新增加的软件工具)程序提供的操作界面去完成各项系统管理任务;还将介绍其他几种程序设计语言,将在专门的章节里对Perl、Java、C、Visual Basic 6以及Visual Basic.NET和C#等语言进行讨论。 本书的主要内容将以参考资料篇(第五部分)作为结束,将对MySQL所支持的各种SQL命令、常见MySQL系统管理工具的功能选项及几种重要的程序设计语言(PHP、Perl、C、Java、ADO .NET)所提供的接口函数进行总结。 最后是附录,其内容涉及术语解释(附录A),对书里提到的各个示例文件的介绍(附录B,有关文件都可以从www.apress.com网站下载),以及帮助大家进一步掌握MySQL的参考读物和建议(附录C)。 我们相信,本书里的示例数据库和示例程序能够帮助那些打算自行开发一个数据库应用软件的读者打下一个坚实的基础。在这里,预祝大家能够从中获得乐趣和成功。 本书(第3版)新增内容 . 本书在第2版的基础上进行了大量的改写。大部分改动反映了MySQL服务器从4.1版到5.0版的变化。围绕着MySQL相关领域做出的改动也有不少,其中包括新的程序设计接口(如PHP 5里的mysqli)和新的系统管理工具。最为重要的新增内容如下所示。 MySQL从4.1到5.0的变化 ·增加对Unicode和其他新字符集的支持(新增和改动之处详见书中各有关内容)。 ·视图(在第8章中新增了一个小节)。 ·INFORMATION_SCHEMA数据表(在第9章中新增了一个小节)。 ·子查询(在第10章中新增了一个小节)。 ·经过改进的密码验证机制和访问控制管理方面的新增权限(第11章)。 ·GIS函数(新增的第12章)。 ·存储过程和触发器(新增的第13章)。 ·对InnoDB数据表进行维护管理的新办法(在第14章中新增了一个小节)。 ·各种新的SQL命令、函数、数据类型(新增和改动之处详见书中各有关内容,第21章对它们进行了汇总)。 ·MySQL服务器和它的各种系统管理工具的新增功能选项(新增和改动之处详见书中各有关内容,第21章对它们进行了汇总)。 相关领域中的变化 ·MySQL Administrator和MySQL Query Browser(新增的第5章)。 ·phpMyAdmin工具中的许多新增功能(新增的第6章)。 ·OpenOffice / StarOffice中的数据库接口(在第7章中新增了一节)。 ·PHP 5里的mysqli工具,这是一个面向对象的接口(新增的第15章、第23章对它们进行了汇总)。 ·C-API中的新增函数(第18章、第23章对它们进行了汇总)。 ·新的ADO .NET驱动程序集Connector/Net(第20章、第23章对它们进行了汇总)。 本书没有涉及的内容 在本书的各有关章节里,分别讨论了如何运用PHP、Perl、C、Java和Visual Basic等多种程序设计语言编写MySQL应用软件的问题。那些章节里的内容是在读者对相应的程序设计语言已经比较熟悉的假设下展开的——原因很简单:本书没有足够的篇幅从入门开始对那么多种程序设计语言进行介绍。换句话说,读者只有在自己已经熟练掌握(比如PHP语言)的前提下才能从专门讨论PHP编程技巧的有关章节里获得最大的收益。 示例程序、源代码 书中所有示例程序的源代码都可以通过www.turingbook.com和www.apress.com网站下载。 在这本书里,读者会在一些比较长的示例程序清单的开头看到一个如下所示的注释行,它给出了该示例文件在上述网站上的文件名,比如: 出于节约篇幅的考虑,在书中有时只给出了整段程序代码中最精彩的片段。 软件版本问题 MySQL本身以及各种工具程序、程序设计语言和相关函数库的功能会随着它们各自的每一个新版本的出现而发生变化——这些变化每个星期都有可能发生。下面这份清单是笔者在编写这本书时使用的各种软件的版本明细(对这些软件名称的解释详见书中的适当位置)。 Apache:2.n版。 Connector/J:3.1.7版和3.2.0版。 Connector/ODBC(以前叫做MyODBC):3.51.11版。 gcc:3.3版。 Java:1.4.2版和1.5.0版。 Linux:本书中的MySQL工具和其他程序都已经在Windows和Linux环境下通过了测试。我们的Linux测试环境使用的是Red Hat Enterprise 4和SUSE Professional 9.2和9.3 beta发行版本。 Microsoft Office:Office 2000。 Microsoft Visual Basic、VBA、ADO:书中的Visual Basic程序是在Visual Basic 6、VBA 6和ADO 2.8环境下开发和测试的。 Microsoft Visual Basic .NET、C#、ADO.NET:与这几个方面有关的信息主要以Visual Studio 2005 beta版(即.NET Framework 2.0)为依据。 Microsoft Windows:Windows环境下的测试工作全都是在Windows XP SP2系统上完成的。从理论上讲,有关信息应该同样适用于Windows Navicat Premium 11.1.17激活 2000和未来的Windows版本。 MySQL:5.0.3版。 OpenOffice:2.0 beta版。 Perl:5.8版。 PHP:5.0版和5.3版。 phpMyAdmin:2.6.1版。 印刷体例 ·SQL命令、SQL函数以及SQL、C、Java、PHP、Perl、Visual Basic等语言里的各种函数方法、类和关键字主要以斜体字表示(例如:SELECT、mysql_query)。 ·UNIX/Linux用户名也以斜体字表示(例如:root、mysql)。 ·菜单命令使用首字母大写字体表示(例如:File
今天的文章
Navicat Premium 11.1.17激活(MySQL 5权威指南(第3版)–随书源代码)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/110015.html