书籍详情
MySQL权威指南
作者:(美)Paul DuBois著;杨涛 等译
出版社:机械工业出版社
出版时间:2004-01-01
ISBN:9787111134770
定价:¥98.00
购买这本书可以去
内容简介
MySQL 是基于SQL的客户/服务器模式的关系数据库管理系统,它具有功能强大、使用简单、管理方便、运行速度快、安全可靠性强等优点,特别适用于Web站点或应用软件的数据库后端的开发工作。另外,用户可利用许多语言编写访问MySQL数据库的程序。本书通过两个样板数据库,详细介绍了MySQL的基本概念、基本技巧、编程方法、管理特点以及第三方工具(如PHP和Perl)的使用方法。第2版保留了第1版的优点,同时增加了MySQL 4.0.1和相关编程语言接口的最新信息。本书内容完善、条理清晰,适合数据库、网络开发与管理等人员参考。作为开放源代码运动的产物之一,MySQL关系数据库管理系统越来越受到人们的青睐,应用范围也越来越广。闻名遐迩的速度和易用性使MySQL特别适用于Web站点或应用软件的数据库后端的开发工作。如果你想高效且富有成果地使用MySQL.就应该好好读读本书。本书对以下几个方面进行了全面细致的讨论:如何建立MySQL数据库、如何把MySQL与PHP或Perl结合起来以生成动态的Web网页,如何管理MySQL服务器。“在我曾阅读过的各种技术论著中,这本书是最好的技术书籍之一。”——C&C++用户联合会,《C Vu》杂志主编Gregory Haley“对于这本用户指南加参考手册形式的著作。我只能用‘无出其右’来形容。我的结论是:在MySQL数据库的日常使用和维护方面,只要有了这本书就可以高枕无忧了。”——《Web Techniques》杂志主编Eugene Kim
作者简介
Paul DuBois是一位作家,一名数据库管理员,同时也是开放源代码和MySQL阵营里的一位旗手。他曾参与过MySQL在线文档的编写工作。除这本书以外,他的主要著作还包括《MySQL and Perl for the Web》、《MySQL Cookbook》、《Using csh and tcsh》以及《Software Portability with imake》等。
目录
前言<br>第一部分 MySQL基础知识<br>第1章 MySQL和SQL入门 2<br>1.1 MySQL概述 2<br>1.2 样板数据库 5<br>1.2.1 美国历史研究会 6<br>1.2.2 考试记分项目 8<br>1.2.3 关于样板数据库的说明 8<br>1.3 数据库基本术语 9<br>1.3.1 数据库的组织结构术语 9<br>1.3.2 数据库查询语言术语 11<br>1.3.3 MySQL的体系结构术语 11<br>1.4 MySQL教程 13<br>1.4.1 获得样板数据库 13<br>1.4.2 最低配置要求 14<br>1.4.3 建立和断开与服务器的连接 15<br>1.4.4 发出查询命令 17<br>1.4.5 创建数据库 19<br>1.4.6 创建数据表 20<br>1.4.7 添加新记录 35<br>1.4.8 对信息进行检索 39<br>1.4.9 删除或更新现有的数据记录 70<br>1.5 交互式客户程序mysql的使用技巧 72<br>1.5.1 简化连接过程 73<br>1.5.2 减少查询命令的输入 75<br>1.5.3 改变mysql客户程序的提示符 78<br>1.6 今后各章的学习计划 79<br>第2章 MySQL数据库里的数据 80<br>2.1 MySQL的数据类型 81<br>2.1.1 数值 81<br>2.1.2 字符串(字符)值 82<br>2.1.3 日期和时间值 83<br>2.1.4 NULL值 84<br>2.2 MySQL的数据列类型 84<br>2.2.1 数据列类型概述 84<br>2.2.2 数据表的创建 86<br>2.2.3 数值类数据列类型 87<br>2.2.4 字符串类数据列类型 95<br>2.2.5 日期和时间类数据列类型 108<br>2.3 序列与编号 115<br>2.3.1 ISAM数据表里的AUTO_INCREMENT<br>数据列 115<br>2.3.2 MyISAM数据表里的AUTO_INCREMENT<br>数据列 117<br>2.3.3 HEAP数据表里的AUTO_INCREMENT<br>数据列 119<br>2.3.4 BDB数据表里的AUTO_INCREMENT<br>数据列 119<br>2.3.5 InnoDB数据表里的AUTO_INCREMENT<br>数据列 119<br>2.3.6 使用AUTO_INCREMENT机制时的<br>注意事项 119<br>2.3.7 强制MySQL不要复用已经用过的<br>序列值 120<br>2.3.8 给数据表增加一个序列编号数据列 121<br>2.3.9 重新编排现有的序列编号 121<br>2.3.10 在不使用AUTO_INCREMENT机制的<br>情况下生成序列编号 122<br>2.4 MySQL对字符集的支持 124<br>2.4.1 MySQL 4.1之前版本对字符集<br>的支持 125<br>2.4.2 MySQL 4.1及以后版本对字符集<br>的支持 126<br>2.5 选择数据列类型 128<br>2.5.1 这个数据列将用来存放哪一种数据 130<br>2.5.2 数据值是否都位于某个区间范围内 132<br>2.5.3 有没有性能和效率方面的问题 134<br>2.5.4 打算如何对有关数据进行比较 136<br>2.5.5 是否要在某个数据列上建立索引 136<br>2.5.6 数据列类型选择问题的内在联系 137<br>2.6 表达式求值与类型转换 137<br>2.6.1 书写表达式 138<br>2.6.2 类型转换 145<br>第3章 MySQL SQL语法及其使用 153<br>3.1 MySQL的命名规则 154<br>3.1.1 数据库组成元素的命名规则 155<br>3.1.2 SQL语句对字母大小写的要求 157<br>3.2 数据库的选定. 创建. 丢弃和变更 158<br>3.2.1 数据库的选定 158<br>3.2.2 数据库的创建 158<br>3.2.3 数据库的丢弃 159<br>3.2.4 数据库的变更 159<br>3.3 数据表的创建. 丢弃. 索引和变更 159<br>3.3.1 数据表类型 159<br>3.3.2 数据表的创建 164<br>3.3.3 数据表的丢弃 171<br>3.3.4 数据表的索引 171<br>3.3.5 变更数据表的结构 176<br>3.4 获得关于数据库和数据表的信息 180<br>3.4.1 确定MySQL服务器所支持的<br>数据表类型 181<br>3.4.2 检查数据表是否存在及其类型 182<br>3.5 涉及多个数据表的查询操作 183<br>3.5.1 单关联 184<br>3.5.2 全关联 184<br>3.5.3 左关联和右关联 186<br>3.5.4 使用子选择 190<br>3.5.5 涉及多个数据表的UNION查询 193<br>3.6 涉及多个数据表的删除和修改操作 198<br>3.7 事务处理 199<br>3.7.1 事务处理机制的用途 200<br>3.7.2 事务问题的非事务实现办法 201<br>3.7.3 利用事务处理机制来保证语句的<br>安全执行 203<br>3.8 外键与引用完整性 207<br>3.9 使用FULLTEXT全文本搜索 213<br>3.10 代码注释 218<br>3.11 MySQL不支持的特征 219<br>第4章 查询优化 221<br>4.1 索引的使用 221<br>4.1.1 索引的优点 222<br>4.1.2 索引的缺点 224<br>4.1.3 挑选索引 225<br>4.2 MySQL的查询优化程序 227<br>4.2.1 查询优化程序的工作原理 228<br>4.2.2 抑制优化程序给出的方案 231<br>4.3 数据列类型与查询效率 232<br>4.4 更有效地加载数据 235<br>4.5 调度和锁定问题 238<br>4.6 系统管理员所完成的优化 241<br>4.6.1 查询缓存区 243<br>4.6.2 与硬件有关的优化问题 245<br>第二部分 MySQL程序设计接口<br>第5章 MySQL程序设计简介 248<br>5.1 为什么要自行编写MySQL程序 248<br>5.2 可用于MySQL的API 251<br>5.2.1 C API 253<br>5.2.2 Perl DBI API 254<br>5.2.3 PHP API 255<br>5.3 选择API 257<br>5.3.1 运行环境 257<br>5.3.2 性能 258<br>5.3.3 开发周期 260<br>5.3.4 可移植性 262<br>第6章 MySQL应用程序设计接口:<br>C语言 263<br>6.1 客户程序的制作流程 264<br>6.1.1 对系统的基本要求 264<br>6.1.2 MySQL客户程序的编译和链接 264<br>6.2 客户程序1—连接到服务器 266<br>6.3 客户程序2—增加出错检查功能 269<br>6.4 客户程序3—运行时获取连接参数 273<br>6.4.1 访问选项文件的内容 274<br>6.4.2 处理命令行参数 278<br>6.4.3 把选项处理机制融合到MySQL客户<br>程序里 285<br>6.5 查询的处理 289<br>6.5.1 处理无结果集的查询 291<br>6.5.2 处理有结果集的查询 292<br>6.5.3 一个通用的查询处理程序 295<br>6.5.4 另一种查询处理方案 297<br>6.5.5 mysql_store_result()与mysql_use_result()<br>函数的对比 298<br>6.5.6 结果集元数据的使用 300<br>6.6 客户程序4——交互式查询程序 305<br>6.7 编写具备SSL支持的客户程序 306<br>6.8 嵌入式MySQL服务器程序开发库的使用 311<br>6.8.1 编写一个内建有嵌入式MySQL服务器<br>的应用程序 311<br>6.8.2 生成一个内建有嵌入式MySQL服务器<br>的应用程序可执行二进制文件 314<br>6.9 其他论题 314<br>6.9.1 在结果集上进行计算 315<br>6.9.2 对查询命令中的特殊字符进行编码 316<br>6.9.3 对图像数据进行处理 318<br>6.9.4 获取关于数据表结构的信息 320<br>6.9.5 MySQL程序设计工作中的常见错误及<br>预防办法 320<br>第7章 MySQL应用程序设计接口:<br>Perl DBI 324<br>7.1 Perl语言脚本程序的特点 324<br>7.2 Perl DBI概述 325<br>7.2.1 DBI数据类型 325<br>7.2.2 一个简单的DBI脚本 326<br>7.2.3 出错处理 331<br>7.2.4 处理没有结果集的查询 334<br>7.2.5 处理有结果集的查询 335<br>7.2.6 引号问题 345<br>7.2.7 占位符与参数绑定 348<br>7.2.8 把查询结果绑定给脚本变量 350<br>7.2.9 设定MySQL服务器连接参数 351<br>7.2.10 调试 354<br>7.2.11 结果集元数据的使用 358<br>7.2.12 用DBI脚本来实现事务处理机制 362<br>7.3 DBI脚本实战 364<br>7.3.1 美国历史研究会:生成会员名录 364<br>7.3.2 美国历史研究会:发出会费催交<br>通知 370<br>7.3.3 美国历史研究会:编辑会员记录项 376<br>7.3.4 美国历史研究会:查找兴趣相同<br>的会员 381<br>7.3.5 美国历史研究会:把会员名录<br>放到网上 382<br>7.4 用DBI模块来开发Web应用 385<br>7.4.1 配置Apache服务器来使用CGI脚本 386<br>7.4.2 CGI.pm模块简介 388<br>7.4.3 从Web脚本连接MySQL服务器 394<br>7.4.4 基于Web的数据库浏览器 397<br>7.4.5 考试记分项目:考试分数浏览器 402<br>7.4.6 美国历史研究会:查找兴趣相同<br>的会员 405<br>第8章 MySQL应用程序设计接口:<br>PHP语言 410<br>8.1 PHP语言概述 411<br>8.1.1 函数与include文件的使用 418<br>8.1.2 一个简单的数据检索页面 422<br>8.1.3 对查询结果进行处理 425<br>8.1.4 返回结果里NULL值的检测 431<br>8.1.5 出错处理 432<br>8.1.6 引号问题 434<br>8.2 PHP脚本实战 435<br>8.2.1 考试记分项目:考试分数的录入 436<br>8.2.2 美国历史研究会:总统生平小测验 449<br>8.2.3 美国历史研究会:会员个人资料的在<br>线修改 454<br>第三部分 MySQL系统管理<br>第9章 MySQL系统管理简介 464<br>9.1 管理职责概述 464<br>9.2 日常管理 465<br>9.3 安全问题 466<br>9.4 数据库修复和维护 467<br>第10章 MySQL的数据目录 468<br>10.1 数据目录的位置 468<br>10.2 数据目录的结构 471<br>10.2.1 MySQL服务器如何提供对数据<br>的访问 472<br>10.2.2 MySQL数据库在文件系统里<br>如何表示 473<br>10.2.3 MySQL数据表在文件系统里<br>如何表示 474<br>10.2.4 SQL语句如何映射为数据表<br>文件操作 475<br>10.2.5 操作系统对数据库和数据表命名<br>的限制 476<br>10.2.6 影响数据表最大尺寸的因素 478<br>10.2.7 数据目录的结构对系统性能<br>的影响 479<br>10.2.8 MySQL状态文件和日志文件 480<br>10.3 重新安置数据目录的内容 483<br>10.3.1 重新安置方法 483<br>10.3.2 评估重新安置的效果 484<br>10.3.3 重新安置整个数据目录 485<br>10.3.4 重新安置一个数据库 485<br>10.3.5 重新安置一个数据表 487<br>10.3.6 重新安置InnoDB表空间 487<br>10.3.7 重新安置状态文件和日志文件 488<br>第11章 MySQL数据库系统的日常管理 489<br>11.1 新MySQL软件的安全措施 489<br>11.1.1 权限表的初始设置情况是怎样的 490<br>11.1.2 为MySQL初始账户设置口令 491<br>11.1.3 为第二个MySQL服务器设置口令 493<br>11.2 安排MySQL服务器的启动和关闭 494<br>11.2.1 在UNIX系统上运行MySQL服务器 494<br>11.2.2 在Windows系统上运行MySQL<br>服务器 498<br>11.2.3 设定MySQL服务器的启动选项 500<br>11.2.4 关闭服务器 501<br>11.2.5 在连接不上MySQL服务器时重新获得<br>对服务器的控制 502<br>11.3 管理MySQL用户账户 504<br>11.3.1 创建MySQL用户账户并进行授权 505<br>11.3.2 收回权限和删除用户 514<br>11.3.3 修改口令或重新设置丢失的口令 515<br>11.4 维护日志文件 515<br>11.4.1 常规查询日志 518<br>11.4.2 慢查询日志 518<br>11.4.3 变更日志 518<br>11.4.4 二进制变更日志和二进制日志<br>索引文件 519<br>11.4.5 错误日志 520<br>11.4.6 日志文件的失效处理 521<br>11.5 其他MySQL服务器配置问题 527<br>11.5.1 对MySQL服务器的连接监听情况<br>进行控制 527<br>11.5.2 激活或者禁用LOAD DATA语句的<br>LOCAL能力 528<br>11.5.3 国际化和本地化问题 528<br>11.5.4 选择数据表处理程序 531<br>11.5.5 配置InnoDB表空间 532<br>11.5.6 优化MySQL服务器 536<br>11.6 运行多个MySQL服务器 540<br>11.6.1 运行多个MySQL服务器需要注意<br>的问题 541<br>11.6.2 配置和编译不同的MySQL服务器 543<br>11.6.3 设定MySQL服务器启动选项<br>的策略 544<br>11.6.4 用mysqld_multi脚本来启动多个<br>MySQL服务器 545<br>11.6.5 在Windows系统上运行多个<br>MySQL服务器 547<br>11.7 设置镜像服务器 549<br>11.7.1 镜像机制概念 549<br>11.7.2 建立主-从镜像关系 550<br>11.8 升级MySQL软件 553<br>第12章 MySQL安全技术 556<br>12.1 内部安全性:防止未经授权的文件<br>系统访问 556<br>12.1.1 如何偷取数据 557<br>12.1.2 保护你的MySQL安装程序 558<br>12.2 外部安全性:防止未经授权的<br>网络访问 564<br>12.2.1 MySQL权限表的结构和内容 564<br>12.2.2 MySQL服务器如何对客户进行<br>访问控制 571<br>12.2.3 一个与权限有关的难题 576<br>12.2.4 应该避免的权限表风险 579<br>12.2.5 不用GRANT语句创建MySQL<br>账户 581<br>12.3 建立加密连接 583<br>第13章 MySQL数据库的备份. 维护<br>和修复 587<br>13.1 与MySQL服务器进行协调 588<br>13.1.1 使用内部锁定机制防止两个操作<br>相互干扰 589<br>13.1.2 使用外部锁定机制防止两个操作<br>相互干扰 592<br>13.2 在灾难发生前做好准备工作 593<br>13.2.1 充分利用MySQL服务器的自动<br>恢复能力 593<br>13.2.2 备份和拷贝数据库 594<br>13.3 数据表修复和数据恢复 602<br>13.3.1 检查和修复数据表 602<br>13.3.2 使用备份恢复数据 609<br>第四部分 附 录<br>附录A 获得并安装有关软件 616<br>附录B 数据列类型指南 633<br>附录C 操作符与函数用法指南 643<br>附录D SQL语法指南 694<br>附录E MySQL程序使用指南 769<br>附录F C API指南 829<br>附录G Perl DBI API指南 864<br>附录H PHP API指南 891<br>附录I 挑选ISP 922
猜您喜欢