PHP与MySQL权威指南的目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP与MySQL权威指南的目录相关的知识,希望对你有一定的参考价值。

参考技术A

推荐序
作者简介
前言
第一部分 准 备 篇
第1章 apache基础
1.1 apache介绍
1.1.1 apache工作原理
1.1.2 apache的特点
1.2 windows下apache的部署
1.2.1 windows下apache的安装和配置
1.2.2 启动、停止和重新启动apache服务
1.2.3 apache支持php语言
1.3 httpd.conf深入剖析
1.3.1 站点的基本配置
1.3.2 服务器优化配置
1.3.3 http响应头的信息配置
1.3.4 持久性连接配置
1.4 日志记录
1.4.1 日志的配置
1.4.2 错误日志
1.4.3 访问日志
1.5 虚拟主机
1.5.1 基于主机名的虚拟主机
1.5.2 基于ip地址的虚拟主机
1.6 url重写
1.6.1 mod_rewrite模块
1.6.2 常用指令
1.7 实战案例
1.7.1 防止图片盗链
1.7.2 apache伪静态
1.7.3 用户访问权限设置
1.8 小结
第2章 php与mysql开发环境的搭建
2.1 在windows上安装iis
2.2 php的安装和配置
2.2.1 在windows下的安装和配置
2.2.2 在linux下的安装和配置
2.3 mysql的安装和配置
2.3.1 windows下的安装和配置
2.3.2 linux下的安装和配置
2.4 php与mysql连接
2.5 小结
第二部分 php篇
第3章 php基础
3.1 php的工作原理
3.2 php的版本变迁
3.3 php的特性
3.4 php的应用范围
3.5 php的基本语法
3.5.1 php 标记
3.5.2 php 中的注释
3.5.3 编写你的第一个php应用
3.6 php中的变量与常量
3.6.1 变量
3.6.2 常量
3.7 表达式
3.7.1 表达式分类
3.7.2 表达式的应用
3.7.3 操作数
3.7.4 操作符
3.8 php中的数据类型
3.8.1 布尔型
3.8.2 整型
3.8.3 字符串
3.8.4 数组
3.8.5 对象
3.8.6 其他类型
3.9 强制类型转换
3.9.1 显式和隐式强制类型转换
3.9.2 有用的强制类型转换函数
3.10 php的语句
3.10.1 循环语句
3.10.2 条件判断语句
3.11 小结
第4章 字符串和正则表达式
4.1 什么是字符串
4.2 定义一个字符串
4.2.1 使用单引号
4.2.2 使用双引号
4.2.3 使用定界符
4.3 获取字符串
4.4 拼接字符串
4.5 字符串的格式化
4.6 修改字母大小写
4.7 计算字符串长度和字符数目
4.8 字符串查找函数
4.8.1 字符串的查找
4.8.2 取得字符串的位置
4.9 字符串的复制和替换
4.9.1 字符串的复制
4.9.2 字符串的替换
4.10 字符串的比较
4.11 正则表达式的概念和语法
4.11.1 基本模式匹配
4.11.2 字符集
4.11.3 重复
4.12 使用正则表达式查找子字符串
4.13 使用正则表达式分割字符串
4.14 小结
第5章 数组
5.1 数组的基本概念
5.1.1 什么是数组
5.1.2 数组操作符
5.2 数字索引数组
5.2.1 数字索引数组的初始化
5.2.2 访问数组的内容
5.2.3 使用循环访问数组
5.3 数组的创建和添加
5.3.1 创建数组
5.3.2 添加数组
5.4 数组元素的添加和删除
5.4.1 在数组头添加元素
5.4.2 在数组尾添加元素
5.4.3 从数组头删除元素
5.4.4 从数组尾删除元素
5.5 数组的遍历
5.6 字符串与数组之间的转换
5.7 多维数组
5.8 数组的排序
5.8.1 sort()和rsort()
5.8.2 asort()和arsort()
5.8.3 ksort()和krsort()
5.8.4 随机排序函数shuffle()
5.8.5 多维数组的排序
5.9 数组判断函数
5.10 数组的合并与拆分
5.10.1 合并函数array_merge()
5.10.2 合并函数array_combine()
5.10.3 拆分函数 array_chunk()
5.10.4 返回数组交集的函数array_intersect()
5.10.5 将数组转换成标量变量
5.11 快速初始化数组
5.11.1 range()函数
5.11.2 array_fill()函数
5.12 在数组中查找值
5.13 定位数组元素
5.13.1 搜索数组
5.13.2 获取数组键
5.13.3 获取数组值
5.14 小结
第6章 php对文件的操作
6.1 打开/关闭文件
6.1.1 打开文件
6.1.2 关闭文件
6.2 读取文件
6.2.1 fread()和file()函数
6.2.2 fpassthru()函数
6.2.3 fgets()和fgetss()函数
6.2.4 fgetcsv()函数
6.3 写入文件
6.4 方便的文件处理函数
6.5 其他文件处理函数
6.6 移动文件指针小案例
6.7 文件锁定
6.8 小结
第7章 php函数与代码的重用性
7.1 定义和调用函数
7.2 参数
7.2.1 按值传递
7.2.2 按引用传递
7.2.3 默认参数值
7.3 函数内的变量范围
7.3.1 局部变量
7.3.2 静态变量
7.3.3 全局变量
7.4 函数的作用域和可用性
7.5 用变量存储函数的名称
7.6 递归函数
7.7 使用和包含文件
7.7.1 include与require 的应用
7.7.2 php模板化
7.8 小结
第8章 面向对象的程序设计
8.1 类和对象的关键概念
8.1.1 类
8.1.2 对象
8.1.3 字段
8.1.4 属性
8.1.5 常量
8.1.6 方法
8.1.7 $this关键字
8.2 构造方法和析构方法
8.2.1 构造方法
8.2.2 析构方法
8.3 静态类成员
8.3.1 静态属性
8.3.2 静态方法
8.4 对象克隆
8.4.1 clone一个对象
8.4.2 _clone()方法
8.5 继承
8.5.1 如何继承一个类
8.5.2 使用parent::关键字
8.5.3 instanceof关键字
8.5.4 覆盖父类的方法
8.6 多态
8.7 抽象类和接口
8.7.1 抽象类
8.7.2 接口
8.7.3 抽象类与接口的区别
8.8 命名空间
8.9 php5中的特殊方法
8.9.1 __tostring()
8.9.2 __autoload()
8.9.3 __get()方法和__set()方法
8.9.4 __call
8.10 小结
第9章 php的错误、异常处理和调试
9.1 常见的错误类型
9.1.1 语法错误
9.1.2 逻辑错误
9.1.3 未定义错误
9.1.4 环境错误
9.1.5 运行错误
9.2 错误处理机制
9.2.1 错误级别列表
9.2.2 错误处理函数
9.2.3 自定义错误页面
9.2.4 错误日志
9.3 异常处理
9.3.1 异常的基本使用
9.3.2 php的基本异常类
9.3.3 try、throw和catch
9.3.4 创建自定义的exception类
9.3.5 多个异常
9.3.6 重新抛出异常
9.3.7 设置顶层异常处理器(top level exception handler)
9.3.8 异常的规则
9.4 使用xdebug进行调试
9.4.1 xdebug的安装
9.4.2 xdebug的使用
9.4.3 xdebug的特制函数
9.5 小结
第10章 php与html的交互
10.1 php和web表单
10.1.1 表单基本操作
10.1.2 表单安全性
10.1.3 常用表单数据的验证方法
10.2 通过php上传文件
10.2.1 php文件上传/资源指令
10.2.2 上传错误消息
10.2.3 php文件上传示例
10.3 小结
第三部分 mysql篇
第11章 mysql部署与基本使用
11.1 mysql概述
11.1.1 mysql为何如此流行
11.1.2 mysql特性
11.2 登录与退出mysql
11.3 创建、删除数据库和用户
11.4 mysql用户管理及权限分配
11.4.1 mysql访问权限系统
11.4.2 设置用户权限
11.4.3 grant和revoke命令
11.5 mysql优化
11.6 小结
第12章 数据库操作:php+mysql
12.1 mysql扩展
12.1.1 数据库连接
12.1.2 向数据库中插入数据
12.2 mysqli扩展
12.2.1 mysqli的面向对象和面向过程编程方式
12.2.2 预准备语句
12.2.3 多查询
12.3 数据库抽象层
12.3.1 pdo
12.3.2 adodb
12.4 小结
第13章 mysql中sql语句的应用
13.1 sql语句的基本应用
13.2 常数列的最大值
13.3 拥有某列最大值的行
13.4 按组排列的最大值
13.5 提取某列在组间的最大值
13.6 使用用户变量
13.7 使用auto_increment
13.8 常用的字符串函数
13.9 常用的日期和时间函数
13.10 导入数据
13.10.1 load data infile
13.10.2 mysqlimport
13.11 导出数据
13.11.1 select into outfile
13.11.2 mysqldump
13.12 小结
第14章 mysql数据库开发
14.1 mysql的数据列类型
14.1.1 数值类型列
14.1.2 字符串类型列
14.2 字符集支持
14.3 索引的使用
14.3.1 数据库索引
14.3.2 主要索引介绍
14.3.3 索引最佳实践
14.4 事务处理
14.4.1 非事务实现方法
14.4.2 事务实现方法
14.5 外键与数据的完整性
14.6 数据库内部语句和语法
14.6.1 alter database语法
14.6.2 alter table语法
14.6.3 create database语法
14.6.4 create index语法
14.6.5 create table语法
14.6.6 drop database语法
14.6.7 drop index语法
14.6.8 drop table语法
14.6.9 rename table语法
14.7 数据库操作语句和语法
14.7.1 delete语法
14.7.2 do语法
14.7.3 handler语法
14.7.4 insert语法
14.7.5 load data infile语法
14.7.6 fields分隔符
14.7.7 replace语法
14.7.8 select语法
14.7.9 truncate语法
14.7.10 update语法
14.7.11 explain语法
14.8 存储过程
14.9 小结
第15章 mysql数据管理
15.1 mysql的分区
15.1.1 range分区
15.1.2 list分区
15.1.3 range和list分区的管理
15.2 mysql的备份
15.3 mysql的恢复
15.4 mysql复制
15.5 小结
第16章 mysql的存储引擎及表类型
16.1 myisam存储引擎
16.1.1 myisam启动选项
16.1.2 损坏的myisam表
16.1.3 未被适当关闭的表的问题
16.2 innodb存储引擎
16.2.1 innodb配置
16.2.2 innodb启动选项
16.2.3 创建innodb表空间
16.2.4 处理innodb初始化问题
16.2.5 备份和恢复innodb数据库
16.2.6 添加和删除innodb数据和日志文件
16.3 merge存储引擎
16.4 memory(heap)存储引擎
16.5 bdb(berkeleydb)存储引擎
16.5.1 bdb支持的操作系统
16.5.2 bdb启动选项
16.6 example存储引擎
16.7 federated存储引擎
16.7.1 federated存储引擎的描述
16.7.2 如何使用federated表
16.7.3 federated存储引擎的局限性
16.8 archive存储引擎
16.9 csv存储引擎
16.10 blackhole存储引擎
16.11 mysql最新版本的功能
16.12 小结
第17章 phpmyadmin
17.1 phpmyadmin的安装与配置
17.1.1 phpmyadmin的安装
17.1.2 phpmyadmin的配置
17.1.3 phpmyadmin配置完成后可能遇到的问题
17.2 phpmyadmin的使用
17.2.1 phpmyadmin的登录
17.2.2 phpmyadmin基本功能介绍
17.2.3 数据库管理
17.2.4 数据表管理
17.2.5 数据记录管理
17.3 小结
第四部分 二次开发实战篇
第18章 smarty应用
18.1 什么是模板引擎
18.2 smarty模板引擎
18.3 smarty的安装及初始化配置
18.3.1 安装smarty
18.3.2 初始化smarty类库的默认设置
18.3.3 程序注释
18.3.4 简单示例
18.4 smarty的使用步骤
18.5 变量使用
18.5.1 模板中输出php分配的变量
18.5.2 使用保留变量
18.6 变量调解器
18.7 模板的控制结构
18.7.1 条件选择结构:if-elseif-else
18.7.2 foreach
18.7.3 section
18.8 smarty缓存
18.8.1 在smarty中控制缓存
18.8.2 每个页面使用多个缓存
18.8.3 为缓存实例消除处理开销
18.8.4 清除缓存
18.8.5 关闭局部缓存
18.9 小结
第19章 zend 系列开发工具
19.1 zend core集成环境
19.1.1 zend core介绍
19.1.2 zend core的安装
19.2 zend optimizer优化器
19.2.1 zend optimizer介绍
19.2.2 zend optimizer的安装
19.2.3 zend optimizer的优化及配置
19.3 zend studio 开发工具
19.3.1 zend studio介绍
19.3.2 zend studio的下载与安装
19.3.3 zend studio功能及组件
19.3.4 zend studio的用户界面
19.3.5 zend studio项目管理
19.4 zend server服务器
19.4.1 zend server简介
19.4.2 zend server安装
19.5 zend guard安全卫士
19.5.1 zend guard简介
19.5.2 zend guard安装
19.5.3 使用zend guard加密文件
19.6 zend platform应用平台
19.6.1 zend platform 概述
19.6.2 zend platform的安装
19.7 小结
第20章 svn版本控制及团队管理
20.1 基本概念
20.1.1 什么是版本控制
20.1.2 什么是 subversion
20.1.3 什么是版本库
20.2 svn服务器的安装与配置
20.2.1 基于svnserve的svn配置
20.2.2 基于apache的svn服务器
20.3 客户端工具tortoisesvn
20.3.1 什么是tortoisesvn
20.3.2 下载与安装tortoisesvn
20.3.3 tortoisesvn使用
20.4 小结
第21章 ucenter开发实战
21.1 ucenter总述
21.1.1 ucenter简介
21.1.2 ucenter安装
21.1.3 使用ucenter
21.2 ucenter源代码分析
21.2.1 ucenter系统架构
21.2.2 ucenter的目录结构
21.2.3 ucenter核心代码:/index.php
21.2.4 ucenter核心代码:/admin.php
21.3 ucenter接口原理
21.3.1 接口函数定义的程序文件/uc_client/client.php
21.3.2 通知接口文件uc.php
21.4 ucenter接口开发实例—读取论坛主题或帖子数量信息
21.5 小结
第22章 discuz! 论坛开发实战
22.1 discuz!总述
22.1.1 discuz!简介
22.1.2 discuz!特性
22.1.3 discuz!安装
22.1.4 使用discuz!
22.2 discuz!的源代码分析
22.2.1 discuz!系统架构
22.2.2 discuz!数据库结构
22.2.3 discuz!的目录及文件结构
22.2.4 discuz!核心代码:/include/common.inc.php
22.2.5 discuz!核心代码:/include/global.func.php
22.2.6 discuz!核心代码:/include/db_mysql.class.php
22.2.7 discuz!核心代码:/include/template.func.php
22.2.8 discuz!核心代码:/include/cache.func.php
22.2.9 discuz!核心代码:/admincp.php
22.3 discuz!的二次开发实例—多语言切换(一)
22.3.1 改造目录结构
22.3.2 修改数据库
22.3.3 修改language()函数
22.3.4 修改template()函数
22.3.5 修改parse_template()函数
22.4 discuz!的二次开发实例—多语言切换(二)
22.4.1 插件模块概述
22.4.2 多语言切换后台管理
22.4.3 获取用户选择或系统设定的语言包信息
22.4.4 制作语言包切换菜单
22.4.5 编写插件语言包
22.5 小结
第23章 ucenter home sns系统开发实战
23.1 ucenter home总述
23.1.1 ucenter home简介
23.1.2 ucenter home的安装
23.1.3 ucenter home的使用
23.2 ucenter home源代码分析
23.2.1 ucenter home目录及文件结构
23.2.2 核心代码:/source/common.php
23.2.3 核心代码:/source/function_common.php
23.2.4 核心代码:/source/class_mysql.php
23.2.5 核心代码: /do.php
23.3 ucenter home的内部机制
23.3.1 ucenter home模板机制
23.3.2 ucenter home缓存机制
23.3.3 ucenter home登录验证机制
23.3.4 ucenter home道具机制
23.3.5 ucenter home任务的计划机制
23.3.6 ucenter home动态机制
23.3.7 ucenter home评论机制
23.3.8 ucenter home权限机制
23.4 ucenter home的二次开发实例—《记账本》插件
23.4.1 《记账本》代码设计
23.4.2 《记账本》插件的安装说明
23.5 小结
第24章 shopnc多用户商城开发实战
24.1 shopnc总述
24.1.1 shopnc综合多用户商城系统简介
24.1.2 shopnc的安装
24.2 shopnc多用户商城的源代码分析
24.2.1 shopnc多用户商城的系统特性
24.2.2 shopnc系统结构
24.2.3 shopnc模板引擎
24.2.4 核心模块的简要说明
24.2.5 核心模块的详细描述
24.2.6 核心模块的使用说明
24.3 shopnc插件的开发
24.4 shopnc支付接口
24.5 shopnc商品页静态化
24.6 shopnc商品图片上传
24.7 小结
第25章 phpcms v9内容管理系统开发实战
25.1 phpcms v9总述
25.1.1 phpcms简介
25.1.2 phpcms v9的新特性
25.1.3 phpcms v9的安装
25.2 phpcms源码分析
25.2.1 目录及文件结构
25.2.2 模板语法规则
25.3 phpcms v9二次开发介绍
25.3.1 开发接口概述
25.3.2 系统类库与函数库的调用
25.3.3 理解模块和控制器
25.3.4 二次开发的命名规范
25.3.5 二次开发的流程
25.3.6 二次开发技巧
25.4 pc标签的使用说明
25.4.1 pc标签概述
25.4.2 pc标签的语法
25.4.3 pc标签的保留参数
25.4.4 pc标签数据的显示
25.4.5 pc标签的分类
25.4.6 pc标签工具箱
25.5 phpcms和ucenter的整合
25.5.1 phpsso简介
25.5.2 phpsso与ucenter的整合
25.5.3 phpsso与ucenter整合的常见问题
25.6 phpcms二次开发实例—留言本
25.6.1 需求分析
25.6.2 数据库和数据表的设计
25.6.3 创建模块目录
25.6.4 创建数据模型类文件
25.6.5 开发模块控制器和函数
25.7 小结
附录a comsenz产品开发—ucenter 1.5 数据字典
附录b discuz! 7.0.0 数据字典
附录c uc home 2.0数据字典
附录d shopnc 2.0数据字典
附录e phpcms v9数据字典
后记

《php与mysql权威指南》第三部分02

第14章 mysql数据库开发
14.1 mysql数据类型
  1.数值类型:
    五种整型:tinyint,smallint,mediumint,int,bigint分别为1,2,3,4,8字节数
    三种浮点型:float,double,decimal分别4,8,m字节
    # 声明一个整数类型时,要给它指定一个显示宽度,只是以多少宽度显示,并不是数值的款单,所占空间是固定的,例如bigint(4),显示设置为4,所占还是8个字节,最大取值不变
  2.字符串类型
    char(M);//m个字节,其中0<=m<=255
    varchar(M);//L+1个字节,其中L<=M,且0<=m<=255
    binary(M);//m个字节,其中0<=m<=255
    varbinary(M);//L+1个字节,其中L<=M,且0<=m<=255
    tinyblob,tinytext;//L+1个字节,其中L<28
    blob,text;//L+2个字节,其中L<216
    mediumblob,mediumtext;//L+3个字节,其中L<224
    longblob,longtext;//L+4个字节,其中L<232
    enum(v1,v2,...);//1或2个字节,取决于枚举的个数
    set(v1,v2,...);//1,2,3,4,8个字节,取决于set成员数目
    # char是固定长度类型,varchar是可变长度类型
    # set与enum区别:set允许成员同事出现,enum只允许出现一个成员
14.2 字符集支持
  查看支持的字符集:show character set;
  查找名字以utf8开头的校对规则:show collation like ‘utf8%‘;
  # ci(大小写不敏感),cs(大小写敏感),bin(二元)
14.3 索引的使用
  myISAM表,数据行存放在数据文件里,索引值放在索引文件里。InnoDB->索引是排好序的数组,数据行与索引值存放在同一个文件里,同一个表空间中
  1.数据库索引
    优点:查询优化,唯一性,文本搜索
  2.主要索引介绍
    主键索引:
    唯一索引:
    常规索引:
    全文索引:
    # 每个表只能有一个主键索引,可以有多个唯一索引
    # 缺点:占用磁盘的空间多,降低插入更新和删除的操作速度
  3.最佳实践
    只对where和order需要的列添加索引
    创建index(first,last)就再不要创建index(first)索引
    索引列not null
    不适用索引的查询,使用选项-log-long-format来记录日志,然后检查日志文件对查询进行优化
    explain语句有助于确定mysql如何执行查询
    # explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句
    最好使用唯一索引
    索引长度尽量短
    充分利用左侧前缀(复合索引)
    索引不宜过多
    查看日志
  4.新建索引:create index index_name on table (field1,field2);
14.4 事务处理
  事务开始、提交、回滚
  原则:原子性,一致性,隔离性,持久性
  # InnoDB支持事务
  1.非事务实现方法:缩影数据表
    lock_tables/unlock tables
  2.事务实现方法
    begin/commit/rollback
    set autocommit=1;//开启自动提交,set autocommit=0;//关闭自动提交,默认开启
14.5 外键与数据的完整性
  外键:是把一个表中的索引列与另一个表中的索引列关联起来
    foreign key (‘index_name‘) referrences ‘tbl_name‘ (‘index_columns‘) [on delete action][on update action]
    # 其中index_name为字表的外键字段名,tbl_name为父表名称,index_columns为外键所关联的父表字段
    # on delete说明当父表记录被删除时,子表的变化,有如下值:
      on delete casecade->与之关联的子表记录也被删除
      on delete set null->与之关联的子表外键被设置成null
      on delete no action->产生错误并回滚delete语句
    # on update说明当父表记录被更改时,子表的变化,有如下值
      on update casecade->与之关联的子表外键也被更改
      on update set null->与之关联的子表外键被设置成null
      on update no action->产生错误并回滚update语句
    //构成外键关系的父表和子表必需是被索引的
    //父表索引与子表索引相对应的数据列的类型必需是兼容的
14.6 数据库内部语句和语法
  1.alter {database|schema}[db_name] alter_specification[,alter_specification1]...
  其中alter_specification->[default] charater set charset_name|[default] collate set collation_name
  2.alter [ignore] table tbl_name alter_specification
  其中alter_specification常用功能如下:
    1)添加列:alter table tbl_name add [column] column_definition
    2)添加索引:alter table tbl_name add [index|primary key|fulltext] [index_name] [index_type] [index_col_name,...] ,其中索引类型如下
      A.index->基本索引
      B.unique->唯一索引
      C.primary key->主键索引
      D.fulltext->全文本搜索
    3)增加外键:alter table tbl_name add foreign key [index_name] [index_col_name,...];//只有InnoDB支持外键
    4)更改表信息:alter table tbl_name change old_col_nmae column_definition
    5)删除表信息:alter table tbl_name drop...
    6)停止更新、重新创建索引(disable keys/enable keys):在大量插入|更新操作前建议先禁用索引,完成后重新创建索引
    7)分区:
      create table t1(
      id int ,
      year_col int
      )
      partition by range(year_col)(
      partition p0 values less then (1991),
      partition p1 values less then (1995),
      partition p2 values less then (2000),
      );
      //新增分区
      alter table t1 add partition p3 values less then (2002);
      //删除分区
      alter table drop partition p0,p1;
      # 删除时分区内的数据也被取消
  3.创建数据库:create database {database|schema} [if not exists] db_name[(create_specification)]
  4.创建索引:create [unique|fulltext|spartial] index index_name [using index_type] on tbl_name(index_col_name),其中  index_col_name->col_name[(length)][asc|desc]
  5.创建表:create [temporary] table [if not exist] tb_name (...)
  6.删除数据库:drop databese [if exists] db_name
  7.删除索引:drop inde index_name on tb_name
  8.删除表:drop [temporary] table [if exists] tb_name,tb_name2...
  9.重命名表:rename tb_name to new_tb_name,tb_name2 to new_2;
14.7 数据库操作语句和语法
  1.删除
    delete from tb_name where...
    delete ta_name[.*][,tb_name2[.*]...] from table_references where;
    delete from ta_name[.*][,tb_name2[.*]...] using table_references where...;
  2.do:指定表达式,不返回任何结果
    示例:do get_lock(‘str‘,10)
  3.handler语法:提供通往表存储引擎接口的直接通道
    handler tb_name open [as alias] # 打开一个表
    handler tb_name read index_name {= | >= | <= | <} (values1,...) where...limit.. # 建立读取表的通道
    handler tb_name read index_name {first|next|prev|last} where...limit...
    handler tb_name read index_name {first|next} where...limit...
    handler tb_name close #关闭
  4.insert
    insert into tb_name (field1,field2..)values(v1,v2)
    insert into tb_name set filed=v1,filed2=v2...
    insert into tb_name select
  5.load data infile将信息从一个文本文件中告诉的读入表中
    6.select * from tb_name,join,group by,order by,limit,having,like,and,in,not in,or,any,between,union
  7.truncate [table] tb_name:删除表再创建表,多用于清空
  8.update
  9.explain tb_name|explain select ...:显示表结构|解释如何执行select语句
14.8 存储过程:为了完成特定功能、经编译后存储在数据库中sql语句集,用户通过指定存储过程的名字并给出参数来执行
  优点:灵活性、一致性、高效性、安全性
  1.创建:
    create procedure sp_name([proc_parameter[,..]])
    begin
    satement block
    end
    示例:
      -----
      mysql>create procedure sp(in inputid int)//有in out inout三种类型,in传入参数,out向存储过程外传出参数,inout传入修改后传出,inputid为参数名,int为参数类型
      begin
        select * from nc_product where p_id=inputid
      end
      mysql>delimiter;
      -----
  2.调用存储过程:call sp_name()
    示例:call sp(1)
  3.删除存储过程;dtop procedure sp_name
  4.show procedure status:显示数据库中所有存储过程的基本信息;show create procedure sp_name:用来显示某个存储过程的详细信息
第15章 mysql数据管理
15.1 mysql分区
  水平分区:对表的行进行分区
  垂直分区:通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区,每个分区都包含了其中的列所对应的行
  一般都采取水平分区,其中水平分区还包括如下分区
    1.range(范围)分区:允许DBA将数据划分为不同的范围
    示例:
      -----
      create table employees(
      id int not null,
      fname varchar(30),
      lname varchar(30),
      ...
      strore_id int not null,
      )
      partition by range(store_id)(
      partition p0 valuse less then (11),
      partition p1 valuse less then (16),
      partition p2 valuse less then (21),
      partition p3 valuse less then (26),
      )
      -----
      # 当需要删除旧的数据时
      # 想要使用一个包含有日期或时间值或者包含有从一些其他级数开始增长的值的列
      # 经常运行直接一来分割表的查询
      # 删除分区: alter table employees drop partition p2;
      # 新增分区: alter table employees add partition (partition p4 values less than (31));
      # 往前新增分区:alter table employees reorganize partition p0 into (partition s0 values less than (6),partition s1 values less than (11));
    2.list(预定义列表)分区:允许通过dba定义的列表的值所对应的行数据进行分割
    示例:
      -----
      create table employees(
      id int not null,
      fname varchar(30),
      lname varchar(30),
      ...
      strore_id int not null,
      )
      partition by range(store_id)(
        partition pe valuse in (1,3,5,7),
        partition pn valuse less then (2,4,6,8),
        partition pw valuse less then (9,11,13),
        partition pc valuse less then (10,12,14),
      );
      # 与地区相关
      -----
    3.hash(哈希)分区:允许DBA通过对表的一个或多个列的hash key进行计算,最后通过这个hash码来对不同数据区域进行分区,例如可以建立一个对表的主键进行分区的表
    4.key(键值)分区:是hash模式的延伸,这里的hash key是由mysql系统产生的
    5.composite(复合模式)分区:以上模式分区的组合
      好处:提升新能、简化数据管理
15.2 mysql的备份
  mysqldump [options] db_name tables>filename;
  mysqldump [options] ---database db1 [db2...]>filename;
  mysqldump [options] --all--database>filename;
  # 其中[options]代表-h host -u root -p paswd
15.3 mysql恢复
  导入文件:mysql -u root -p < filename
15.4 mysql复制:单向复制和异步复制
  主从异步复制的配置如下:
  master:192.168.0.3
  slave:192.168.0.4
  database:db_shopnc
  1.在master服务器中启动mysql
    1)在主服务器上为服务器设置一个连接账户。该账户需授予replication slave的权限
      ---
      mysql>grant replication slave on *.* [email protected] identified by ‘password‘;
      mysql>flush privileges;
      ---
    2)请空所有表和块写入语句
      ---
      mysql>flush tables with read lock;
      ---
    3)重新打开已终端,备份想要复制的数据
      ---
      tar zcxf db_shopnc.tar.gz /opt/mysql/var/db_shopnc/
      scp db_shopnc.tar.gz 192.168.0.4:opt/mysql/var/ //将主服务器的库传到slave相应的路径下
      ---
    4)返回上一个终端,读取主服务器上当前的二进制日志名和偏移量值
      ---
      mysql>show master status;
      ---
    5)给数据库解锁
      ---
      mysql>unlock tables;
      ---
    6)编辑mysql配置文件
      [mysqld]
      log-bin=myskq-bin
      server-id=1
      binlog-do-db=db_shopnc
  2.slave服务器配置
    1)将从master中备份的库解压到相应路径下
    2)修改my.cnf后,代码如下
      server-id=2
      master-hot=192.168.0.3
      master-user=replication
      master-password=password
      log-bin=
      # 每个从服务器有唯一的server-id的值,且必须与主服务器及其他从服务器的值不同
  3.重启master和slave的mysql服务
    1)先启动master,再启动slave
    2)slave服务器重启登录mysql
      ---
      mysql>stop slave;
      mysql>change master to master_host=192.168.0.3,master_user=‘replication‘,master_pawword=‘password‘,master_log_file=‘mysql-bin.000014‘,master_log_pos=98;
      mysql>start slave;
      mysql>show slave statusG;
      ...
      slave_io_running:yes
      slave_sql_running:yes
      ...
      ---
      # 两个参数为yes时,证明主从复制成功
第16章 Mysql的存储引擎及表类型
  支持多个存储引擎为不同类型的处理器。从对事务支持的角度划分,mysql存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎:
    MyISAM管理非事务表
    memory存储引擎可以提供‘内存中‘表
    InnoDB和BOB存储引擎提供事务安全表
    example存储引擎是一个‘存根‘引擎
    NDB是被mysql cluster 用来实现分割到许多台计算机上的表的存储引擎
    acheive存储引擎非常适合存储大量的、独立的、作为历史记录的数据
    csv存储引擎将数据以逗号分隔的格式存储在文本文件中
    blackhol存储引擎接收单不存储数据,并且检索总是返回一个空集
    federated存储引擎将数据存储在远程数据库中
  engine|type定义存储引擎,默认为MyISAM
  mysql总是创建一个.frm文件来保持表和列的定义
  事务安全表(TST)比起非事务安全表(NTST)优势如下:更安全;可以合并许多语句并用commit语句同时全部接受;可以执行rollback来忽略你的改变;如果更新失败所有改变恢复到初始状态;事务安全存储引擎可以更好的保持数据完整性;
非事务安全的优势如下:更快;需要更少的磁盘空间;执行更新需要更少的内存
16.1 MyISAM
  三个文件:表名文件,扩展名指出文件类型,.frm文件存储表定义。数据文件的扩展名为.myd,索引文件的扩展名为.myi。
  特征:所有数据值先存储低字节,数据库与操作系统分离;先存储数据低字节并不影响速度;支持大文件的文件系统和操作系统;当删除、更新和插入混合时,动态尺寸的行碎片更少;每个MyISAM的最大索引数是64;最大的键长度是1000字节;blob和text可以被索引;在索引的列中允许null,其占每个键0-1个字节;当记录以排好序的顺序插入,索引树被劈开以便高节点仅包含一个键,改善了索引树的空间利用率;可以把数据文件和索引文件放在不同的目录中;每个字符列都可以有不同的字符集
  1.启动选项
    设置为崩溃时MyISAM表自动回复的模式:--myisam-recover=mode
    用在块插入优化中的树缓冲区的大小:bulk_insert_buffer_size
    myisam_max_sort_file_size:索引缓冲区大小
    myisam_sort_buffer_size:设置恢复表时使用的缓冲区的尺寸
  2.损坏的myisam表
  3.未被适当关闭的表的问题
16.2 InnoDB存储引擎:提供事务
  1.配置:
    Innodb_data_file_path=datafile_spec1[;datafile_spec2]..
  2.启动选项:
  3.创建innodb表空间
    create table customers (a int,b char(20),index(a))engine=innodb
    create table customers (a int,b char(20),index(a))type=innodb
  4.处理innodb初始化问题
    没创建一个innodb数据文件目录或innodb日志目录
    mysqld没有访问这些目录的权限创建文件
    mysqld不能恰当的读取my.ini或my.cnf选项文件,因此不能看到指定的选项
    磁盘已满或超出磁盘配额
    已经创建一个子目录,名字与指定的数据文件相同
    innodb_data_home_dir或innodb_data_file_path中有一个语法错误
  5.备份和恢复innodb
    手动备份:关闭服务器-》福之所有数据文件-》复制所有ib_logfile文件到一个安全的地方-》复制my.cnf配置文件到一个安全的地方-》为innodb表复制.frm文件到一个安全的地方----》周期性的mysqldump转储数据库
  6. 添加和删除innodb数据和日志文件
16.3 merge存储引擎
16.4 memory(heap)存储引擎
16.5 bob(berkeleyDB)存储引擎
...
第17章 phpMyAdmin-->图形化管理工具
17.1 安装与配置
17.2 使用






















































































































































































































































































































以上是关于PHP与MySQL权威指南的目录的主要内容,如果未能解决你的问题,请参考以下文章

《SQL权威指南第4版》中文PDF+英文PDF+《MySQL5权威指南第3版》中文PDF+英文PDF

JavaScript权威指南 清晰版

《Ansible权威指南》目录及技术与运营的“掐架”

Android编程权威指南的目录

Android开发权威指南的图书目录

Git权威指南的目录