第1 部分.初识MySQL.1
第1 章 MySQL 的概要 2
1.1 数据库的概要 2
1.1.1 数据库是什么 2
1.1.2 关系数据库是什么 3
1.1.3 数据库的特征 4
1.2 MySQL 是什么样的数据库 . 5
1.2.1 MySQL 是开源软件 5
1.2.2 MySQL 的历史 5
1.2.3 MySQL 的两种版本 6
1.2.4 MySQL 的特征 6
1.3 SQL 的概要 . 8
1.3.1 什么是SQL 8
1.3.2 首先熟悉SELECT 命令 8
1.4 总结 . 9
第2 章 MySQL 10
2.1 本书中使用的应 10
专栏 XAMPP . 11
2.2 学习MySQL 前的准备(安装和配置) 11
2.2.1 关于本书使用的MAMP. 11
12
专栏 如果文件的扩展名未. 12
2.2.3 MAMP 的启动和设置16
专栏 什么是localhost 19
2.2.4 确认开 19
2.2.5 构成MAMP 的文件夹 20
2.3 MySQL 的路径设置 21
2.4 关于中文的设置 23
2.4.1 MySQL 的字符编码设置. 24
2.4.2 修改my.ini . 24
2.5 本书中使用的表 25
2.5.1 销售信息表tb(按员工号统计的月销售额) 26
2.5.2 员工信息表tb1(各员工号代表的员工的姓名、年龄) 26
2.6 总结 27
专栏 关于macOS 版的MAMP 27
第2 部分.MySQL 的基础知识.29
第3 章 MySQL 监视器 30
3.1 创建数据库前的准备事项 30
3.2 什么是MySQL 监视器 . 30
3.3 启动MySQL 监视器 31
3.3.1 启动终端软件 31
3.3.2 启动MySQL 监视器 . 32
专栏 命令提示符的UTF-8 设置 33
3.3.3 当MySQL 监视器无法启动时 34
专栏 全角空格和半角空格. 34
3.3.4 确认MySQL 中字符编码的设置情况 34
3.4 MySQL 监视器的退出操作和密码设置 35
3.4.1 退出MySQL 监视器 . 35
3.4.2 使用历史命令 36
3.4.3 安全地输入密码 36
专栏 mysql 命令的选项 37
3.5 设置MySQL 管理员root 的密码 37
3.5.1 修改root 用户的密码 . 37
3.5.2 修改MAMP 的设置 38
3.5.3 修改phpMyAdmin 的设置 38
3.6 总结. 39
专栏 PowerShell 和命. 40
第4 章 创建数据库. 41
4.1 创建数据库. 41
4.1.1 创建数 41
专栏 在租赁服务器上使用MySQL . 42
4.2 确认创建的数据库. 43
4.2.1 确认数据库 43
4.2.2 test 和mysql 数据库 44
4.3 指定使用的数据库. 44
4.3.1 指定数据库 44
专栏 选择数据库启动MySQL 监视器 45
4.4 创建表tb1 45
4.4.1 列和字段. 46
4.4.2 数据类型. 46
4.4.3 创建表 46
专栏 使用`` 把数据库名括起来 47
4.5 显示所有的表 47
4.5.1 显示所有的表 47
专栏 访问其他数据库 48
4.6 确认表的列结构 49
4.6.1 确认表的列结构. 49
专栏 特殊的SHOW 50
4.7 向表中插入数据 50
4.7.1 插入数据. 50
4.7.2 向表tb1 中添加第2 条记录 52
4.7.3 指定列名插入记录 53
4.7.4 一次性输入记录. 53
4.8 显示数据 54
4.8.1 显示数据. 54
4.9 (准备)复制表tb1 56
4.10 总结 57
专栏 MySQL 的文档. 59
第5 章 数据类型和数据输入 60
5.1 什么是数据类型 60
5.2 数值类型 61
5.2.1 数值类型的种类. 61
5.2. 62
5.3 字符串类型. 62
5.3.1 字符串类型的种类 62
5.3.2 输入字符串 63
5.3.3 VARCHAR 和CHAR 的位数单位 63
5.4 日期与时间类型 63
5.4.1 日期与时间类型的种类. 63
5.4.2 输入日期与时间类型的数据 64
专栏 修改提示符的字符串. 65
5.5 总结. 66
第6 章 修改表 68
6.1 修改表的列结构 68
6.1.1 ALTER TABLE 命令68
6.2 修改列的数据类型. 69
专栏 修改数据类型要慎重. 70
6.3 添加列 70
6.3.1 添加员工信息记录 72
6.4 修改列的位置 73
6.4.1 把列添加到最前面 73
6.4.2 把列添加到任意位置 74
6.4.3 修改列的顺序 74
6.5 修改列名和数据类型 75
6.5.1 修改列的数据类型或位置的同时也修改列名. 75
6.6 删除列 77
专栏 故意输入超过指定数量的字符 78
6.7 设置主键 78
6.7.1 什么是唯一 78
6.7.2 什么是主键 79
6.7.3 创建主键. 79
6.7.4 确认主键. 80
6.7.5 设置唯一键 81
6.8 使列具有自动连续编号功能 82
6.8.1 具有自动连续编号功能的列的定义 82
6.8.2 创建具有自动连续编号功能的列 82
专栏 其他RDBMS 中自动连续编号功能的设置 83
6.9 使用自动连续编号功能插入记录. 84
6.9.1 确认插入的数据. 85
6.10 设置连续编号的初始值 85
6.10.1 连续编号的初始化. 85
6.11 设置列的默认值 87
6.11.1 修改列结构的定义. 87
6.11.2 输入数据 88
专栏 数据库的实体是什么. 89
6.12 创建索引 91
6.12.1 什么是索引. 91
6.12.2 创建索引 91
6.12.3 显示索引 91
6.12.4 删除索引 92
专栏 索引和处理速度的关系 93
6.13 总结 93
第7 章 复制、删除表和记录 96
7.1 复制表的列结构和记录 96
7.2 将表的列结构和记录整个复制过来 96
7.2.1 复制表的列结构和记录. 97
7.3 仅复制表的列结构. 98
7.3.1 仅复制表的列结构 98
7.4 复制其他表的记录 100
7.4.1 复制其他表的记录. 100
7.5 选择某一列进行复制. 101
7.6 删除表、数据库和记录 102
7.7 删除表. 102
7.7.1 当目标表存在时将其删除. 104
7.8 删除数据库 104
7.9 删除所有记录. 104
专栏 不使用MySQL 监视器操作MySQL 106
专栏 多行输入. 107
7.10 总结 107
第3 部分.熟练使用MySQL111
第8 章 使用各种条件进行提取112
8.1 设计列的显示内容并执行SELECT 112
8.1.1 准备表tb 112
8.1.2 改变列的显示顺序 113
8.1.3 使用别名 114
8.2 计算列值或处理字符串之后显示列 116
8.2.1 使用列值进行计算并显示 116
8.2.2 使用函数进行计算 118
8.2.3 用于显示各种信息的函数 120
专栏 计算圆的面积 121
8.2.4 连接字符串 121
8.2.5 字符串操作中常用的函数 122
8.2.6 日期和时间函数 124
8.3 设置条件进行显示 125
8.3.1 确定记录数并显示 126
8.3.2 使用WHERE 提取记录 . 127
8.3.3 比较运算符 128
8.3.4 使用字符串作为条件 . 130
8.3.5 使用NULL 作为条件 132
专栏 删除多余的记录 133
8.4 指定多个条件进行选择 . 134
8.4.1 使用AND 134
8.4.2 使用OR . 135
8.4.3 使用多个AND 或OR 137
8.4.4 使用CASE WHEN 138
8.5 排序 141
8.5.1 按升序排序并显示 141
8.5.2 按降序排序并显示 143
8.5.3 指定记录的显示范围 . 144
8.6 分组显示 . 146
8.6.1 分组显示 146
8.6.2 计算各组的记录数 147
8.6.3 显示各组的总和以及平均值 . 148
8.7 设置条件分组显示 150
8.7.1 按组处理 150
8.7.2 提取记录后分组 152
8.7.3 分组后排序. 154
8.7.4 分组方法总结 155
8.8 总结 157
专栏 WHERE 和HAVING. 160
第9 章 编辑数据161
9.1 更新记录 161
9.1.1 瞬间更新列中所有的记录. 161
专栏 防止意外执行UPDATE 和DELETE 163
9.1.2 只修改符合条件的记录 163
9.1.3 将销售额最低的3 条记录的备注修改为“加油!” 165
9.2 复制符合条件的记录. 167
9.2.1 仅复制指定记录 167
9.2.2 排序后复制. 169
9.3 删除符合条件的记录. 170
9.3.1 删除所有记录(复习) 170
9.3.2 删除指定的记录 171
9.3.3 排序后删除. 172
9.4 总结 173
专栏 数据库的运用方法 176
第10 章 使用多个表177
10.1 显示多个表的记录 177
10.1.1 确认本章示例中使用的多个表 177
10.1.2 显示多条提取结果 178
10.1.3 使用UNION 合并3 个以上的表 180
10.1.4 按条件合并多条提取结果进行显示. 181
10.1.5 合并显示多条提取结果(允许重复) 183
10.2 连接多个表并显示(内连接). 184
10.2.1 使用其他表的记录进行处理. 184
专栏 有“内连接”的话是不是也有“外连接”呢. 187
10.2.2 选择列进行显示 187
10.2.3 给表添加别名. 188
10.2.4 使用USING 使ON ~的部分更容易阅读. 190
10.2.5 通过WHERE 设置条件从连接表中提取记录. 191
10.2.6 提取多个表中的记录. 192
10.3 显示多个表的所有记录(外连接) 196
10.3.1 什么是外连接. 196
10.3.2 外连接的种类. 197
10.3.3 使用左外连接. 198
10.3.4 使用右外连接. 201
10.3.5 避免混合使用左外连接和右外连接. 203
专栏 加上OUTER 后的书写方法 203
10.4 自连接 203
10.4.1 什么是自连接. 203
10.4.2 排序的技巧其一 206
10.5 从SELECT 的记录中SELECT(子查询) 208
10.5.1 什么是子查询. 208
10.5.2 显示最大值(返回值的子查询其一) 209
专栏 GROUP BY 函数 212
10.5.3 提取大于等于平均值的记录(返回值的子查询其二) 212
10.5.4 使用IN(返回列的子查询). 213
专栏 子查询和内连接的提取结果的差异(虽然相似但不同!) 215
10.5.5 使用“=”代替IN 会报错吗. 216
10.5.6 使用EXISTS,仅以存在的记录为对象 218
10.5.7 NOT EXISTS 219
10.5.8 排序的技巧其二 221
10.6 总结 224
第11 章 熟练使用视图.227
11.1 什么是视图 227
11.1.1 视图的真面目. 227
11.1.2 视图的用途 227
专栏 视图和MySQL 的版本 228
11.2 使用视图. 229
11.2.1 创建视图 229
11.2.2 通过视图更新列的值. 230
11.3 设置条件创建视图 232
11.3.1 设置条件创建视图 232
11.3.2 当更新基表时,视图会发生什么变化 234
11.3.3 确认视图 236
11.4 限制通过视图写入 238
11.4.1 对视图执行INSERT 操作会出现什么样的结果. 238
11.4.2 设置了条件的基表中会发生什么变化 240
11.4.3 当与视图的条件不匹配时报错 242
11.5 替换、修改和删除视图. 243
11.5.1 替换视图 243
11.5.2 修改视图结构. 244
11.5.3 删除视图 245
专栏 什么是复制 245
11.6 总结 247
第12 章 熟练使用存储过程250
12.1 什么是存储过程. 250
12.1.1 可用的版本 250
12.1.2 什么是存储过程 250
12.2 使用存储过程 251
12.2.1 创建存储过程. 251
12.2.2 执行存储过程 254
12.2.3 创建只显示大于等于指定值的记录的存储过程 255
专栏 在参数中加上IN 的例子 257
12.3 显示、删除存储过程. 258
12.3.1 显示存储过程的内容. 258
12.3.2 删除存储过程. 258
12.4 什么是存储函数 259
12.4.1 可用版本. 259
12.4.2 什么是存储函数 259
12.5 使用存储函数 260
12.5.1 使用存储函数之前 260
12.5.2 使用存储函数计算标准体重 261
12.5.3 返回记录平均值的存储函数. 264
12.5.4 显示和删除存储函数. 266
12.6 什么是触发器. 267
12.6.1 什么是触发器. 267
12.7 创建触发器 268
12.7.1 触发器被触发的时机. 268
12.7.2 创建触发器 269
12.7.3 触发器的内容 272
12.8 确认和删除触发器. 273
12.8.1 确认设置的触发器 273
12.8.2 删除触发器. 274
12.9 总结. 274
第13 章 熟练使用事务277
13.1 什么是存储引擎 277
13.1.1 什么是存储引擎. 277
13.1.2 存储引擎的种类 278
13.2 设置存储引擎 278
13.2.1 确认存储引擎 278
专栏 使用“G”代替“;” 279
13.2.2 修改存储引擎 280
13.3 什么是事务. 281
13.4 使用事务 282
13.4.1 执行前的注意事项 282
13.4.2 开启事务 282
13.4.3 确认表的内容 284
13.5 自动提交功能 285
13.5.1 关闭自动提交功能. 286
13.5.2 启动已关闭的自动提交功能 287
专栏 如何确认当前自动提交功能的模式?. 288
13.5.3 事务的使用范围 288
13.6 总结. 288
第14 章 使用文件进行交互.291
14.1 从文本文件中读取数据(导入). 291
14.1.1 CSV 文件. 291
14.1.2 导入和导出的准备 292
14.1.3 导入文件. 293
专栏 导入GB 2312 的文本文件. 296
14.1.4 将数据写入文本文件(导出). 296
14.1.5 导出文件 297
14.2 从文件中读取并执行SQL 命令. 298
14.2.1 通过MySQL 监视器执行编写在文件中的SQL 语句 298
专栏 将常用表的内容保存到文件中 301
14.2.2 通过命令提示符执行编写在文件中的SQL 命令 302
专栏 在批处理文件中记录SQL 命令 . 304
14.3 将SQL 的执行结果保存到文件中 . 304
14.3.1 通过重定向将SQL 语句的执行结果输出到文本文件中 304
专栏 使用重定向输入SQL 语句,并通过重定向将结果输出到文件 307
14.3.2 使用tee 命令将SQL 语句的执行结果保存到文件中 307
14.4 备份和恢复数据库 309
14.4.1 备份和恢复的方法 309
14.4.2 使用mysqldump 导出 310
专栏 恢复作业失败的情况 312
14.4.3 恢复转储文件 . 313
14.4.4 字符编码问题 . 315
专栏 锁表 315
14.5 总结 316
第4 部分.MySQL+PHP 的基础.319
第15 章 用于控制MySQL 的PHP.320
15.1 要创建的示例 . 320
15.2 在Web 应用程序中使用MySQL 321
15.3 使用Web 时需要用到的机制 321
15.3.1 Web 服务器和客户端 321
15.3.2 Web 服务器的作用 322
15.3.3 Apache 和Web 服务器 . 322
专栏 有状态协议 . 323
15.4 静态页面和动态页面 323
15.5 在Web 上运行的程序 324
15.5.1 CGI . 324
15.5.2 脚本 . 324
15.6 什么是PHP 325
15.6.1 PHP 是什么 325
15.6.2 本书使用的PHP 326
15.6.3 设置php.ini . 326
15.7 首先显示“欢迎光临!” 327
15.7.1 确认Apache 是否启动 327
专栏 localhost 的IP 地址 328
15.7.2 首先用PHP 显示“欢迎光临!” 328
15.7.3 没有正常显示时的解决对策 330
15.8 使用PHP. 332
15.8.1 编写PHP 脚本时需要遵循的规则 332
专栏 编写PHP 脚本. 333
15.8.2 执行了什么处理. 333
专栏 print 和echo. 335
15.8.3 注释的写法 336
15.8.4 phpinfo 函数 336
专栏 使用PHP 关闭操作系统. 337
15.9 总结 338
第16 章 PHP 基础知识340
16.1 变量 340
16.1.1 什么是PHP 的变量 340
16.1.2 变量名的规则 342
16.1.3 预定义常量 342
16.1.4 变量的数据类型. 343
16.2 字符串 344
16.2.1 连接字符串. 344
16.2.2 " 和' 的使用方法. 344
16.2.3 用" " 将变量括起来和用' ' 将变量括起来的区别 346
16.3 函数 347
16.3.1 本书涉及的PHP 函数. 347
16.3.2 通过date 函数显示日期和时间 347
16.3.3 环境信息. 349
16.3.4 通过gethostbyaddr 函数获取主机名. 351
16.4 比较运算符 353
16.5 循环处理. 353
16.5.1 通过for 实现循环. 353
16.5.2 通过while 实现循环 356
16.5.3 通过do…while 实现循环 357
16.6 条件判断. 358
16.6.1 通过if 进行条件判断 358
16.6.2 三元运算符 359
16.6.3 设置了多个条件的if 的语法 360
专栏 存储过程中的条件分支. 361
16.6.4 使用了switch 的条件判断. 362
16.7 数组 365
16.7.1 什么是数组 365
16.7.2 给数组赋值的方法 366
专栏 下标的数值设定要恰当 367
16.7.3 关联数组 368
专栏 关联数组的下标即使不使用 " " 或' ' 括起来也能正常工作吗 368
16.8 总结. 369
专栏 PHP 的文档 369
第17 章 PHP 脚本和HTML372
17.1 HTML 源代码 372
17.2 制作Web 页面的两种方法 373
17.2.1 制作静态Web 页面 373
17.2.2 制作动态Web 页面 373
17.2.3 浏览器不区分静态页面和动态页面 374
17.3 HTML 的规则 374
17.4 使用PHP 脚本输出HTML 文件. 377
17.5 需要记住的标签. 379
17.6 使用CSS 指定颜色和字体大小 382
17.6.1 指定背景的颜色 382
17.6.2 指定字符的大小和颜色. 384
17.7 Here Document 和nl2br 函数. 385
17.7.1 什么是Here Document. 385
17.7.2 什么是nl2br 函数 386
专栏 <textarea> 标签. 388
17.8 使用PHP 从浏览器发送和接收数据 388
17.8.1 浏览器和PHP 文件之间的数据交换 388
17.8.2 制作一个用于发送数据的Web 页面send.html. 389
17.8.3 创建receive.php 以接收和显示数据. 394
专栏 超级全局变量 395
17.8.4 发送和接收数据 395
17.9 通过POST 和GET 发送数据 396
17.9.1 发送和接收数据. 396
17.9.2 使用GET 方法发送数据 396
17.9.3 GET 和POST 的区别 397
17.9.4 试着用GET 方法将值添加在URL 上发送 398
17.9.5 在不进行任何声明的情况下发送数据 399
专栏 Google 是否也可以把数据添加在URL 上 400
17.10 总结 401
第18 章 使用PHP 脚本操作MySQL404
18.1 使用PHP 脚本连接到MySQL 服务器 404
18.1.1 从PHP 连接到数据库的方法 404
专栏 mysql 函数 . 405
18.1.2 什么是PDO ?什么是类?什么是方法? 405
18.1.3 使用PDO 连接到MySQL 服务器 405
18.2 使用PDO 执行SQL 语句 407
18.2.1 向表中插入记录 408
18.2.2 在PHP 中接收SQL 语句的执行结果 . 410
18.3 异常处理中的错误处理 413
18.3.1 SQL 的错误处理 414
专栏 显示数据库中存在的表 . 416
18.4 总结 417
第5 部分.MySQL.+.PHP 实践419
第19 章 .使用PHP 和MySQL 制作一个简易公告板.420
19.1 制作一个简易公告板 . 420
19.1.1 简易公告板的结构 420
19.1.2 创建数据库和表 . 421
19.1.3 简易公告板的文件结构 422
19.2 创建首页 . 423
19.2.1 调用消息显示脚本的表单 423
19.2.2 调用插入脚本的表单 . 423
19.2.3 调用删除脚本的表单 424
19.2.4 调用查询脚本的表单 . 425
19.2.5 创建首页 426
19.3 创建分别具有显示、插入、删除和查询功能的PHP 脚本 . 427
19.3.1 4 个脚本的共通之处 427
19.3.2 用于显示记录的PHP 脚本 . 427
19.3.3 用于插入记录的PHP 脚本 428
19.3.4 用于删除记录的PHP 脚本 431
19.3.5 用于查询记录的PHP 脚本. 432
19.3.6 确认4 个文件的运行结果 433
专栏 在公告板上输入标签的技巧. 434
19.4 总结 435
第20 章 发布到互联网上时需要注意的地方438
20.1 不在发布的文件夹中放置重要信息 438
20.1.1 PHP 文件的结构. 438
20.1.2 如何读取其他文件的脚本 439
专栏 读取外部文件的命令. 441
20.2 避免在查询中输入非法数据. 441
20.2.1 什么是SQL 注入. 441
20.3 正则表达式 443
20.3.1 什么是正则表达式 443
20.3.2 正则表达式的示例. 443
20.3.3 preg_match 函数 444
20.3.4 使用正则表达式检查非法输入. 445
20.4 不执行非预期标签 446
20.4.1 发送恶意标签 446
20.4.2 漏洞攻击. 448
20.4.3 移除输入的标签. 448
专栏 如何创建安全的脚本 450
20.5 总结 450
第21 章 创建一个实用公告板.453
21.1 创建一个实用公告板 453
21.1.1 准备实用公告板中使用的图片 456
21.2 创建实用公告板中使用的表 456
21.2.1 tbj0(主题表). 457
21.2.2 tbj1(消息表) 457
21.3 制作首页(创建主题以及显示列表). 458
21.3.1 bulletin_top.php 的代码清单 458
21.3.2 bulletin_top.php 的结构 462
21.4 制作各个主题的页面(输入回帖和显示列表) 464
21.4.1 bulletin.php 的代码清单. 465
21.4.2 bulletin.php 的结构 469
21.5 制作消息的查询页面 473
21.5.1 bulletin_search.php 的代码清单 474
21.5.2 bulletin_search.php 的结构 476
21.6 制作读取数据库信息的原始文件 . 478
21.7 制作数据重置页面 479
21.7.1 bulletin_reset.php 的代码清单 . 479
21.7.2 bulletin_reset.php 的结构 479
21.8 总结 480
第6 部分.附录483
附录1 使用phpMyAdmin . 484
附录2 常见问题的检查清单 489
附录3 MySQL 基础练习 493
· · · · · · (
收起)