关于我们
书单推荐
新书推荐
|
MySQL基础教程(图灵出品)
本书介绍了MySQL的操作方法以及通过使用PHP和MySQL创建Web应用程序的基础知识。作者从数据库是什么开始讲起,由浅入深,通过丰富的图示和大量的示例程序,让读者循序渐进地掌握MySQL,最终带领读者使用MySQL和PHP开发能够在Web上公开的具有安全性的Web应用程序。
1.本书是日本公认的MySQL入门教程,原版长销13年,好评如潮,本书是第3次改版
西泽梦路(作者)
生于埼玉县。技术写作人,同时也是一名大学研究员。主要研究领域为信息教育。著有《Oracle基础教程》《PHP基础教程》等。 卢克贵(译者) Oracle数据库技术支持工程师。Oracle全球客户支持(GCS大连)数据库性能与安全日语组组长,中文Tier1工程师。
第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 专栏 标签. 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
你还可能感兴趣
我要评论
|