
本书系统、全面地讲述了MySQL数据库管理系统的主要操作,内容涵盖高等职业院校对MySQL教学的要求,包括MySQL概述、数据库的创建和管理、表的创建和管理、记录的操作、记录的查询、索引和视图、存储过程和存储函数、触发器和事件、事务和锁、用户和权限、数据库的备份和恢复、日志文件管理。本书免费提供配套的教学资源,包括电子课件、习题答案等,便于开展教学和上机实验。本书内容丰富,结构清晰,在讲述基本理论知识的同时,注重操作技能和解决实际问题能力的培养。本书案例丰富,突出了实用性和专业性,从基本概念出发,通过大量示例由浅入深、循序渐进地讲述数据库技术和MySQL的基本概念与基本方法。本书适合作为高职高专层次计算机相关专业的基础教材,也可作为各类培训班的培训教材。
MySQL是非常流行的关系型数据库管理系统之一。MySQL数据库以语言标准、运行速度快、性能卓越、开放源码等优势,获得许多中小型网站开发公司的青睐。 本书的作者长期从事数据库课程教学,从教学的实际需求出发,结合初学者的认知规律,由浅入深、循序渐进地讲解MySQL数据库管理系统的功能和使用方法。本书将数据库理论嵌入MySQL的实际应用,能够让读者在操作过程中进一步理解数据管理的理念,体会数据操作的优势,提高数据处理的能力。 本教材主要有以下特色。 1.符合认知规律 本书在内容的编排上体现了新的教学思想和教学方法,遵循从简单到复杂、从抽象到具体的原则。全书体系完整,可操作性强。 2.内容全面 本书内容丰富,结构清晰,内容涵盖操作一个数据库应用系统的主要知识。 3.案例新颖,针对性强 本书案例准确易懂,以大量的例题对常用的知识点进行操作示范。所有的例题都在Windows 10+MySQL 8.x+Navicat 15 for MySQL的环境下调试、运行和通过。每个单元都配有课后习题,供教师教学和学生练习。 4.配有教学资源 本书配有电子课件、课后习题答案、每个单元案例的代码和实验的代码,以便教师教学或读者自学参考。如果有需要,请到华信教育资源网(http://www.hxedu.com.cn)下载。 本书由张治斌担任主编,孙洪洋担任副主编。张治斌编写单元1~5,刘瑞新编写单元6,张亚新编写单元7、8,孙洪洋编写单元9~12。在本书编写过程中,作者参考了大量中外资料,包括出版的教材和网络资源,由于篇幅限制不再一一列出,作者在此表示衷心的感谢。由于作者水平有限,书中难免有不足和纰漏之处,恳请读者批评指正。 作 者
单元1 MySQL概述 1 1.1 MySQL的发展历史和特点 1 1.1.1 MySQL的发展历史 1 1.1.2 MySQL的特点 1 1.2 MySQL的安装 2 1.2.1 下载MySQL的安装包 2 1.2.2 安装MySQL服务器 4 1.3 MySQL客户端程序 17 1.3.1 命令方式客户端程序 17 1.3.2 图形方式客户端程序 18 1.4 习题1 23 单元2 数据库的创建和管理 25 2.1 MySQL数据库概述 25 2.1.1 MySQL数据库简介 25 2.1.2 MySQL数据库分类 25 2.2 MySQL的字符集和校对规则 26 2.2.1 MySQL的字符集 26 2.2.2 MySQL的校对规则 28 2.3 创建数据库 28 2.3.1 使用SQL语句创建数据库 28 2.3.2 使用Navicat for MySQL创建数据库 29 2.4 查看数据库 31 2.4.1 使用SQL语句查看数据库 31 2.4.2 使用Navicat for MySQL查看数据库 32 2.5 选择数据库 32 2.5.1 使用SQL语句选择数据库 32 2.5.2 使用Navicat for MySQL选择数据库 33 2.6 修改数据库 34 2.6.1 使用SQL语句修改数据库 34 2.6.2 使用Navicat for MySQL修改数据库 34 2.7 删除数据库 36 2.7.1 使用SQL语句删除数据库 36 2.7.2 使用Navicat for MySQL删除数据库 37 2.8 习题2 37 单元3 表的创建和管理 39 3.1 表的概述 39 3.2 数据类型 39 3.2.1 数值类型 39 3.2.2 字符串类型 41 3.2.3 日期和时间类型 41 3.2.4 二进制类型 42 3.2.5 复合类型 42 3.2.6 NULL 43 3.3 表的操作 43 3.3.1 创建表 43 3.3.2 查看表 48 3.3.3 修改表 51 3.3.4 删除表 53 3.4 数据的完整性约束 54 3.4.1 数据完整性约束的概念 54 3.4.2 定义实体完整性 54 3.4.3 定义参照完整性 60 3.4.4 用户定义的完整性 62 3.4.5 删除完整性约束 65 3.5 习题3 67 单元4 记录的操作 70 4.1 插入记录 70 4.1.1 插入完整记录 71 4.1.2 插入多条记录 73 4.1.3 使用Navicat for MySQL菜单命令添加记录 74 4.2 修改记录 75 4.2.1 修改特定记录 75 4.2.2 修改所有记录 76 4.3 删除记录 76 4.3.1 删除特定记录 76 4.3.2 删除所有记录 77 4.3.3 使用Navicat for MySQL菜单命令删除记录 77 4.4 习题4 79 单元5 记录的查询 81 5.1 单表查询 81 5.1.1 单表查询语句 81 5.1.2 使用WHERE子句过滤结果集 85 5.1.3 对查询结果集的处理 88 5.2 聚合函数查询 91 5.2.1 聚合函数 91 5.2.2 分组聚合查询 93 5.3 连接查询 95 5.3.1 交叉连接 95 5.3.2 内连接 96 5.3.3 外连接 98 5.4 子查询 100 5.4.1 使用带比较运算符的子查询 100 5.4.2 使用带IN关键字的子查询 101 5.4.3 使用带EXISTS关键字的子查询 101 5.4.4 使用子查询插入、修改或删除记录 102 5.5 习题5 104 单元6 索引和视图 106 6.1 索引 106 6.1.1 索引的分类 106 6.1.2 查看索引 108 6.1.3 创建索引 109 6.1.4 创建索引实例 110 6.1.5 使用指定的索引 116 6.1.6 删除索引 117 6.2 视图 118 6.2.1 创建视图 119 6.2.2 查看视图的定义 122 6.2.3 通过视图查询记录 123 6.2.4 通过视图修改记录 124 6.2.5 修改视图的定义 125 6.2.6 删除视图 126 6.3 习题6 127 单元7 存储过程和存储函数 129 7.1 编程基础 129 7.1.1 SQL语言简介 129 7.1.2 标识符 130 7.1.3 注释 130 7.1.4 常量 131 7.1.5 变量 131 7.2 运算符和表达式 133 7.2.1 算术运算符和算术表达式 134 7.2.2 比较运算符和比较表达式 134 7.2.3 逻辑运算符和逻辑表达式 136 7.3 系统函数 137 7.3.1 数学函数 137 7.3.2 字符串函数 138 7.3.3 日期和时间函数 139 7.3.4 系统信息函数 140 7.3.5 加密函数 141 7.3.6 条件判断函数 142 7.4 存储过程 142 7.4.1 存储过程的概念 142 7.4.2 创建存储过程 143 7.4.3 执行存储过程 144 7.4.4 查看与删除存储过程 145 7.4.5 BEGIN…END语句块 147 7.4.6 DELIMITER语句 147 7.4.7 存储过程中参数的应用 149 7.5 存储函数 151 7.5.1 存储函数的概念 151 7.5.2 创建存储函数 152 7.5.3 调用存储函数 153 7.5.4 查看、修改与删除存储函数 154 7.6 过程体 155 7.6.1 变量 155 7.6.2 流程控制语句 158 7.6.3 异常处理 161 7.6.4 游标的使用 163 7.7 习题7 166 单元8 触发器和事件 168 8.1 触发器 168 8.1.1 触发器的基本概念 168 8.1.2 创建触发器 169 8.1.3 触发器NEW和OLD 171 8.1.4 查看触发器 172 8.1.5 删除触发器 173 8.1.6 触发器的使用 173 8.2 事件 175 8.2.1 事件的概念 175 8.2.2 创建事件 176 8.2.3 修改事件 178 8.2.4 删除事件 178 8.3 习题8 179 单元9 事务和锁 181 9.1 事务 181 9.1.1 事务的概念 181 9.1.2 事务的基本特性 182 9.1.3 事务的分类 182 9.1.4 事务的基本操作 183 9.1.5 事务的保存点 185 9.1.6 事务的隔离级别 187 9.2 锁机制 195 9.2.1 认识锁 195 9.2.2 MyISAM表级锁 196 9.2.3 InnoDB行级锁和表级锁 198 9.2.4 死锁管理 201 9.3 习题9 202 单元10 用户和权限 204 10.1 用户和权限概述 204 10.1.1 MySQL用户和权限的实现 204 10.1.2 MySQL的用户和权限表 205 10.2 用户管理 209 10.2.1 使用SQL语句管理用户账户 209 10.2.2 使用Navicat for MySQL管理用户账户 213 10.3 权限控制 215 10.3.1 MySQL的权限级别 215 10.3.2 权限类型 215 10.3.3 授予用户权限 216 10.3.4 撤销用户权限 220 10.4 习题10 221 单元11 数据库的备份和恢复 223 11.1 备份和恢复概述 223 11.1.1 数据为什么需要备份 223 11.1.2 数据库备份的分类 224 11.1.3 数据库备份的时机 224 11.1.4 恢复数据库的方法 224 11.2 备份和恢复数据库 225 11.2.1 使用Navicat for MySQL菜单命令备份和恢复数据库 225 11.2.2 使用mysqldump命令备份数据库 228 11.2.3 使用mysql命令还原数据库 231 11.2.4 使用SOURCE命令恢复表 232 11.3 导出、导入表记录 233 11.3.1 使用SELECT...INTO OUTFILE语句导出表记录 234 11.3.2 使用LOAD DATA INFILE语句导入表记录 235 11.4 习题11 236 单元12 日志文件管理 237 12.1 MySQL日志文件简介 237 12.1.1 日志文件特点 237 12.1.2 日志文件分类 238 12.2 错误日志 238 12.2.1 查看错误日志 238 12.2.2 设置错误日志 239 12.2.3 创建新的错误日志 239 12.3 二进制日志 240 12.3.1 启用二进制日志 240 12.3.2 列出二进制日志文件 241 12.3.3 查看或导出二进制日志文件中的内容 242 12.3.4 删除二进制日志文件 243 12.3.5 使用二进制日志恢复数据库 245 12.3.6 暂时停止二进制日志功能 246 12.4 通用查询日志 246 12.4.1 启动和设置通用查询日志 246 12.4.2 删除通用查询日志 246 12.5 慢查询日志 247 12.5.1 启用慢查询日志 247 12.5.2 操作慢查询日志 247 12.5.3 删除慢查询日志文件 249 12.6 使用Navicat for MySQL查看MySQL历史日志 249 12.7 习题12 250