MySQL基础教程

作者
西泽梦路
丛书名
图灵程序设计丛书
出版社
人民邮电出版社
ISBN
9787115527585
简要
简介
内容简介书籍计算机书籍 本书介绍了MySQL的操作方法以及通过使用PHP和MySQL创建Web应用程序的基础知识。作者从数据库是什么开始讲起,由浅入深,通过丰富的图示和大量的示例程序,让读者循序渐进地掌握MySQL,*终带领读者使用MySQL和PHP开发能够在Web上公开的具有安全性的Web应用程序。
目录
第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



有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4