展开全部

主编推荐语

本书通过大量实用的操作案例,详细讲解MySQL 8.x数据库操作方法和技巧。

内容简介

本书共分25章。主要内容包括MySQL 8.x的安装与配置、数据库和数据表基本操作、数据类型和运算符、MySQL函数、数据的增删改查、索引的设计和使用、存储过程和函数、视图、触发器、存储引擎的选择、分区和事务控制、性能优化、锁定机制、服务器性能优化、性能监控、数据备份与还原、日志、权限与安全管理、高可用架构、复制、MySQL Utilities、MySQL Proxy。

最后通过两个案例系统的数据库设计,进一步讲解MySQL在系统开发中的应用。

本书适合MySQL数据库初学者、MySQL数据库开发人员和MySQL数据库管理员,同时也能作为高等院校相关专业师生的教学用书。

目录

  • 版权信息
  • 内容简介
  • 前言
  • 第1章 MySQL的安装与配置
  • 1.1 什么是MySQL
  • 1.1.1 客户端/服务器软件
  • 1.1.2 MySQL版本
  • 1.2 Windows平台下安装与配置MySQL 8.0
  • 1.2.1 安装MySQL 8.0
  • 1.2.2 配置MySQL 8.0
  • 1.3 启动服务并登录MySQL数据库
  • 1.3.1 启动MySQL服务
  • 1.3.2 登录MySQL数据库
  • 1.3.3 配置Path变量
  • 1.4 MySQL常用图形管理工具
  • 1.5 Linux平台下安装与配置MySQL 8.0
  • 1.5.1 Linux操作系统下的MySQL版本介绍
  • 1.5.2 安装和配置MySQL的RPM包
  • 1.5.3 安装和配置MySQL的源码包
  • 第2章 数据库和数据表的基本操作
  • 2.1 创建数据库
  • 2.2 删除数据库
  • 2.3 创建数据表
  • 2.3.1 创建表的语法形式
  • 2.3.2 使用主键约束
  • 2.3.3 使用外键约束
  • 2.3.4 使用非空约束
  • 2.3.5 使用唯一性约束
  • 2.3.6 使用默认约束
  • 2.3.7 设置表的属性值自动增加
  • 2.4 查看数据表结构
  • 2.4.1 查看表基本结构语句DESCRIBE
  • 2.4.2 查看表详细结构语句SHOW CREATE TABLE
  • 2.5 修改数据表
  • 2.5.1 修改表名
  • 2.5.2 修改字段的数据类型
  • 2.5.3 修改字段名
  • 2.5.4 添加字段
  • 2.5.5 删除字段
  • 2.5.6 修改字段的排列位置
  • 2.5.7 删除表的外键约束
  • 2.6 删除数据表
  • 2.6.1 删除没有被关联的表
  • 2.6.2 删除被其他表关联的主表
  • 第3章 数据类型和运算符
  • 3.1 MySQL数据类型介绍
  • 3.1.1 整数类型
  • 3.1.2 小数类型
  • 3.1.3 日期与时间类型
  • 3.1.4 文本字符串类型
  • 3.1.5 二进制字符串类型
  • 3.2 如何选择数据类型
  • 3.3 常见运算符介绍
  • 3.3.1 运算符概述
  • 3.3.2 算术运算符
  • 3.3.3 比较运算符
  • 3.3.4 逻辑运算符
  • 3.3.5 位运算符
  • 3.3.6 运算符的优先级
  • 第4章 MySQL函数
  • 4.1 MySQL函数简介
  • 4.2 数学函数
  • 4.2.1 绝对值函数ABS(x)和返回圆周率的函数PI()
  • 4.2.2 平方根函数SQRT(x)和求余函数MOD(x,y)
  • 4.2.3 获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x)
  • 4.2.4 获取随机数的函数RAND()和RAND(x)
  • 4.2.5 函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)
  • 4.2.6 符号函数SIGN(x)
  • 4.2.7 幂运算函数POW(x,y)、POWER(x,y)和EXP(x)
  • 4.2.8 对数运算函数LOG(x)和LOG10(x)
  • 4.2.9 角度与弧度相互转换的函数RADIANS(x)和DEGREES(x)
  • 4.2.10 正弦函数SIN(x)和反正弦函数ASIN(x)
  • 4.2.11 余弦函数COS(x)和反余弦函数ACOS(x)
  • 4.2.12 正切函数、反正切函数和余切函数
  • 4.3 字符串函数
  • 4.3.1 计算字符串字符数的函数和字符串长度的函数
  • 4.3.2 合并字符串函数CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…)
  • 4.3.3 替换字符串的函数INSERT(s1,x,len,s2)
  • 4.3.4 字母大小写转换函数
  • 4.3.5 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)
  • 4.3.6 填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)
  • 4.3.7 删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)
  • 4.3.8 删除指定字符串的函数TRIM(s1 FROM s)
  • 4.3.9 重复生成字符串的函数REPEAT(s,n)
  • 4.3.10 空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)
  • 4.3.11 比较字符串大小的函数STRCMP(s1,s2)
  • 4.3.12 获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)
  • 4.3.13 匹配子串开始位置的函数
  • 4.3.14 字符串逆序的函数REVERSE(s)
  • 4.3.15 返回指定位置的字符串的函数
  • 4.3.16 返回指定字符串位置的函数FIELD(s,s1,s2,…,sn)
  • 4.3.17 返回子串位置的函数FIND_IN_SET(s1,s2)
  • 4.3.18 选取字符串的函数MAKE_SET(x,s1,s2,…,sn)
  • 4.4 日期和时间函数
  • 4.4.1 获取当前日期的函数和获取当前时间的函数
  • 4.4.2 获取当前日期和时间的函数
  • 4.4.3 UNIX时间戳函数
  • 4.4.4 返回UTC日期的函数和返回UTC时间的函数
  • 4.4.5 获取月份的函数MONTH(date)和MONTHNAME(date)
  • 4.4.6 获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)
  • 4.4.7 获取星期数的函数WEEK(d)和WEEKOFYEAR(d)
  • 4.4.8 获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)
  • 4.4.9 获取年份、季度、小时、分钟和秒钟的函数
  • 4.4.10 获取日期的指定值的函数EXTRACT(type FROM date)
  • 4.4.11 时间和秒钟转换的函数
  • 4.4.12 计算日期和时间的函数
  • 4.4.13 将日期和时间格式化的函数
  • 4.5 条件判断函数
  • 4.5.1 IF(expr,v1,v2)函数
  • 4.5.2 IFNULL(v1,v2)函数
  • 4.5.3 CASE函数
  • 4.6 系统信息函数
  • 4.6.1 获取MySQL版本号、连接数和数据库名的函数
  • 4.6.2 获取用户名的函数
  • 4.6.3 获取字符串的字符集和排序方式的函数
  • 4.6.4 获取最后一个自动生成的ID值的函数
  • 4.7 加密函数
  • 4.7.1 加密函数MD5(str)
  • 4.7.2 加密函数SHA(str)
  • 4.7.3 加密函数SHA2(str, hash_length)
  • 4.8 其他函数
  • 4.8.1 格式化函数FORMAT(x,n)
  • 4.8.2 不同进制的数字进行转换的函数
  • 4.8.3 IP地址与数字相互转换的函数
  • 4.8.4 加锁函数和解锁函数
  • 4.8.5 重复执行指定操作的函数
  • 4.8.6 改变字符集的函数
  • 4.8.7 改变数据类型的函数
  • 4.9 窗口函数
  • 第5章 查询数据
  • 5.1 基本查询语句
  • 5.2 单表查询
  • 5.2.1 查询所有字段
  • 5.2.2 查询指定字段
  • 5.2.3 查询指定记录
  • 5.2.4 带IN关键字的查询
  • 5.2.5 带BETWEEN…AND…的范围查询
  • 5.2.6 带LIKE的字符匹配查询
  • 5.2.7 查询空值
  • 5.2.8 带AND的多条件查询
  • 5.2.9 带OR的多条件查询
  • 5.2.10 查询结果不重复
  • 5.2.11 对查询结果排序
  • 5.2.12 分组查询
  • 5.2.13 使用LIMIT限制查询结果的数量
  • 5.3 使用集合函数查询
  • 5.3.1 COUNT()函数
  • 5.3.2 SUM()函数
  • 5.3.3 AVG()函数
  • 5.3.4 MAX()函数
  • 5.3.5 MIN()函数
  • 5.4 连接查询
  • 5.4.1 内连接查询
  • 5.4.2 外连接查询
  • 5.4.3 复合条件连接查询
  • 5.5 子查询
  • 5.5.1 带ANY、SOME关键字的子查询
  • 5.5.2 带ALL关键字的子查询
  • 5.5.3 带EXISTS关键字的子查询
  • 5.5.4 带IN关键字的子查询
  • 5.5.5 带比较运算符的子查询
  • 5.6 合并查询结果
  • 5.7 为表和字段取别名
  • 5.7.1 为表取别名
  • 5.7.2 为字段取别名
  • 5.8 使用正则表达式查询
  • 5.8.1 查询以特定字符或字符串开头的记录
  • 5.8.2 查询以特定字符或字符串结尾的记录
  • 5.8.3 用符号“.”来替代字符串中的任意一个字符
  • 5.8.4 使用“*”和“+”来匹配多个字符
  • 5.8.5 匹配指定字符串
  • 5.8.6 匹配指定字符中的任意一个
  • 5.8.7 匹配指定字符以外的字符
  • 5.8.8 使用{n,}或者{n,m}来指定字符串连续出现的次数
  • 5.9 通用表表达式
  • 第6章 插入、更新与删除数据
  • 6.1 插入数据
  • 6.1.1 为表的所有字段插入数据
  • 6.1.2 为表的指定字段插入数据
  • 6.1.3 同时插入多条记录
  • 6.1.4 将查询结果插入到表中
  • 6.2 更新数据
  • 6.3 删除数据
  • 6.4 为表增加计算列
  • 6.5 DDL的原子化
  • 第7章 索引的设计和使用
  • 7.1 索引简介
  • 7.1.1 索引的含义和特点
  • 7.1.2 索引的分类
  • 7.1.3 索引的设计原则
  • 7.2 创建索引
  • 7.2.1 创建表的时候创建索引
  • 7.2.2 在已经存在的表上创建索引
  • 7.3 删除索引
  • 7.4 统计直方图
  • 7.4.1 直方图的优点
  • 7.4.2 直方图的基本操作
  • 第8章 存储过程和函数
  • 8.1 创建存储过程和函数
  • 8.1.1 创建存储过程
  • 8.1.2 创建存储函数
  • 8.1.3 变量的使用
  • 8.1.4 定义条件和处理程序
  • 8.1.5 光标的使用
  • 8.1.6 流程控制的使用
  • 8.2 调用存储过程和函数
  • 8.2.1 调用存储过程
  • 8.2.2 调用存储函数
  • 8.3 查看存储过程和函数
  • 8.3.1 使用SHOW STATUS语句查看存储过程和函数的状态
  • 8.3.2 使用SHOW CREATE语句查看存储过程和函数的定义
  • 8.3.3 从information_schema.Routines表中查看存储过程和函数的信息
  • 8.4 修改存储过程和函数
  • 8.5 删除存储过程和函数
  • 8.6 全局变量的持久化
  • 第9章 视 图
  • 9.1 视图概述
  • 9.1.1 视图的含义
  • 9.1.2 视图的作用
  • 9.2 创建视图
  • 9.2.1 创建视图的语法形式
  • 9.2.2 在单表上创建视图
  • 9.2.3 在多表上创建视图
  • 9.3 查看视图
  • 9.3.1 使用DESCRIBE语句查看视图基本信息
  • 9.3.2 使用SHOW TABLE STATUS语句查看视图基本信息
  • 9.3.3 使用SHOW CREATE VIEW语句查看视图详细信息
  • 9.3.4 在views表中查看视图详细信息
  • 9.4 修改视图
  • 9.4.1 使用CREATE OR REPLACE VIEW语句修改视图
  • 9.4.2 使用ALTER语句修改视图
  • 9.5 更新视图
  • 9.6 删除视图
  • 第10章 MySQL触发器
  • 10.1 创建触发器
  • 10.1.1 创建只有一个执行语句的触发器
  • 10.1.2 创建有多个执行语句的触发器
  • 10.2 查看触发器
  • 10.2.1 利用SHOW TRIGGERS语句查看触发器信息
  • 10.2.2 在triggers表中查看触发器信息
  • 10.3 触发器的使用
  • 10.4 删除触发器
  • 第11章 存储引擎的选择
  • 11.1 MySQL的架构
  • 11.1.1 MySQL物理文件的组成
  • 11.1.2 MySQL各逻辑块简介
  • 11.1.3 MySQL各逻辑块协调工作
  • 11.2 MySQL存储引擎简介
  • 11.3 更改数据表的存储引擎
  • 11.4 各种存储引擎的特性
  • 11.4.1 MyISAM
  • 11.4.2 InnoDB存储引擎
  • 11.4.3 MEMORY
  • 11.4.4 MERGE
  • 11.5 选择合适的存储引擎
  • 第12章 MySQL分区和事务控制
  • 12.1 合并表
  • 12.2 分区表
  • 12.2.1 认识分区表
  • 12.2.2 RANGE分区
  • 12.2.3 LIST分区
  • 12.2.4 HASH分区
  • 12.2.5 线性HASH分区
  • 12.2.6 KEY分区
  • 12.2.7 复合分区
  • 12.3 事务控制
  • 12.4 MySQL分布式事务
  • 12.4.1 分布式事务的原理
  • 12.4.2 分布式事务的语法
  • 第13章 MySQL性能优化
  • 13.1 优化简介
  • 13.2 优化查询
  • 13.2.1 分析查询语句
  • 13.2.2 索引对查询速度的影响
  • 13.2.3 使用索引查询
  • 13.2.4 优化子查询
  • 13.3 优化数据库结构
  • 13.3.1 将字段很多的表分解成多个表
  • 13.3.2 增加中间表
  • 13.3.3 增加冗余字段
  • 13.3.4 优化插入记录的速度
  • 13.3.5 分析表、检查表和优化表
  • 13.4 临时表性能优化
  • 13.5 创建全局通用表空间
  • 13.6 隐藏和显示索引
  • 第14章 MySQL的锁定机制
  • 14.1 认识MySQL的锁定机制
  • 14.2 MyISAM的锁定机制
  • 14.2.1 MyISAM表级锁的锁模式
  • 14.2.2 获取MyISAM表级锁的争用情况
  • 14.2.3 MyISAM表级锁加锁方法
  • 14.2.4 MyISAM Concurrent Insert的特性
  • 14.2.5 MyISAM表锁优化建议
  • 14.3 InnoDB的锁定机制
  • 14.3.1 InnoDB行级锁模式
  • 14.3.2 获取InnoDB行级锁的争用情况
  • 14.3.3 InnoDB行级锁的实现方法
  • 14.3.4 间隙锁(Net-Key锁)
  • 14.3.5 InnoDB在不同隔离级别下加锁的差异
  • 14.3.6 InnoDB 存储引擎中的死锁
  • 14.3.7 InnoDB行级锁优化建议
  • 14.4 跳过锁等待
  • 第15章 MySQL服务器性能优化
  • 15.1 优化MySQL服务器简介
  • 15.1.1 优化服务器硬件
  • 15.1.2 优化MySQL的参数
  • 15.2 影响MySQL性能的重要参数
  • 15.2.1 查看性能参数的方法
  • 15.2.2 key_buffer_size的设置
  • 15.2.3 内存参数的设置
  • 15.2.4 日志和事务参数的设置
  • 15.2.5 存储和I/O相关参数的设置
  • 15.2.6 其他重要参数的设置
  • 15.3 MySQL日志设置优化
  • 15.4 MySQL I/O设置优化
  • 15.5 MySQL并发设置优化
  • 15.6 服务器语句超时处理
  • 15.7 线程和临时表的优化
  • 15.7.1 线程的优化
  • 15.7.2 临时表的优化
  • 15.8 增加资源组
  • 第16章 MySQL性能监控
  • 16.1 基本监控系统方法
  • 16.1.1 ps命令
  • 16.1.2 top命令
  • 16.1.3 vmstat命令
  • 16.1.4 mytop命令
  • 16.1.5 sysstat工具
  • 16.2 开源监控利器Nagios实战
  • 16.2.1 安装Nagios之前的准备工作
  • 16.2.2 安装Nagios主程序
  • 16.2.3 整合Nagios到Apache服务
  • 16.2.4 安装Nagios插件包
  • 16.2.5 监控服务器的CPU、负载、磁盘I/O使用情况
  • 16.2.6 配置Nagios监控MySQL服务器
  • 16.3 MySQL监控利器Cacti实战
  • 16.3.1 Cacti工具的安装
  • 16.3.2 Cacti监控MySQL服务器
  • 第17章 数据备份与恢复
  • 17.1 数据备份
  • 17.1.1 使用mysqldump命令备份
  • 17.1.2 直接复制整个数据库目录
  • 17.1.3 使用mysqlhotcopy工具快速备份
  • 17.2 数据恢复
  • 17.2.1 使用MySQL命令恢复
  • 17.2.2 直接复制到数据库目录
  • 17.2.3 mysqlhotcopy快速恢复
  • 17.3 数据库迁移
  • 17.3.1 相同版本的MySQL数据库之间的迁移
  • 17.3.2 不同版本的MySQL数据库之间的迁移
  • 17.3.3 不同数据库之间的迁移
  • 17.4 表的导出和导入
  • 17.4.1 使用SELECT…INTO OUTFILE导出文本文件
  • 17.4.2 使用mysqldump命令导出文本文件
  • 17.4.3 使用MySQL命令导出文本文件
  • 17.4.4 使用LOAD DATA INFILE方式导入文本文件
  • 17.4.5 使用mysqlimport命令导入文本文件
  • 第18章 MySQL日志
  • 18.1 日志简介
  • 18.2 二进制日志
  • 18.2.1 启动和设置二进制日志
  • 18.2.2 查看二进制日志
  • 18.2.3 删除二进制日志
  • 18.2.4 使用二进制日志恢复数据库
  • 18.2.5 暂时停止二进制日志功能
  • 18.3 错误日志
  • 18.3.1 启动和设置错误日志
  • 18.3.2 查看错误日志
  • 18.3.3 删除错误日志
  • 18.4 通用查询日志
  • 18.4.1 启动通用查询日志
  • 18.4.2 查看通用查询日志
  • 18.4.3 删除通用查询日志
  • 18.5 慢查询日志
  • 18.5.1 启动和设置慢查询日志
  • 18.5.2 查看慢查询日志
  • 18.5.3 删除慢查询日志
  • 第19章 MySQL权限与安全管理
  • 19.1 权 限 表
  • 19.1.1 user表
  • 19.1.2 db表
  • 19.1.3 tables_priv表和columns_priv表
  • 19.1.4 procs_priv表
  • 19.2 账户管理
  • 19.2.1 登录和退出MySQL服务器
  • 19.2.2 新建普通用户
  • 19.2.3 删除普通用户
  • 19.2.4 root用户修改普通用户密码
  • 19.3 权限管理
  • 19.3.1 MySQL的各种权限
  • 19.3.2 授权
  • 19.3.3 收回权限
  • 19.3.4 查看权限
  • 19.4 访问控制
  • 19.4.1 连接核实阶段
  • 19.4.2 请求核实阶段
  • 19.5 提升安全性
  • 19.5.1 密码到期更换策略
  • 19.5.2 安全模式安装
  • 19.6 管理角色
  • 第20章 MySQL高可用架构
  • 20.1 MySQL高可用简介
  • 20.2 MySQL主从复制架构
  • 20.2.1 MySQL主从架构设计
  • 20.2.2 配置环境
  • 20.2.3 服务器的安装配置
  • 20.2.4 LVS的安装配置
  • 20.3 MySQL+DRBD+HA主备架构
  • 20.3.1 什么是DRBD
  • 20.3.2 MySQL+DRBD+HA架构设计
  • 20.3.3 配置环境
  • 20.3.4 安装配置Heartbeat
  • 20.3.5 安装配置DRBD
  • 20.4 LVS+Keepalived+MySQL单点写入主主同步架构
  • 20.4.1 配置环境
  • 20.4.2 LVS+Keepalived的安装
  • 20.4.3 LVS+Keepalived的配置
  • 20.4.4 Master和Backup的启动
  • 20.5 MMM高可用架构
  • 20.5.1 MMM高可用架构简介
  • 20.5.2 配置环境
  • 20.5.3 MMM的安装
  • 20.5.4 Monitor服务器的配置
  • 20.5.5 各个数据库服务器的配置
  • 20.5.6 MMM的管理
  • 第21章 MySQL复制
  • 21.1 MySQL复制概述
  • 21.2 Windows环境下的MySQL主从复制
  • 21.2.1 复制前的准备工作
  • 21.2.2 Windows环境下实现主从复制
  • 21.2.3 Windows环境下主从复制测试
  • 21.3 Linux环境下的MySQL复制
  • 21.3.1 下载并安装MySQL 8.0
  • 21.3.2 单机主从复制前的准备工作
  • 21.3.3 mysqld_multi实现单机主从复制
  • 21.3.4 不同服务器之间实现主从复制
  • 21.3.5 MySQL主从复制启动选项
  • 21.3.6 指定复制的数据库或者表
  • 21.4 查看从服务器的复制进度
  • 21.5 复制环境的监控和维护
  • 21.5.1 了解服务器的状态
  • 21.5.2 服务器复制出错的原因
  • 21.6 切换主从服务器
  • 21.7 多源复制的改进
  • 第22章 MySQL Utilities
  • 22.1 MySQL Utilities概述
  • 22.2 安装与配置
  • 22.2.1 下载与安装MySQL Utilities
  • 22.2.2 MySQL Utilities连接数据库
  • 22.3 管理与维护
  • 22.3.1 使用mysqldbcompare比较数据
  • 22.3.2 使用mysqldbcopy复制数据
  • 22.3.3 使用mysqldbexport导出数据
  • 22.3.4 使用mysqldbimport导入数据
  • 22.3.5 使用mysqldiff比较对象的定义
  • 第23章 MySQL Proxy
  • 23.1 概述
  • 23.2 安装与配置
  • 23.2.1 下载与安装MySQL Proxy
  • 23.2.2 配置MySQL Proxy参数
  • 23.3 使用MySQL Proxy实现读写分离
  • 第24章 新闻发布系统数据库设计
  • 24.1 系统概述
  • 24.2 系统功能
  • 24.3 数据库设计和实现
  • 24.3.1 设计表
  • 24.3.2 设计索引
  • 24.3.3 设计视图
  • 24.3.4 设计触发器
  • 第25章 论坛管理系统数据库设计
  • 25.1 系统概述
  • 25.2 系统功能
  • 25.3 数据库设计和实现
  • 25.3.1 设计方案图表
  • 25.3.2 设计表
  • 25.3.3 设计索引
  • 25.3.4 设计视图
  • 25.3.5 设计触发器
展开全部

评分及书评

4.3
3个评分

出版方

清华大学出版社

清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。