目录 第1章MySQL数据库入门1 1.1初识数据库1 1.1.1数据库概述1 1.1.2数据管理技术的 发展2 1.1.3数据库系统的结构4 1.2数据模型6 1.2.1数据模型概述6 1.2.2概念数据模型8 1.2.3逻辑数据模型9 1.3关系数据库9 1.3.1关系模型的数据 结构10 1.3.2关系模型的完整性 约束11 1.3.3关系运算12 1.3.4SQL简介15 1.4常见的数据库产品17 1.4.1常见的关系数据 库产品17 1.4.2常见的非关系 数据库产品18 1.5MySQL安装与配置19 1.6SQLyog图形化工具19 1.7本章小结21 第2章MySQL的基本操作22 2.1数据库操作22 2.1.1创建数据库22 2.1.2查看数据库23 2.1.3修改数据库25 2.1.4选择数据库26 2.1.5删除数据库27 2.2数据表操作27 2.2.1创建数据表28 2.2.2查看数据表29 2.2.3查看表结构32 2.2.4修改数据表33 2.2.5删除数据表39 2.3数据操作40 2.3.1添加数据40 2.3.2查询数据42 2.3.3修改数据44 2.3.4删除数据46 2.4动手实践: 电子杂志订阅表 的操作47 2.5本章小结48 第3章数据表设计49 3.1数据类型49 3.1.1数值类型49 3.1.2日期和时间类型56 3.1.3字符串类型60 3.2表的约束67 3.2.1设置默认值约束67 3.2.2设置非空约束71 3.2.3设置唯一约束73 3.2.4设置主键约束78 3.3自动增长81 3.4字符集与校对集86 3.4.1字符集概述86目录MySQL数据库原理、设计与应用(第2版) 3.4.2校对集概述88 3.4.3字符集与校对集的 设置89 3.5动手实践: 设计用户表93 3.6本章小结93 第4章数据库设计94 4.1数据库设计概述94 4.2数据库设计范式96 4.3数据库建模工具 MySQL Workbench99 4.3.1获取MySQL Workbench99 4.3.2安装MySQL Workbench100 4.3.3操作数据库102 4.3.4操作数据表107 4.3.5绘制EER图110 4.4动手实践: 电子商务 网站112 4.5本章小结113 第5章单表操作114 5.1数据进阶操作114 5.1.1复制表结构和 数据114 5.1.2解决主键冲突117 5.1.3清空数据119 5.1.4去除查询结果中的 重复记录120 5.2排序和限量121 5.2.1排序122 5.2.2限量124 5.3分组与聚合函数126 5.3.1分组126 5.3.2聚合函数127 5.3.3分组并使用聚合 函数129 5.3.4分组后进行条件 筛选130 5.3.5回溯统计131 5.4常用运算符133 5.5动手实践: 商品评论表的 操作133 5.6本章小结133 第6章多表操作134 6.1联合查询134 6.2连接查询136 6.2.1交叉连接查询136 6.2.2内连接查询138 6.2.3外连接查询140 6.3子查询143 6.3.1子查询的分类143 6.3.2子查询关键字147 6.4外键约束149 6.4.1外键约束概述150 6.4.2添加外键约束150 6.4.3关联表操作153 6.4.4删除外键约束155 6.5动手实践: 多表查询 练习156 6.6本章小结156 第7章用户与权限157 7.1用户与权限概述157 7.2用户管理161 7.2.1创建用户161 7.2.2修改用户166 7.2.3删除用户171 7.3权限管理171 7.3.1授予权限171 7.3.2查看权限174 7.3.3回收权限175 7.3.4刷新权限176 7.4动手实践: 用户与权限 练习177 7.5本章小结177 第8章视图178 8.1初识视图178 8.2视图管理179 8.2.1创建视图179 8.2.2查看视图183 8.2.3修改视图184 8.2.4删除视图186 8.3视图数据操作186 8.3.1添加数据187 8.3.2修改数据188 8.3.3删除数据189 8.4动手实践: 视图的应用189 8.5本章小结189 第9章事务190 9.1事务的概念190 9.2事务处理191 9.2.1事务的基本操作191 9.2.2事务的保存点194 9.3事务日志195 9.3.1redo日志195 9.3.2undo日志196 9.4事务的隔离级别197 9.4.1隔离级别概述197 9.4.2查看隔离级别198 9.4.3修改隔离级别198 9.4.4使用隔离级别199 9.5动手实践: 事务的应用205 9.6本章小结205 第10章数据库编程206 10.1函数206 10.1.1内置函数206 10.1.2自定义函数207 10.2存储过程211 10.2.1存储过程概述211 10.2.2创建存储过程211 10.2.3查看存储过程212 10.2.4调用存储过程215 10.2.5修改存储过程215 10.2.6删除存储过程216 10.2.7存储过程的错误 处理217 10.3变量219 10.3.1系统变量219 10.3.2会话变量222 10.3.3局部变量224 10.4流程控制225 10.4.1判断语句225 10.4.2循环语句228 10.4.3跳转语句231 10.5游标232 10.5.1游标概述233 10.5.2游标的基本 操作233 10.6触发器236 10.6.1触发器概述236 10.6.2触发器的基本 操作236 10.7事件241 10.7.1事件概述241 10.7.2事件的基本 操作242 10.8预处理SQL语句246 10.8.1预处理SQL 语句概述246 10.8.2预处理SQL语句 的基本操作247 10.9动手实践: 数据库编 程实战249 10.10本章小结249 第11章数据库优化250 11.1存储引擎250 11.1.1存储引擎概述250 11.1.2MySQL支持的 存储引擎251 11.1.3InnoDB存储 引擎253 11.1.4MyISAM存储 引擎258 11.2索引258 11.2.1索引概述258 11.2.2索引结构259 11.2.3创建索引262 11.2.4查看索引268 11.2.5删除索引270 11.2.6索引的使用 原则272 11.3锁机制273 11.3.1锁机制概述273 11.3.2表级锁275 11.3.3行级锁279 11.4分表技术283 11.5分区技术285 11.5.1分区概述285 11.5.2创建分区285 11.5.3增加分区288 11.5.4删除分区288 11.6整理数据碎片290 11.7分析SQL的执行情况292 11.7.1慢查询日志292 11.7.2通过performance_ schema进行查询 分析293 11.8动手实践: 数据库优化 实战296 11.9本章小结296 第12章数据库配置和部署297 12.1Linux环境安装 MySQL297 12.1.1使用APT安装 MySQL297 12.1.2编译安装 MySQL300 12.2MySQL配置文件307 12.2.1配置文件中的 区段307 12.2.2基本配置308 12.2.3内存和优化 配置308 12.2.4日志配置309 12.3数据备份和数据还原310 12.4多实例部署和主从复制310 12.5动手实践: 读写分离310 12.6本章小结310