MySQL 数据库应用案例课堂

MySQL 数据库应用案例课堂
作 者: 刘玉红 郭广新
出版社: 清华大学出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: SQL 计算机/网络 数据库
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《MySQL 数据库应用案例课堂》作者简介

内容简介

本书从零基础讲解起步,用实例引导读者深入学习,采取“数据库基础→数据库的基本操作→SQL查询语句→数据库高级管理→项目开发与案例设计”的讲解模式,深入浅出地讲解MySQL的各项技术及实战技能。本书共分5篇,第1篇主要讲解MySQL的基础知识,MySQL的安装与环境配置等;第2篇主要讲解操作数据库,创建、修改和删除数据表,数据类型和运算符,索引的操作,视图的操作等;第3篇主要讲解插入、更新与删除数据,MySQL函数,查询数据,存储过程和函数,MySQL触发器等;第4篇主要讲解MySQL安全性机制,MySQL数据备份与还原,管理MySQL日志,MySQL性能的优化,MySQL的高级特性和使用MySQL Workbench管理数据库;第5篇主要讲解Java访问MySQL数据库,PHP操作MySQL数据库,论坛管理系统数据库设计、新闻发布系统数据库设计。本书附赠光盘中包含丰富的资源,包括MySQL案例源代码、教学幻灯片、精品教学视频、MySQL常用命令速查手册、数据库工程师职业规划、数据库工程师面试技巧、数据库工程师常见面试题、MySQL常见错误及解决方案、MySQL数据库经验及技巧大汇总等。本书适合任何想学习MySQL的人员,无论您是否从事计算机相关行业,无论您是否接触过MySQL,通过学习本书均可快速掌握MySQL的管理方法和技巧。

图书目录

目 录

第1篇 MySQL数据库基础

第1章 初识MySQL 3

1.1 关于数据库的基本概念 4

1.1.1 数据库 4

1.1.2 表 4

1.1.3 数据类型 5

1.1.4 主键 5

1.2 数据库技术构成 5

1.2.1 数据库系统 5

1.2.2 SQL语言 6

1.2.3 数据库访问技术 7

1.3 MySQL简介 8

1.3.1 客户机-服务器软件 8

1.3.2 MySQL的版本 8

1.3.3 MySQL的优势 9

1.3.4 MySQL 5.6的新功能 10

1.4 MySQL的工具 10

1.4.1 MySQL的命令行实用工具 11

1.4.2 MySQL Workbench 11

1.5 高手甜点 12

1.6 跟我学上机 13

第2章 MySQL的安装与环境配置 15

2.1 Windows系统中安装与配置MySQL 16

2.1.1 安装MySQL 16

2.1.2 配置MySQL 21

2.2 启动服务并登录MySQL数据库 26

2.2.1 查看和启动MySQL服务 26

2.2.2 登录MySQL数据库 27

2.2.3 配置Path变量 31

2.3 Linux系统中安装与配置MySQL 32

2.3.1 Linux操作系统下的MySQL

版本介绍 32

2.3.2 安装和配置MySQL的

RPM包 34

2.3.3 安装和配置MySQL的源码包 38

2.4 MySQL常用图形管理工具 39

2.5 高手甜点 40

2.6 跟我学上机 40

第2篇 MySQL数据库的基本操作

第3章 操作数据库 43

3.1 创建数据库 44

3.2 删除数据库 45

3.3 数据库存储引擎 45

3.3.1 InnoDB存储引擎 47

3.3.2 MyISAM存储引擎 48

3.3.3 MEMORY存储引擎 48

3.3.4 存储引擎的选择 49

3.4 综合实例——数据库的创建和删除 49

3.5 高手甜点 51

3.6 跟我学上机 52

第4章 创建、修改和删除数据表 53

4.1 创建数据表 54

4.1.1 创建表的语法形式 54

4.1.2 使用主键约束 55

4.1.3 使用外键约束 56

4.1.4 使用非空约束 57

4.1.5 使用唯一性约束 58

4.1.6 使用默认约束 58

4.1.7 设置表的属性值自动增加 59

4.2 查看数据表结构 60

4.2.1 查看表的基本结构语句

DESCRIBE 60

4.2.2 查看表的详细结构语句SHOW

CREATE TABLE 61

4.3 修改数据表 62

4.3.1 修改表名 62

4.3.2 修改字段的数据类型 63

4.3.3 修改字段名 64

4.3.4 添加字段 65

4.3.5 删除字段 67

4.3.6 修改字段的排列位置 68

4.3.7 更改表的存储引擎 69

4.3.8 删除表的外键约束 70

4.4 删除数据表 71

4.4.1 删除没有被关联的表 72

4.4.2 删除被其他表关联的主表 72

4.5 综合实例——数据表的基本操作 74

4.6 高手甜点 81

4.7 跟我学上机 82

第5章 数据类型和运算符 85

5.1 MySQL数据类型介绍 86

5.1.1 整数类型 86

5.1.2 浮点数类型和定点数类型 88

5.1.3 日期与时间类型 89

5.1.4 字符串类型 100

5.1.5 二进制类型 105

5.2 选择数据类型的方法 108

5.3 常见运算符介绍 109

5.3.1 运算符概述 109

5.3.2 算术运算符 110

5.3.3 比较运算符 111

5.3.4 逻辑运算符 119

5.3.5 位运算符 121

5.3.6 运算符的优先级 124

5.4 综合实例——运算符的使用 125

5.5 高手甜点 127

5.6 跟我学上机 128

第6章 索引的操作 129

6.1 索引简介 130

6.1.1 索引的含义和特点 130

6.1.2 索引的分类 130

6.1.3 索引的设计原则 131

6.2 创建索引 132

6.2.1 创建表的时候创建索引 132

6.2.2 在已有的表上创建索引 137

6.3 删除索引 144

6.4 综合实例——创建索引 145

6.5 高手甜点 148

6.6 跟我学上机 148

第7章 视图的操作 151

7.1 视图概述 152

7.1.1 视图的含义 152

7.1.2 视图的作用 153

7.2 创建视图 153

7.2.1 创建视图的语法形式 153

7.2.2 在单表上创建视图 154

7.2.3 在多表上创建视图 155

7.3 查看视图 156

7.3.1 用DESCRIBE语句查看视图的

基本信息 156

7.3.2 用SHOW TABLE STATUS语句

查看视图的基本信息 157

7.3.3 用SHOW CREATE VIEW语句

查看视图的详细信息 158

7.3.4 在views表中查看视图的详细

信息 158

7.4 修改视图 160

7.4.1 用CREATE OR REPLACE VIEW

语句修改视图 160

7.4.2 用ALTER语句修改视图 161

7.5 更新视图 161

7.6 删除视图 164

7.7 综合实例——视图应用 165

7.8 高手甜点 172

7.9 跟我学上机 173

第3篇 SQL查询语句

第8章 插入、更新与删除数据 177

8.1 插入数据 178

8.1.1 为表的所有字段插入数据 178

8.1.2 为表的指定字段插入数据 180

8.1.3 同时插入多条记录 181

8.1.4 将查询结果插入表中 183

8.2 更新数据 184

8.3 删除数据 186

8.4 综合实例——记录的插入、更新

和删除 188

8.5 高手甜点 192

8.6 跟我学上机 193

第9章 MySQL函数 195

9.1 MySQL中的函数分类 196

9.2 数学函数 196

9.2.1 绝对值函数ABS(x)和返回

圆周率的函数PI() 196

9.2.2 平方根函数SQRT(x)和求余函数

MOD(x,y) 197

9.2.3 获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x) 197

9.2.4 获取随机数的函数RAND()

和RAND(x) 198

9.2.5 四舍五入函数ROUND(x)、

ROUND(x,y)和

TRUNCATE(x,y) 198

9.2.6 符号函数SIGN(x) 200

9.2.7 幂运算函数POW(x,y)、

POWER(x,y)和EXP(x) 200

9.2.8 对数运算函数LOG(x)和

LOG10(x) 201

9.2.9 角度与弧度相互转换的函数

RADIANS(x)和DEGREES(x) 201

9.2.10 正弦函数SIN(x)和反正弦

函数ASIN(x) 202

9.2.11 余弦函数COS(x)和反余弦函数

ACOS(x) 202

9.2.12 正切函数、反正切函数和余切

函数 203

9.3 字符串函数 204

9.3.1 计算字符串中字符数的函数

和字符串长度的函数 204

9.3.2 合并字符串函数CONCAT(s1,s2,…)、

CONCAT_WS(x,s1,s2,…) 204

9.3.3 替换字符串的函数

INSERT(s1,x,len,s2) 205

9.3.4 字母大小写转换函数 206

9.3.5 获取指定长度字符串的函数

LEFT(s,n)和RIGHT(s,n) 206

9.3.6 填充字符串的函数LPAD(s1,len,s2)

和RPAD(s1,len,s2) 207

9.3.7 删除空格的函数LTRIM(s)、

RTRIM(s)和TRIM(s) 208

9.3.8 删除指定字符串的函数TRIM

(s1 FROM s) 208

9.3.9 重复生成字符串的函数

REPEAT(s,n) 209

9.3.10 空格函数SPACE(n)和替换函数

REPLACE(s,s1,s2) 209

9.3.11 比较字符串大小的函数

STRCMP(s1,s2) 210

9.3.12 获取子串的函数SUBSTRING(s,n,len)

和MID(s,n,len) 210

9.3.13 匹配子串开始位置的函数 211

9.3.14 字符串逆序的函数

REVERSE(s) 211

9.3.15 返回指定位置的字符串的函数

ELT(N,字符串1,字符串2,字符

串3,...,字符串N) 212

9.3.16 返回指定字符串位置的函数

FIELD(s,s1,s2,…) 212

9.3.17 返回子串位置的函数

FIND_IN_SET(s1,s2) 212

9.3.18 选取字符串的函数

MAKE_SET(x,s1,s2,…) 213

9.4 日期和时间函数 213

9.4.1 获取当前日期的函数和获取当前

时间的函数 214

9.4.2 获取当前日期和时间的函数 214

9.4.3 UNIX时间戳函数 215

9.4.4 返回UTC日期的函数和返回

UTC时间的函数 215

9.4.5 获取月份的函数MONTH(date)

和MONTHNAME(date) 216

9.4.6 获取星期的函数DAYNAME(d)、

DAYOFWEEK(d)和

WEEKDAY(d) 216

9.4.7 获取星期数的函数WEEK(d)

和WEEKOFYEAR(d) 217

9.4.8 获取天数的函数DAYOFYEAR(d)

和DAYOFMONTH(d) 218

9.4.9 获取年份、季度、小时、分钟和

秒钟的函数 219

9.4.10 获取日期的指定值的函数

EXTRACT(type FROM date) 220

9.4.11 时间和秒钟转换的函数 220

9.4.12 计算日期和时间的函数 221

9.4.13 格式化日期和时间的函数 224

9.5 条件判断函数 227

9.5.1 IF(expr,v1,v2)函数 227

9.5.2 IFNULL(v1,v2)函数 227

9.5.3 CASE函数 228

9.6 系统信息函数 229

9.6.1 获取MySQL版本号、连接数和

数据库名的函数 229

9.6.2 获取用户名的函数 231

9.6.3 获取字符串的字符集和排序方式

的函数 231

9.6.4 获取最后一个自动生成的ID值

的函数 232

9.7 加密和解密函数 234

9.7.1 加密函数PASSWORD(str) 234

9.7.2 加密函数MD5(str) 234

9.7.3 加密函数ENCODE

(str,pswd_str) 234

9.7.4 解密函数DECODE

(crypt_str,pswd_str) 235

9.8 其他函数 235

9.8.1 格式化函数FORMAT(x,n) 235

9.8.2 不同进制的数字进行转换的

函数 236

9.8.3 IP地址与数字相互转换的

函数 236

9.8.4 加锁函数和解锁函数 237

9.8.5 重复执行指定操作的函数 238

9.8.6 改变字符集的函数 238

9.8.7 改变数据类型的函数 239

9.9 综合实例——MySQL函数的使用 239

9.10 高手甜点 242

9.11 跟我学上机 243

第10章 查询数据 245

10.1 基本查询语句 246

10.2 单表查询 248

10.2.1 查询所有字段 248

10.2.2 查询指定字段 249

10.2.3 查询指定记录 250

10.2.4 带IN关键字的查询 252

10.2.5 带BETWEEN AND的范围

查询 254

10.2.6 带LIKE的字符匹配查询 255

10.2.7 查询空值 256

10.2.8 带AND的多条件查询 258

10.2.9 带OR的多条件查询 259

10.2.10 查询结果不重复 260

10.2.11 对查询结果排序 261

10.2.12 分组查询 264

10.2.13 使用LIMIT限制查询结果的

数量 269

10.3 使用集合函数查询 270

10.3.1 COUNT()函数 271

10.3.2 SUM()函数 272

10.3.3 AVG()函数 273

10.3.4 MAX()函数 274

10.3.5 MIN()函数 275

10.4 连接查询 276

10.4.1 内连接查询 276

10.4.2 外连接查询 279

10.4.3 复合条件连接查询 281

10.5 子查询 282

10.5.1 带ANY、SOME关键字的

子查询 282

10.5.2 带ALL关键字的子查询 283

10.5.3 带EXISTS关键字的子查询 283

10.5.4 带IN关键字的子查询 285

10.5.5 带比较运算符的子查询 286

10.6 合并查询结果 288

10.7 为表和字段取别名 290

10.7.1 为表取别名 290

10.7.2 为字段取别名 292

10.8 使用正则表达式查询 293

10.8.1 查询以特定字符或字符串开头

的记录 294

10.8.2 查询以特定字符或字符串结尾

的记录 295

10.8.3 替代字符串中的任意一个

字符 295

10.8.4 匹配多个字符 296

10.8.5 匹配指定字符串 297

10.8.6 匹配指定字符中的任意一个 298

10.8.7 匹配指定字符以外的字符 299

10.8.8 指定字符串连续出现的次数 299

10.9 综合实例——数据表查询操作 300

10.10 高手甜点 307

10.11 跟我学上机 308

第11章 存储过程和函数 309

11.1 创建存储过程和函数 310

11.1.1 创建存储过程 310

11.1.2 创建存储函数 312

11.1.3 变量的使用 313

11.1.4 定义条件和处理程序 314

11.1.5 光标的使用 317

11.1.6 流程控制的使用 318

11.2 调用存储过程和函数 322

11.2.1 调用存储过程 323

11.2.2 调用存储函数 323

11.3 查看存储过程和函数 324

11.3.1 查看存储过程和函数的状态 324

11.3.2 查看存储过程和函数的定义 325

11.3.3 查看存储过程和函数的信息 326

11.4 修改存储过程和函数 327

11.5 删除存储过程和函数 329

11.6 综合实例——综合应用存储过程

和函数 329

11.7 高手甜点 332

11.8 跟我学上机 333

第12章 MySQL触发器 335

12.1 创建触发器 336

12.1.1 创建只有一个执行语句的

触发器 336

12.1.2 创建有多个执行语句的

触发器 337

12.2 查看触发器 339

12.2.1 用SHOW TRIGGERS语句

查看触发器信息 339

12.2.2 在triggers表中查看触发器

信息 341

12.3 触发器的使用 342

12.4 删除触发器 343

12.5 综合实例——触发器的应用 343

12.6 高手甜点 345

12.7 跟我学上机 346

第4篇 MySQL数据库高级管理

第13章 MySQL安全性机制 349

13.1 权限表 350

13.1.1 user表 350

13.1.2 db表和host表 352

13.1.3 tables_priv表和

columns_priv表 354

13.1.4 procs_priv表 356

13.2 账户管理 356

13.2.1 登录和退出MySQL服务器 356

13.2.2 新建普通用户 358

13.2.3 删除普通用户 361

13.2.4 root用户修改自己的密码 363

13.2.5 root用户修改普通用户密码 364

13.2.6 普通用户修改密码 365

13.2.7 root用户密码丢失的解决

办法 366

13.3 权限管理 367

13.3.1 MySQL的各种权限 368

13.3.2 授权 370

13.3.3 收回权限 372

13.3.4 查看权限 373

13.4 访问控制 373

13.4.1 连接核实阶段 374

13.4.2 请求核实阶段 374

13.5 综合实例——综合管理用户权限 375

13.6 高手甜点 378

13.7 跟我学上机 378

第14章 数据备份与还原 381

14.1 数据备份 382

14.1.1 使用mysqldump命令备份 382

14.1.2 直接复制整个数据库目录 388

14.1.3 使用mysqlhotcopy工具快速

备份 388

14.2 数据还原 389

14.2.1 使用mysql命令还原 389

14.2.2 直接复制到数据库目录 390

14.2.3 mysqlhotcopy快速恢复 390

14.3 数据库迁移 391

14.3.1 相同版本的MySQL数据库

之间的迁移 391

14.3.2 不同版本的MySQL数据库

之间的迁移 391

14.3.3 不同数据库之间的迁移 392

14.4 表的导出和导入 392

14.4.1 用SELECT…INTO OUTFILE

导出文本文件 392

14.4.2 用mysqldump命令导出文本

文件 395

14.4.3 用mysql命令导出文本文件 397

14.4.4 使用LOAD DATA INFILE

方式导入文本文件 400

14.4.5 使用mysqlimport命令导入

文本文件 402

14.5 综合实例——数据的备份与恢复 404

14.6 高手甜点 408

14.7 跟我学上机 409

第15章 管理MySQL日志 411

15.1 日志简介 412

15.2 二进制日志 412

15.2.1 启动和设置二进制日志 412

15.2.2 查看二进制日志 413

15.2.3 删除二进制日志 415

15.2.4 使用二进制日志还原数据库 417

15.2.5 暂时停止记录二进制日志的

功能 417

15.3 错误日志 418

15.3.1 启动和设置错误日志 418

15.3.2 查看错误日志 418

15.3.3 删除错误日志 419

15.4 通用查询日志 420

15.4.1 启动和设置通用查询日志 420

15.4.2 查看通用查询日志 420

15.4.3 删除通用查询日志 420

15.5 慢查询日志 421

15.5.1 启动和设置慢查询日志 421

15.5.2 查看慢查询日志 422

15.5.3 删除慢查询日志 422

15.6 综合实例——MySQL日志的综合

管理 422

15.7 高手甜点 428

15.8 跟我学上机 428

第16章 MySQL性能的优化 429

16.1 优化简介 430

16.2 优化查询 430

16.2.1 分析查询语句 431

16.2.2 索引对查询速度的影响 433

16.2.3 使用索引查询 434

16.2.4 优化子查询 436

16.3 优化数据库结构 437

16.3.1 将字段较多的表分解成

多个表 437

16.3.2 增加中间表 438

16.3.3 增加冗余字段 440

16.3.4 优化插入记录的速度 440

16.3.5 分析、检查和优化表 442

16.4 优化MySQL服务器 443

16.4.1 优化服务器硬件 444

16.4.2 优化MySQL的参数 444

16.5 综合实例——全面优化MySQL

服务器 445

16.6 高手甜点 447

16.7 跟我学上机 448

第17章 MySQL的高级特性 449

17.1 MySQL查询缓存 450

17.1.1 认识查询缓存 450

17.1.2 监控和维护查询缓存 455

17.1.3 检查缓存命中 456

17.1.4 优化查询缓存 457

17.2 合并表和分区表 458

17.2.1 合并表 458

17.2.2 分区表 460

17.3 事务控制 469

17.4 MySQL分布式事务 473

17.4.1 分布式事务的原理 473

17.4.2 分布式事务的语法 473

17.5 高手甜点 474

17.6 跟我学上机 475

第18章 使用MySQL Workbench

管理数据库 477

18.1 MySQL Workbench简介 478

18.1.1 MySQL Workbench的优势 478

18.1.2 安装MySQL Workbench 478

18.2 SQL Development的基本操作 480

18.2.1 创建数据库连接 480

18.2.2 创建和删除新的数据库 482

18.2.3 创建和删除新的数据表 483

18.2.4 添加、修改表记录 486

18.2.5 查询表记录 487

18.2.6 修改表结构 488

18.3 Data Modeling的基本操作 489

18.3.1 建立ER模型 489

18.3.2 导入ER模型 493

18.4 Server Administration的基本操作 495

18.4.1 管理MySQL用户 495

18.4.2 备份MySQL数据库 498

18.4.3 还原MySQL数据库 500

18.5 高手甜点 501

18.6 跟我学上机 501

第5篇 MySQL开发与案例设计

第19章 Java访问MySQL 数据库 505

19.1 JDBC概述 506

19.2 下载与安装MySQL Connector/J 506

19.2.1 下载MySQL Connector/J 506

19.2.2 安装MySQL Connector/J

驱动 507

19.3 Java连接MySQL数据库 507

19.4 Java操作MySQL数据库 509

19.4.1 创建Statement对象 509

19.4.2 使用SELECT语句查询数据 509

19.4.3 插入、更新和删除数据 510

19.4.4 执行任意SQL语句 510

19.4.5 关闭创建的对象 511

19.5 Java备份和还原MySQL数据库 512

19.5.1 备份MySQL数据库 512

19.5.2 还原MySQL数据库 512

19.6 高手甜点 512

19.7 跟我学上机 513

第20章 PHP操作MySQL 数据库 515

20.1 PHP访问MySQL数据库的一般

步骤 516

20.2 连接数据库前的准备工作 516

20.2.1 在Windows系统下配置

PHP 516

20.2.2 在Linux系统下配置PHP 517

20.3 PHP操作MySQL数据库所用的

函数 517

20.3.1 通过mysqli类库访问MySQL

数据库 517

20.3.2 使用mysqli_connect()函数连接

MySQL服务器 519

20.3.3 使用mysqli_select_db()函数

选择数据库文件 520

20.3.4 使用mysqli_query()函数

执行SQL语句 520

20.3.5 使用mysqli_fetch_assoc ()函数

从数组结果集中获取信息 521

20.3.6 使用mysqli_fetch_object()函数

从结果中获取一行作为对象 521

20.3.7 使用mysqli_num_rows()函数

获取查询结果集中的记录数 521

20.3.8 使用mysqli_free_result()函数

释放资源 522

20.3.9 使用mysqli_close()函数关闭

连接 522

20.4 综合实例1——使用insert语句动态

添加用户信息 522

20.5 综合实例2——使用select语句查询

数据信息 524

20.6 高手甜点 526

20.7 跟我学上机 527

第21章 论坛管理系统数据库设计 529

21.1 系统概述 530

21.2 系统功能 530

21.3 数据库设计和实现 531

21.3.1 设计方案图表 531

21.3.2 设计表 533

21.3.3 设计索引 537

21.3.4 设计视图 538

21.3.5 设计触发器 538

第22章 新闻发布系统数据库设计 541

22.1 系统概述 542

22.2 系统功能 542

22.3 数据库设计和实现 543

22.3.1 设计表 543

22.3.2 设计索引 548

22.3.3 设计视图 549

22.3.4 设计触发器 549