图书目录

目录

第1章  认识数据库与MySQL 001

1.1 认识数据库 001

1.1.1 数据库的基本概念 001

1.1.2 数据库系统的组成 002

1.1.3 数据库系统的特点 003

1.2 认识MySQL数据库 003

1.2.1 MySQL系统特性 004

1.2.2 选择MySQL版本 004

1.2.3 MySQL版本的命名机制 004

1.3 安装与配置MySQL 8.0 005

1.3.1 下载MySQL软件 005

1.3.2 安装MySQL软件 006

1.3.3 配置MySQL软件 008

1.4 启动并登录MySQL数据库 012

1.4.1 启动MySQL服务 012

1.4.2 登录MySQL数据库 013

1.4.3 配置Path变量 014

1.5 卸载MySQL数据库 016

1.6 课后习题与练习 017

1.7 新手疑难问题解答 018

1.8 实战训练 018

第2章  MySQL的管理工具 019

2.1 认识常用图形管理工具 019

2.1.1 MySQL Workbench 019

2.1.2 phpMyAdmin 020

2.1.3 Navicat for MySQL 020

2.2 MySQL Workbench的应用 021

2.2.1 下载MySQL Workbench 021

2.2.2 安装MySQL Workbench 022

2.2.3 创建数据库连接 023

2.2.4 创建与删除数据库 025

2.2.5 创建和删除新的数据表 026

2.2.6 添加与修改数据表记录 028

2.2.7 查询表中的数据记录 028

2.2.8 修改数据表的数据结构 029

2.3 phpMyAdmin的应用 029

2.3.1 下载并启动phpMyAdmin 029

2.3.2 创建与删除数据库 031

2.3.3 创建与删除数据表 031

2.3.4 添加数据表记录 033

2.3.5 数据库的备份 034

2.3.6 数据库的还原 034

2.4 Navicat for MySQL的应用 035

2.4.1 下载与安装Navicat for MySQL 036

2.4.2 连接MySQL服务器 037

2.4.3 创建与删除数据库 038

2.4.4 创建与删除数据表 039

2.4.5 添加与修改数据记录 040

2.4.6 查询数据表中的数据 041

2.4.7 数据库备份和还原 041

2.5 以图形方式管理MySQL用户 043

2.5.1 创建用户账户 043

2.5.2 删除用户账户 045

2.5.3 加密用户账户 045

2.5.4 用户权限管理 046

2.6 课后习题与练习 047

2.7 新手疑难问题解答 048

2.8 实战训练 049

第3章  数据库的创建与操作 050

3.1 MySQL数据库概述 050

3.1.1 数据库特点 050

3.1.2 数据库对象 051

3.1.3 系统数据库 052

3.2 创建数据库 053

3.2.1 使用CREATE DATABASE语句创建 053

3.2.2 使用mysqladmin命令创建 053

3.2.3 使用PHP脚本创建 054

3.3 选择与查看数据库 055

3.3.1 从命令提示窗口中选择 055

3.3.2 使用PHP脚本选择 055

3.3.3 使用命令查看数据库 056

3.4 删除数据库 056

3.4.1 使用DROP语句删除 056

3.4.2 使用mysqladmin命令删除 057

3.4.3 使用PHP脚本删除 057

3.5 数据库存储引擎 058

3.5.1 MySQL存储引擎简介 058

3.5.2 InnoDB存储引擎 060

3.5.3 MyISAM存储引擎 060

3.5.4 MEMORY存储引擎 061

3.5.5 存储引擎的选择 061

3.6 课后习题与练习 062

3.7 新手疑难问题解答 063

3.8 实战训练 063

第4章  数据表的创建与操作 064

4.1 数据表中能存放的数据类型 064

4.1.1 数值类型 064

4.1.2 日期和时间类型 066

4.1.3 字符串类型 066

4.1.4 选择数据类型 067

4.2 创建数据表 068

4.2.1 创建数据表的语法形式 068

4.2.2 使用CREATE语句创建数据表 068

4.3 查看数据表的结构 069

4.3.1 查看表基本结构 070

4.3.2 查看表详细结构 070

4.4 修改数据表 070

4.4.1 修改数据表的名称 070

4.4.2 修改字段数据类型 071

4.4.3 修改数据表的字段名 072

4.4.4 在数据表中添加字段 072

4.4.5 修改字段的排序方式 074

4.4.6 删除不需要的字段 075

4.5 删除数据表 075

4.5.1 删除没有被关联的表 075

4.5.2 删除被其他表关联的主表 076

4.6 课后习题与练习 077

4.7 新手疑难问题解答 079

4.8 实战训练 079

第5章  数据表的完整性约束 080

5.1 数据完整性及其分类 080

5.1.1 数据完整性的分类 080

5.1.2 表中的约束条件有哪些 081

5.2 主键约束 081

5.2.1 创建表时添加主键 081

5.2.2 修改表时添加主键 083

5.2.3 创建联合主键约束 084

5.2.4 删除表中的主键 085

5.3 外键约束 086

5.3.1 创建表时添加外键约束 086

5.3.2 修改表时添加外键约束 088

5.3.3 删除表中的外键约束 088

5.4 默认约束 089

5.4.1 创建表时添加默认约束 089

5.4.2 修改表时添加默认约束 090

5.4.3 删除表中的默认约束 090

5.5 唯一性约束 091

5.5.1 创建表时添加唯一性约束 091

5.5.2 修改表时添加唯一性约束 092

5.5.3 删除表中的唯一性约束 092

5.6 非空约束 093

5.6.1 创建表时添加非空约束 093

5.6.2 修改表时添加非空约束 094

5.6.3 删除表中的非空约束 094

5.7 字段的自增属性 095

5.7.1 创建表时添加自增属性 095

5.7.2 修改表时添加自增属性 096

5.7.3 删除表中的自增属性 096

5.8 课后习题与练习 096

5.9 新手疑难问题解答 097

5.10 实战训练 098

第6章  插入、更新与删除数据记录 100

6.1 向数据表中插入数据 100

6.1.1 给表里的所有字段插入数据 100

6.1.2 向表中添加数据时使用默认值 103

6.1.3 一次插入多条数据 104

6.1.4 通过复制表数据插入数据 105

6.2 更新数据表中的数据 107

6.2.1 更新表中的全部数据 107

6.2.2 更新表中指定单行数据 108

6.2.3 更新表中指定多行数据 109

6.3 删除数据表中的数据 109

6.3.1 根据条件清除数据 109

6.3.2 清空表中的数据 110

6.4 课后习题与练习 111

6.5 新手疑难问题解答 112

6.6 实战训练 112

第7章  数据表的简单查询 115

7.1 认识SELECT语句 115

7.2 数据的简单查询 116

7.2.1 查询表中所有数据 116

7.2.2 查询表中想要的数据 118

7.2.3 对查询结果进行计算 118

7.2.4 为结果列使用别名 119

7.2.5 在查询时去除重复项 119

7.2.6 在查询结果中给表取别名 119

7.2.7 使用LIMIT限制查询数据 120

7.3 使用WHERE子句进行条件查询 121

7.3.1 比较查询条件的数据查询 121

7.3.2 带BETWEEN AND的范围查询 122

7.3.3 带IN关键字的查询 123

7.3.4 带LIKE的字符匹配查询 124

7.3.5 未知空数据的查询 126

7.3.6 带AND的多条件查询 126

7.3.7 带OR的多条件查询 127

7.4 操作查询的结果 129

7.4.1 对查询结果进行排序 129

7.4.2 对查询结果进行分组 131

7.4.3 对分组结果过滤查询 133

7.5 使用集合函数进行统计查询 134

7.5.1 使用SUM()求列的和 134

7.5.2 使用AVG()求列平均值 135

7.5.3 使用MAX()求列最大值 135

7.5.4 使用MIN()求列最小值 136

7.5.5 使用COUNT()统计 137

7.6 课后习题与练习 138

7.7 新手疑难问题解答 139

7.8 实战训练 139

第8章  数据表的复杂查询 140

8.1 子查询 140

8.1.1 带比较运算符的子查询 140

8.1.2 带IN关键字的子查询 142

8.1.3 带ANY关键字的子查询 143

8.1.4 带ALL关键字的子查询 143

8.1.5 带SOME关键字的子查询 144

8.1.6 带EXISTS关键字的子查询 144

8.2 合并查询结果 145

8.2.1 合并查询的语法格式 145

8.2.2 合并查询的具体应用 145

8.3 内连接查询 147

8.3.1 笛卡儿积查询 147

8.3.2 内连接的简单查询 147

8.3.3 等值内连接查询 148

8.3.4 非等值内连接查询 149

8.3.5 自连接的内连接查询 149

8.3.6 带条件的内连接查询 149

8.4 外连接查询 150

8.4.1 认识外连接查询 150

8.4.2 左外连接查询 151

8.4.3 右外连接查询 151

8.5 使用正则表达式查询 152

8.5.1 查询以特定字符或字符串开头的记录 152

8.5.2 查询以特定字符或字符串结尾的记录 153

8.5.3 用符号“.”代替字符串中的任意一个字符 153

8.5.4 匹配指定字符中的任意一个 154

8.5.5 匹配指定字符以外的字符 155

8.5.6 匹配指定字符串 155

8.5.7 用“*”和“+”匹配多个字符 156

8.5.8 使用{M}或者{M,N}指定字符串连续出现的次数 156

8.6 课后习题与练习 157

8.7 新手疑难问题解答 158

8.8 实战训练 158

第9章  MySQL编程基础 159

9.1 MySQL语言编程 159

9.2 认识常量与变量 160

9.2.1 认识常量 160

9.2.2 定义变量 161

9.3 常用运算符及优先级 163

9.3.1 算术运算符 163

9.3.2 比较运算符 164

9.3.3 逻辑运算符 169

9.3.4 位运算符 171

9.3.5 运算符的优先级 173

9.4 认识流程控制语句 173

9.4.1 IF语句 174

9.4.2 CASE语句 174

9.4.3 LOOP语句 175

9.4.4 LEAVE语句 175

9.4.5 ITERATE语句 175

9.4.6 REPEAT语句 176

9.4.7 WHILE语句 176

9.5 课后习题与练习 177

9.6 新手疑难问题解答 178

9.7 实战训练 178

第10章  内置函数与自定义函数 179

10.1 数学函数 179

10.1.1 求绝对值和返回圆周率 180

10.1.2 获取数平方根与求余 180

10.1.3 获取四舍五入后的值 181

10.1.4 求数值的幂运算 182

10.1.5 求数值的对数运算值 182

10.1.6 角度与弧度的相互转换 183

10.1.7 求正弦值与余弦值 183

10.1.8 求正切值与余切值 183

10.2 字符串函数 184

10.2.1 计算字符串的字符数 185

10.2.2 计算字符串的长度 185

10.2.3 合并字符串 185

10.2.4 替换字符串 186

10.2.5 字母大小写转换 187

10.2.6 获取指定长度字符串 187

10.2.7 填充字符串 188

10.2.8 删除字符串的空格 188

10.3 日期和时间函数 189

10.3.1 获取当前日期和当前时间 190

10.3.2 获取当前日期和时间 191

10.3.3 获取UNIX格式的时间 191

10.3.4 返回UTC日期和返回UTC时间 192

10.3.5 获取指定日期的月份 192

10.3.6 获取指定日期的星期数 192

10.3.7 获取指定日期在一年中的星期周数 193

10.3.8 时间和秒钟的相互转换 194

10.3.9 日期和时间的加减运算 194

10.3.10 将日期和时间进行格式化 196

10.4 其他内置函数 197

10.4.1 条件判断函数 197

10.4.2 系统信息函数 199

10.4.3 数据加密函数 202

10.5 自定义函数 202

10.5.1 创建自定义函数 202

10.5.2 调用自定义函数 203

10.5.3 查看自定义函数 204

10.5.4 修改自定义函数 205

10.5.5 删除自定义函数 206

10.6 课后习题与练习 207

10.7 新手疑难问题解答 208

10.8 实战训练 208

第11章  视图的创建与应用 209

11.1 了解视图 209

11.1.1 视图的含义 209

11.1.2 视图的作用 210

11.2 创建视图 210

11.2.1 创建视图的语法格式 210

11.2.2 在单表上创建视图 211

11.2.3 在多表上创建视图 212

11.3 修改视图 213

11.3.1 修改视图的语法格式 213

11.3.2 使用CREATE OR REPLACE VIEW语句修改视图 214

11.3.3 使用ALTER语句修改视图 215

11.4 查看视图信息 216

11.4.1 使用DESCRIBE语句查看 216

11.4.2 使用SHOW TABLE STATUS语句查看 216

11.4.3 使用SHOW CREATE VIEW语句查看 217

11.4.4 在views表中查看视图详细信息 218

11.5 使用视图更新数据 218

11.5.1 通过视图插入数据 219

11.5.2 通过视图修改数据 220

11.5.3 通过视图删除数据 220

11.6 删除视图 221

11.6.1 删除视图的语法 221

11.6.2 删除不用的视图 222

11.7 课后习题与练习 222

11.8 新手疑难问题解答 223

11.9 实战训练 224

第12章  索引的创建与应用 225

12.1 了解索引 225

12.1.1 索引的概念 225

12.1.2 索引的作用 226

12.1.3 索引的分类 226

12.2 创建数据表时创建索引 226

12.2.1 创建普通索引 227

12.2.2 创建唯一索引 228

12.2.3 创建全文索引 229

12.2.4 创建单列索引 230

12.2.5 创建多列索引 230

12.2.6 创建空间索引 231

12.3 在已经存在的表上创建索引 232

12.3.1 创建普通索引 233

12.3.2 创建唯一索引 233

12.3.3 创建全文索引 234

12.3.4 创建单列索引 234

12.3.5 创建多列索引 235

12.3.6 创建空间索引 235

12.4 使用ALTER TABLE语句创建索引 236

12.4.1 创建普通索引 237

12.4.2 创建唯一索引 237

12.4.3 创建全文索引 238

12.4.4 创建单列索引 238

12.4.5 创建多列索引 238

12.4.6 创建空间索引 239

12.5 删除索引 239

12.5.1 使用ALTER TABLE语句删除索引 239

12.5.2 使用DROP INDEX语句删除索引 240

12.6 课后习题与练习 240

12.7 新手疑难问题解答 241

12.8 实战训练 242

第13章  触发器的创建与应用 243

13.1 了解触发器 243

13.2 创建触发器 244

13.2.1 创建一条执行语句的触发器 244

13.2.2 创建多条执行语句的触发器 246

13.3 查看触发器 247

13.3.1 使用SHOW TRIGGERS语句查看 247

13.3.2 通过INFORMATION_SCHEMA查看 247

13.4 删除触发器 249

13.5 课后习题与练习 249

13.6 新手疑难问题解答 250

13.7 实战训练 250

第14章  存储过程的创建与应用 251

14.1 了解存储过程 251

14.1.1 什么是存储过程 251

14.1.2 存储过程的作用 252

14.2 创建存储过程 252

14.2.1 创建存储过程的语法格式 252

14.2.2 创建不带参数的存储过程 253

14.2.3 创建带有参数的存储过程 254

14.3 调用存储过程 254

14.3.1 调用存储过程的语法格式 254

14.3.2 调用不带参数的存储过程 254

14.3.3 调用带有参数的存储过程 255

14.4 修改存储过程 255

14.4.1 修改存储过程的语法格式 255

14.4.2 使用SQL语句修改存储过程 256

14.5 查看存储过程 257

14.5.1 使用SHOW PROCEDURE STATUS语句查看 257

14.5.2 使用SHOW CREATE PROCEDURE语句查看 257

14.5.3 通过INFORMATION_SCHEMA.ROUTINES查看 258

14.6 删除存储过程 258

14.7 课后习题与练习 259

14.8 新手疑难问题解答 260

14.9 实战训练 260

第15章  MySQL用户的管理 261

15.1 认识用户权限表 261

15.1.1 user表 261

15.1.2 db表 262

15.1.3 tables_priv表 263

15.1.4 columns_priv表 264

15.1.5 procs_priv表 264

15.2 用户账户的管理 265

15.2.1 创建用户账户 265

15.2.2 删除用户账户 266

15.3 用户权限的管理 268

15.3.1 认识用户权限 268

15.3.2 授予用户权限 268

15.3.3 查看用户权限 270

15.3.4 收回用户权限 270

15.4 用户角色的管理 271

15.4.1 创建角色 271

15.4.2 给角色授权 271

15.4.3 删除角色 272

15.5 课后习题与练习 273

15.6 新手疑难问题解答 274

15.7 实战训练 274

第16章  MySQL日志的管理 275

16.1 错误日志 275

16.1.1 启动错误日志 275

16.1.2 查看错误日志 276

16.1.3 删除错误日志 276

16.2 二进制日志 276

16.2.1 启动二进制日志 277

16.2.2 查看二进制日志 278

16.2.3 删除二进制日志 279

16.3 通用查询日志 280

16.3.1 启动通用查询日志 280

16.3.2 查看通用查询日志 281

16.3.3 删除通用查询日志 281

16.4 慢查询日志 281

16.4.1 启动慢查询日志 281

16.4.2 查看慢查询日志 282

16.4.3 删除慢查询日志 282

16.5 课后习题与练习 282

16.6 新手疑难问题解答 283

16.7 实战训练 284

第17章  MySQL的性能优化 285

17.1 认识MySQL性能优化 285

17.2 查询速度的优化 286

17.2.1 分析查询语句 286

17.2.2 使用索引优化查询 289

17.2.3 使用索引查询的缺陷 289

17.2.4 优化子查询 292

17.3 数据库结构的优化 292

17.3.1 通过分解表来优化 292

17.3.2 通过中间表来优化 293

17.3.3 通过冗余字段优化 294

17.3.4 优化插入记录的速度 295

17.3.5 分析表、检查表和优化表 296

17.4 MySQL服务器的优化 298

17.4.1 服务器硬件的优化 298

17.4.2 MySQL参数的优化 298

17.5 课后习题与练习 299

17.6 新手疑难问题解答 300

17.7 实战训练 300

第18章  数据库的备份与还原 301

18.1 数据库的备份 301

18.1.1 使用MySQLdump工具备份 301

18.1.2 使用MySQLhotcopy工具快速备份 305

18.1.3 直接复制整个数据库目录 306

18.2 数据库的还原 306

18.2.1 使用MySQL命令还原 306

18.2.2 使用MySQLhotcopy工具快速还原 307

18.2.3 直接复制到数据库目录 307

18.3 数据库的迁移 308

18.3.1 相同版本之间的迁移 308

18.3.2 不同版本之间的迁移 308

18.3.3 不同数据库之间的迁移 308

18.4 数据表的导出和导入 309

18.4.1 使用MySQL命令导出 309

18.4.2 使用MySQLdump命令导出 311

18.4.3 使用SELECT…INTO OUTFILE语句导出 312

18.4.4 使用LOAD DATA INFILE语句导入 315

18.4.5 使用MySQLimport命令导入 317

18.5 课后习题与练习 318

18.6 新手疑难问题解答 319

18.7 实战训练 319