《MySQL核心技术与最佳实践》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:孔祥盛编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2014
  • ISBN:9787115337696
  • 页数:439 页
图书介绍:本书主要内容共14章,具体内容包括包括数据库设计概述、MySQL基础知识、MySQL表结构的管理、表记录的更新操作、表记录的检索、MySQL编程基础、视图与触发器、存储过程与游标、事务与锁机制、网上选课系统的开发、MySQL日志与事件、MySQL备份与恢复、MySQL安全管理、MySQL优化。

第一篇 关系数据库设计 2

第1章 数据库设计概述 2

1.1数据库概述 2

1.1.1关系数据库管理系统 2

1.1.2关系数据库 3

1.1.3结构化查询语言SQL 4

1.2数据库设计的相关知识 5

1.2.1商业知识和沟通技能 5

1.2.2数据库设计辅助工具 5

1.2.3“选课系统”概述 6

1.2.4定义问题域 7

1.2.5编码规范 8

1.3 E-R图 9

1.3.1实体和属性 9

1.3.2关系 10

1.3.3 E-R图的设计原则 12

1.4关系数据库设计 14

1.4.1为每个实体建立一张数据库表 15

1.4.2为每张表定义一个主键 15

1.4.3增加外键表示一对多关系 16

1.4.4建立新表表示多对多关系 18

1.4.5为字段选择合适的数据类型 19

1.4.6定义约束(constraint)条件 19

1.4.7评价数据库表设计的质量 21

1.4.8使用规范化减少数据冗余 21

1.4.9避免数据经常发生变化 25

习题 26

第二篇 MySQL基础 30

第2章 MySQL基础知识 30

2.1 MySQL概述 30

2.1.1 MySQL的特点 30

2.1.2 MySQL服务的安装 32

2.1.3 MySQL服务的配置 34

2.1.4启动与停止MySQL服务 40

2.1.5 MySQL配置文件 41

2.1.6 MySQL客户机 41

2.1.7连接MySQL服务器 42

2.2字符集以及字符序设置 44

2.2.1字符集及字符序概念 44

2.2.2 MySQL字符集与字符序 45

2.2.3 MySQL字符集的转换过程 46

2.2.4 MySQL字符集的设置 47

2.2.5 SQL脚本文件 48

2.3 MySQL数据库管理 49

2.3.1创建数据库 49

2.3.2查看数据库 50

2.3.3显示数据库结构 50

2.3.4选择当前操作的数据库 51

2.3.5删除数据库 51

2.4 MySQL表管理 51

2.4.1 MyISAM和InnoDB存储引擎 51

2.4.2设置默认的存储引擎 52

2.4.3创建数据库表 53

2.4.4显示表结构 54

2.4.5表记录的管理 54

2.4.6 InnoDB表空间 57

2.4.7删除表 59

2.5系统变量 59

2.5.1全局系统变量与会话系统变量 59

2.5.2查看系统变量的值 60

2.5.3设置系统变量的值 62

2.6 MySQL数据库备份和恢复 63

习题 64

第3章 MySQL表结构的管理 66

3.1 MySQL数据类型 66

3.1.1 MySQL整数类型 66

3.1.2 MySQL小数类型 67

3.1.3 MySQL字符串类型 67

3.1.4 MySQL日期类型 68

3.1.5 MySQL复合类型 71

3.1.6 MySQL二进制类型 72

3.1.7选择合适的数据类型 72

3.2创建表 73

3.2.1设置约束 74

3.2.2设置自增型字段 78

3.2.3其他选项的设置 78

3.2.4创建“选课系统”数据库表 79

3.2.5复制一个表结构 80

3.3修改表结构 81

3.3.1修改字段相关信息 81

3.3.2修改约束条件 82

3.3.3修改表的其他选项 83

3.3.4修改表名 83

3.4删除表 84

3.5索引 84

3.5.1理解索引 84

3.5.2索引关键字的选取原则 87

3.5.3索引与约束 88

3.5.4创建索引 88

3.5.5删除索引 90

习题 90

第4章 表记录的更新操作 91

4.1表记录的插入 91

4.1.1使用insert语句插入新记录 91

4.1.2更新操作与字符集 94

4.1.3关于自增型字段 94

4.1.4批量插入多条记录 95

4.1.5使用insert…select插入结果集 96

4.1.6使用replace插入新记录 96

4.2表记录的修改 97

4.3表记录的删除 98

4.3.1使用delete删除表记录 98

4.3.2使用truncate清空表记录 98

4.4 MySQL特殊字符序列 100

习题 102

第5章 表记录的检索 103

5.1 select语句概述 103

5.1.1使用select子句指定字段列表 104

5.1.2使用谓词过滤记录 105

5.1.3使用from子句指定数据源 105

5.1.4多表连接 109

5.2使用where子句过滤结果集 109

5.2.1使用单一的条件过滤结果集 110

5.2.2 is NULL运算符 110

5.2.3 select语句与字符集 111

5.2.4使用逻辑运算符 112

5.2.5使用like进行模糊查询 115

5.3使用order by子句对结果集排序 116

5.4使用聚合函数汇总结果集 117

5.5使用group by子句对记录分组统计 118

5.5.1 group by子句与聚合函数 118

5.5.2 group by子句与having子句 119

5.5.3 group by子句与group_concat()函数 120

5.5.4 group by子句与with rollup选项 120

5.6合并结果集 121

5.7子查询 122

5.7.1子查询与比较运算符 122

5.7.2子查询与in运算符 123

5.7.3子查询与exists逻辑运算符 124

5.7.4子查询与any运算符 125

5.7.5子查询与all运算符 126

5.8选课系统综合查询 126

5.9使用正则表达式模糊查询 129

5.10全文检索 131

5.10.1全文检索的简单应用 132

5.10.2全文检索方式 135

5.10.3布尔检索模式的复杂应用 135

5.10.4 MySQL全文检索的注意事项 137

5.10.5 InnoDB表的全文检索 137

习题 138

第三篇 MySQL编程 140

第6章 MySQL编程基础 140

6.1 MySQL编程基础知识 140

6.1.1常量 140

6.1.2用户自定义变量 142

6.1.3运算符与表达式 147

6.1.4 begin-end语句块 149

6.1.5重置命令结束标记 149

6.2自定义函数 150

6.2.1创建自定义函数的语法格式 150

6.2.2函数的创建与调用 151

6.2.3函数的维护 153

6.2.4条件控制语句 154

6.2.5循环语句 156

6.3系统函数 160

6.3.1数学函数 160

6.3.2字符串函数 162

6.3.3数据类型转换函数 168

6.3.4条件控制函数 169

6.3.5系统信息函数 170

6.3.6日期和时间函数 171

6.3.7其他常用的MySQL函数 177

6.4中文全文检索的模拟实现 179

习题 181

第7章 视图与触发器 183

7.1视图 183

7.1.1创建视图 183

7.1.2查看视图的定义 184

7.1.3视图在“选课系统”中的应用 185

7.1.4视图的作用 186

7.1.5删除视图 187

7.1.6检查视图 187

7.1.7 local与cascade检查视图 188

7.2触发器 189

7.2.1准备工作 190

7.2.2使用触发器实现检查约束 191

7.2.3使用触发器维护冗余数据 192

7.2.4使用触发器模拟外键级联选项 193

7.2.5查看触发器的定义 194

7.2.6删除触发器 195

7.2.7使用触发器的注意事项 195

7.3临时表 196

7.3.1临时表概述 196

7.3.2临时表的创建、查看与删除 196

7.3.3“选课系统”中临时表的使用 197

7.3.4使用临时表的注意事项 198

7.4派生表(derived table) 198

7.5子查询、视图、临时表、派生表 199

习题 200

第8章 存储过程与游标 201

8.1存储过程 201

8.1.1创建存储过程的语法格式 201

8.1.2存储过程的调用 202

8.1.3“选课系统”的存储过程 203

8.1.4查看存储过程的定义 206

8.1.5删除存储过程 208

8.1.6存储过程与函数的比较 208

8.2错误触发条件和错误处理 209

8.2.1自定义错误处理程序 209

8.2.2自定义错误触发条件 211

8.2.3自定义错误处理程序说明 212

8.3游标 212

8.3.1使用游标 212

8.3.2游标在“选课系统”中的使用 213

8.4预处理SQL语句 215

8.4.1预处理SQL语句使用步骤 215

8.4.2“选课系统”中预处理SQL语句的使用 216

8.4.3预处理SQL语句的复杂应用 217

8.4.4静态SQL语句与预处理SQL语句 219

8.5存储程序的说明 219

习题 220

第9章 事务机制与锁机制 221

9.1事务机制 221

9.1.1事务机制的必要性 221

9.1.2关闭MySQL自动提交 222

9.1.3回滚 223

9.1.4提交 224

9.1.5事务 225

9.1.6保存点 226

9.1.7“选课系统”中的事务 229

9.2锁机制 231

9.2.1锁机制的必要性 231

9.2.2 MySQL锁机制的基础知识 232

9.2.3 MyISAM表的表级锁 235

9.2.4 InnoDB表的行级锁 238

9.2.5“选课系统”中的行级锁 240

9.2.6 InnoDB表的意向锁 242

9.2.7 InnoDB行级锁与索引之间的关系 243

9.2.8间隙锁与死锁 245

9.2.9死锁与锁等待 247

9.3事务的ACID特性 249

9.3.1事务的ACID特性 249

9.3.2事务的隔离级别与并发问题 250

9.3.3设置事务的隔离级别 251

9.3.4使用间隙锁避免幻读现象 255

9.4事务与锁机制注意事项 257

习题 257

第四篇 综合实训 260

第10章 网上选课系统的开发 260

10.1 PHP预备知识 260

10.1.1为何选用B/S结构以及PHP脚本语言 260

10.1.2 PHP脚本语言概述 261

10.1.3 PHP脚本程序的工作流程 262

10.1.4 Web服务器的部署 264

10.1.5注意事项 266

10.2软件开发生命周期SDLC 267

10.3网上选课系统的系统规划 267

10.3.1网上选课系统的目标 267

10.3.2网上选课系统的可行性分析 268

10.3.3网上选课系统的项目进度表 268

10.3.4网上选课系统的人员分工 269

10.4网上选课系统的系统分析 269

10.4.1网上选课系统的功能需求分析 270

10.4.2网上选课系统的非功能需求分析 272

10.5网上选课系统的系统设计 272

10.6网上选课系统的系统实施 274

10.6.1准备工作 274

10.6.2制作PHP连接MySQL服务器函数 275

10.6.3制作PHP权限系统函数 276

10.6.4首页index.php的开发 277

10.6.5教师注册模块的开发 278

10.6.6登录模块的开发 281

10.6.7注销模块的开发 283

10.6.8添加班级模块的开发 283

10.6.9学生注册模块的开发 284

10.6.10密码重置模块 285

10.6.11申报课程模块 286

10.6.12课程列表显示模块 287

10.6.13审核申报课程 289

10.6.14取消已审核课程 290

10.6.15 浏览自己申报的课程 290

10.6.16删除课程 291

10.6.17学生选修或者调换已经审核的课程 292

10.6.18查看自己选修的课程 293

10.6.19取消选修课程 294

10.6.20查看课程的学生信息列表 295

10.6.21查看选修人数少于30人的课程信息 296

10.7界面设计与MVC模式 296

10.8网上选课系统的测试 298

习题 299

第五篇 MySQL管理及维护 302

第11章 MySQL日志与事件 302

11.1 MySQL日志 302

11.1.1数据皆需要缓存 302

11.1.2 MySQL错误日志 303

11.1.3 MySQL普通查询日志 303

11.1.4 MySQL慢查询日志 304

11.1.5 MySQL慢查询日志的查看 305

11.2二进制日志 307

11.2.1启动二进制日志 307

11.2.2二进制日志文件内容的查看 308

11.2.3获取当前的二进制日志文件及偏移位置 310

11.2.4使用二进制日志恢复数据库 310

11.2.5与MySQL二进制日志有关的参数 311

11.2.6二进制日志的清理 312

11.3 InnoDB事务日志 312

11.4日志文件的备份 314

11.5 MySQL事件 314

11.5.1创建MySQL事件 314

11.5.2开启MySQL事件调度器 316

11.5.3查看MySQL事件的定义 316

11.5.4删除MySQL事件的定义 317

习题 317

第12章 MySQL备份与恢复 319

12.1备份与恢复概述 319

12.1.1防止数据丢失的方法 319

12.1.2数据备份概述 320

12.2逻辑备份与逻辑恢复 321

12.2.1使用select…into outfile…备份表数据 321

12.2.2恢复表数据 322

12.2.3使用mysqldump备份数据库 325

12.2.4逻辑备份综合示例 326

12.2.5二进制日志恢复数据库的综合示例 327

12.3物理备份与热备份 329

12.3.1物理备份的所需文件 329

12.3.2 MyISAM表物理备份、热备份工具 329

12.3.3 InnoDB表物理备份、热备份工具 330

12.3.4 Xtrabackup的工作原理 331

12.3.5使用Xtrabackup实现完全备份与增量备份 333

12.3.6使用Xtrabackup实现数据库恢复 333

12.4 MySQL复制(replication) 336

12.4.1 MySQL复制的实现原理 337

12.4.2 MySQL复制的实现 337

12.4.3复制线程的状态 339

12.4.4与复制有关的文件 341

12.4.5复制的配置 342

12.4.6 MySQL复制模式 344

12.4.7自增型字段冲突问题 345

12.4.8事件损坏 345

12.4.9小结 346

12.5备份策略 346

习题 347

第13章 MySQL安全管理 348

13.1 MySQL安全管理 348

13.2 MySQL账户与权限表 350

13.2.1 grant命令语法格式 350

13.2.2创建MySQL服务实例级别的账户 351

13.2.3创建MySQL数据库级别的账户 353

13.2.4创建MySQL表级别的账户 356

13.2.5创建MySQL字段级别的账户 357

13.2.6创建MySQL存储程序级别的账户 359

13.2.7注意事项 360

13.2.8 host权限表 361

13.3 MySQL账户管理 362

13.3.1使用create user创建MySQL账户 362

13.3.2查看MySQL账户信息 362

13.3.3删除已有账户 363

13.3.4修改已有账户的信息 363

13.3.5 MySQL账户的资源次数限制 364

13.3.6使用更新语句修改MySQL账户信息 365

13.3.7权限的生效时机 365

13.4 MySQL安全管理的注意事项 365

13.4.1 MySQL账户名重名问题 366

13.4.2 root账号密码丢失问题 368

13.4.3消除MySQL安全隐患 368

13.4.4 MySQL安全管理的其他注意事项 370

习题 371

第14章MySQL优化 372

14.1基础知识 372

14.1.1影响数据库系统性能的组件 372

14.1.2参数信息与状态信息 373

14.1.3缓存机制 373

14.1.4缓存的分类 374

14.1.5超时 375

14.2 MySQL连接的优化 377

14.3缓存的优化 380

14.3.1查询缓存Queru Cache 380

14.3.2结果集缓存 382

14.3.3排序缓存 382

14.3.4 join连接缓存 384

14.3.5表缓存Cache与表结构定义缓存Cache 385

14.3.6表扫描缓存buffer 387

14.3.7 MyISAM索引缓存buffer 388

14.3.8日志缓存 390

14.3.9预读机制 391

14.3.10延迟更新 393

14.3.11内存表与临时表 396

14.4 InnoDB优化 398

14.4.1 InnoDB缓存池 398

14.4.2 InnoDB缓存池内部结构 399

14.4.3 InnoDB缓存池预热 400

14.4.4 InnoDB缓存池的状态信息 401

14.4.5常见的InnoDB参数设置 402

14.4.6 InnoDB实时监控 402

14.5优化表 403

14.5.1优化表结构 403

14.5.2表的拆分 403

14.5.3分区 404

14.5.4表分析与表检查 406

14.5.5 NULL值对统计信息的影响 409

14.5.6记录的格式 409

14.6 SQL语句优化 411

14.6.1了解SQL的执行频率 411

14.6.2定位执行效率较低的SQL语句 413

14.6.3分析select语句 413

14.6.4索引与select语句 416

14.6.5分页与select 418

14.6.6 SQL语句其他注意事项 420

14.6.7 profiling性能分析工具 421

14.7锁资源的优化 422

14.7.1表级锁资源竞争 422

14.7.2表级锁资源竞争的解决方案 422

14.7.3行级锁的资源竞争 423

14.7.4行级锁资源竞争的解决方案 423

14.7.5禁用InnoDB间隙锁 424

14.7.6事务监控与锁监控 424

14.7.7元数据锁metadata locks 425

第15章 MySQL Cluster 427

15.1 MySQL Cluster简介 427

15.1.1 MySQL集群的组成 427

15.1.2 MySQL集群架构 429

15.2 MySQL Cluster环境搭建 429

15.2.1准备工作 429

15.2.2数据节点的配置 430

15.2.3 SQL节点的配置 431

15.2.4管理节点的配置 433

15.2.5 MySQL集群的启动 434

15.2.6集群测试 437

参考文献 439