MySQL数据库应用开发

MySQL数据库应用开发"

作者:吴广裕
ISBN:9787302598169
定价:¥59
字数:千字
页数:
出版时间:2022.02.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

《MySQL 数据库应用开发》是面向高等院校编写的专业基础课教材,系统全面地讲述了数据库技术基础和MySQL的主要操作。本书共分为15章,内容涵盖高等院校对数据库和MySQL的教学要求,主要包括数据库技术和MySQL的概念及编程基础知识,关系模型和数据库的设计,如何进行存储引擎、字符集和数据库的管理,对表的定义与完整性约束,对记录的操作,并介绍了索引和视图、存储过程与存储函数、触发器和事件、事务和锁的概念及应用,以及用户和权限的管理,备份和恢复数据库,日志文件的管理等内容。本书免费提供配套的教学资源,包括

电子课件、习题答案等,便于开展教学和上机实验。

本书内容丰富,结构清晰,在讲述基本理论知识的同时,注重操作技能和解决实际问题能力的培养。本书案例丰富且准确易懂,突出了实用性和专业性。本书从基本概念出发,通过大量案例由浅入深、循序渐进地讲述数据库技术和MySQL的基本概念和基本方法。本书适合作为高等院校本科和高职高专层次计算机相关信息技术类专业的基础教材,也可作为各类培训班的培训教材。

前言

MySQL是当前较流行的关系数据库管理系统之一。 MySQL数据库以其语言标准、运行速度快、性能卓越、开放源代码等优势,获得许多中小型网站开发公司的青睐。

本书从教学实际需求出发,结合初学者的认知规律,由浅入深、循序渐进地讲解 MySQL数据库管理系统的功能和应用。本书将数据库理论嵌入 MySQL的实际应用中,能够让学生在操作过程中进一步认知数据管理的理念,体察数据操作的优势,提高数据处理的能力。

本书在内容的编排上体现了新的教学思想和方法,内容编写遵循“从抽

“从简单到复杂”象到具体”的原则。全书体系完整,可操作性较强,以大量的例题对常用知识点操作进行示范。所有的例题全部通过了调试,内容涵盖了设计一个数据库应用系统需用到的主要知识。在上机实践应用中,兼顾了在 MySQL Command Line Client(命令行客户端程序)和 Navicat客户端程序中的应用。

本书共分为 15章。第 1~2章介绍数据库技术基础知识以及数据库开发的基本概念及专用术语;第 3~4章介绍 MySQL、存储引擎、字符集和数据库管理的基础知识及应用;第 5章介绍表的定义与完整性约束;第 6章介绍记录的插入、修改、删除等操作;第 7章主要讲解利用各种不同方式进行条件查询表记录;第 8章介绍索引和视图;第 9~10章介绍 MySQL编程基础以及存储过程与存储函数;第 11~15章分别介绍触发器和事件、事务和锁、用户和权限的管理、数据库的备份和恢复、日志文件的管理。

本书内容全面,案例新颖,针对性强。本书所介绍的实例都已在 Windows 10+MySQL 8.x+Navicat 15下调试通过。

本书配有电子课件、源代码、示例数据库文件及课后习题答案,每章都有案例代码和实验代码,以方便教学和自学参考使用。

本书作者长期从事数据库课程教学,具体分工为吴广裕编写第 1~7章,王蓓编写第 8~ 10章,李曼编写第 11~14章,刘克纯编写第 15章。本书由吴广裕统编定稿。在本书编写过程中,参考了大量中外资料,包括已出版的教材和网络资源,限于篇幅不再一一列出,在此表示衷心的感谢。

由于作者水平有限,书中难免存在不足和纰漏之处,恳请读者批评指正。

作者 

2021年9月

目录

第 1章数据库技术基础 ………………………………………………………………………1 

1.1信息、数据和数据处理 ………………………………………………………………1 

1.2数据管理技术的发展历史 ……………………………………………………………2 

1.2.1手工管理阶段 …………………………………………………………………3 

1.2.2文件系统阶段 …………………………………………………………………3 

1.2.3数据库系统阶段 ………………………………………………………………3 

1.3数据库系统的基本概念 ………………………………………………………………3 

1.4数据库的数据模式结构 ………………………………………………………………4 

1.4.1数据库系统的三级模式结构和优点 …………………………………………4 

1.4.2数据库的二级映像 ……………………………………………………………5 

1.5数据库管理系统的功能 ………………………………………………………………6 

1.6信息的三种世界及描述 ………………………………………………………………7 

1.6.1现实世界 ………………………………………………………………………7 

1.6.2信息世界 ………………………………………………………………………7 

1.6.3计算机世界 ……………………………………………………………………8 

1.6.4三种世界的转换及关系 ………………………………………………………9 

1.7概念模型 ……………………………………………………………………………10 

1.7.1概念模型的基本概念 …………………………………………………………10 

1.7.2概念模型的表示方法 …………………………………………………………12 

1.8数据模型 ……………………………………………………………………………14 

1.8.1数据模型的基本概念 …………………………………………………………14 

1.8.2常用的数据模型 ………………………………………………………………15 

1.9习题 1…………………………………………………………………………………16

第 2章关系模型和数据库的设计 ……………………………………………………………18 

2.1关系模型 ……………………………………………………………………………18

2.1.1关系模型的组成 ………………………………………………………………18 

2.1.2关系数据结构 …………………………………………………………………18 

2.2关系代数 ……………………………………………………………………………21

2.2.1传统的集合运算 ………………………………………………………………22 

2.2.2专门的关系运算 ………………………………………………………………24 

2.3关系的完整性及约束 ………………………………………………………………27 

2.3.1关系的完整性 …………………………………………………………………27 

2.3.2约束 ……………………………………………………………………………27 

2.4关系规范化理论基础 ………………………………………………………………28 

2.4.1关系范式的种类和规范化过程 ………………………………………………28 

2.4.2函数依赖 ………………………………………………………………………29 

2.4.3范式 ……………………………………………………………………………30 

2.5数据库设计的步骤 …………………………………………………………………34 

2.5.1需求分析阶段 …………………………………………………………………34 

2.5.2概念结构设计阶段 ……………………………………………………………34 

2.5.3逻辑结构设计阶段 ……………………………………………………………35 

2.5.4物理结构设计阶段 ……………………………………………………………36 

2.5.5数据库实施阶段 ………………………………………………………………37 

2.5.6数据库运行和维护阶段 ………………………………………………………38 

2.6习题 2…………………………………………………………………………………38

第 3章 MySQL概述 …………………………………………………………………………40 

3.1 MySQL的安装和设置 ………………………………………………………………40 

3.1.1下载 MySQL的安装包 ………………………………………………………40 

3.1.2安装 MySQL服务器 …………………………………………………………42 

3.1.3 MySQL服务器的启动或停止 ………………………………………………50 

3.2 MySQL客户端程序 …………………………………………………………………51 

3.2.1命令方式客户端程序 …………………………………………………………51 

3.2.2图形方式客户端程序 …………………………………………………………56 

3.3习题 3…………………………………………………………………………………60

第 4章存储引擎、字符集和数据库管理 ……………………………………………………61 

4.1 MySQL的存储引擎 …………………………………………………………………61 

4.1.1存储引擎的种类 ………………………………………………………………61

4.1.2存储引擎的操作 ………………………………………………………………62 

4.2 MySQL的字符集和校对规则 ………………………………………………………63 

4.2.1字符集 …………………………………………………………………………63 

4.2.2校对规则 ………………………………………………………………………65 

4.3数据库的创建与管理 ………………………………………………………………66 

4.3.1 MySQL数据库分类 …………………………………………………………66 

4.3.2创建数据库 ……………………………………………………………………67 

4.3.3查看和选择数据库 ……………………………………………………………70 

4.3.4修改数据库 ……………………………………………………………………72 

4.3.5删除数据库 ……………………………………………………………………74 

4.4习题 4…………………………………………………………………………………75

第 5章表的定义与完整性约束 ………………………………………………………………77 

5.1数据类型 ……………………………………………………………………………77 

5.1.1数值类型 ………………………………………………………………………77 

5.1.2字符串类型 ……………………………………………………………………78 

5.1.3日期时间类型 …………………………………………………………………79 

5.1.4二进制类型 ……………………………………………………………………80 

5.1.5复合类型 ………………………………………………………………………80 

5.1.6 NULL值 ………………………………………………………………………81 

5.2数据表的操作 ………………………………………………………………………81 

5.2.1表的基本概念 …………………………………………………………………81 

5.2.2创建数据表 ……………………………………………………………………81 

5.2.3查看数据表 ……………………………………………………………………87 

5.2.4修改数据表 ……………………………………………………………………90 

5.2.5删除数据表 ……………………………………………………………………94 

5.3数据的完整性约束 …………………………………………………………………95 

5.3.1定义实体完整性 ………………………………………………………………95

5.3.2定义参照完整性 ……………………………………………………………100 

5.3.3用户定义的完整性 …………………………………………………………105 

5.3.4更新完整性约束 ……………………………………………………………107 

5.4习题 5 ………………………………………………………………………………110

第 6章记录的操作 …………………………………………………………………………114 

6.1插入记录 ……………………………………………………………………………114 

6.1.1插入完整数据记录 …………………………………………………………117 

6.1.2插入部分数据记录 …………………………………………………………119 

6.1.3插入多条数据记录 …………………………………………………………119

6.1.4使用 Navicat对话方式添加记录 ……………………………………………120 

6.2修改记录 ……………………………………………………………………………122 

6.2.1修改特定记录 ………………………………………………………………122 

6.2.2修改所有记录 ………………………………………………………………123 

6.3删除记录 ……………………………………………………………………………123 

6.3.1删除特定记录 ………………………………………………………………123 

6.3.2删除所有记录 ………………………………………………………………124 

6.3.3使用 Navicat对话方式删除记录 ……………………………………………125 

6.4习题 6 ………………………………………………………………………………126

第 7章记录的查询 …………………………………………………………………………129 

7.1基本查询 ……………………………………………………………………………129 

7.2单表记录查询 ………………………………………………………………………130 

7.2.1 SELECT FROM基本子句的使用 ……………………………………………130 

7.2.2使用 WHERE子句过滤结果集 ……………………………………………134 

7.2.3对查询结果集的处理 ………………………………………………………138 

7.3使用聚合函数或进行分组聚合查询 ………………………………………………140 

7.3.1使用聚合函数查询 …………………………………………………………140 

7.3.2分组聚合查询 ………………………………………………………………142 

7.4多表记录查询 ………………………………………………………………………145 

7.4.1交叉连接 ……………………………………………………………………146 

7.4.2内连接 ………………………………………………………………………146 

7.4.3外连接 ………………………………………………………………………151 

7.5子查询 ………………………………………………………………………………154 

7.5.1使用带比较运算符的子查询 ………………………………………………154 

7.5.2使用带 IN关键字的子查询 …………………………………………………155 

7.5.3使用 SOME、ANY和 ALL的子查询 …………………………………………156 

7.5.4使用带 EXISTS关键字的子查询 ……………………………………………157 

7.5.5用子查询插入、修改或删除记录 ……………………………………………158 

7.6习题 7 ………………………………………………………………………………160

第 8章索引和视图 …………………………………………………………………………162 

8.1索引 …………………………………………………………………………………162 

8.1.1索引的分类 …………………………………………………………………162 

8.1.2查看索引 ……………………………………………………………………163 

8.1.3创建索引 ……………………………………………………………………164 

8.1.4创建索引实例 ………………………………………………………………165 

8.1.5指定使用的索引 ……………………………………………………………169 

8.1.6删除索引 ……………………………………………………………………170 

8.2视图 …………………………………………………………………………………171 

8.2.1创建视图 ……………………………………………………………………171 

8.2.2查看视图定义 ………………………………………………………………175 

8.2.3查询视图记录 ………………………………………………………………176 

8.2.4修改视图数据 ………………………………………………………………177 

8.2.5修改视图定义 ………………………………………………………………178

8.2.6删除视图 ……………………………………………………………………178 

8.3习题 8 ………………………………………………………………………………180

第 9章 MySQL编程基础 ……………………………………………………………………182 

9.1编程基础 ……………………………………………………………………………182 

9.1.1标识符 ………………………………………………………………………182 

9.1.2注释 …………………………………………………………………………182 

9.1.3常量 …………………………………………………………………………183 

9.1.4变量 …………………………………………………………………………184 

9.2运算符和表达式 ……………………………………………………………………190 

9.2.1算术运算符和算术表达式 …………………………………………………191 

9.2.2比较运算符和比较表达式 …………………………………………………191 

9.2.3逻辑运算符和逻辑表达式 …………………………………………………193 

9.3系统函数 ……………………………………………………………………………195 

9.4习题 9 ………………………………………………………………………………195

第 10章存储过程与存储函数 ……………………………………………………………197 

10.1存储过程 …………………………………………………………………………197 

10.1.1创建存储过程 ………………………………………………………………197 

10.1.2执行存储过程 ………………………………………………………………199 

10.1.3查看、修改与删除存储过程 ………………………………………………199 

10.1.4 BEGIN...END语句块 ………………………………………………………201 

10.1.5 DELIMITER语句 …………………………………………………………202

10.1.6存储过程的各种参数应用 …………………………………………………204 

10.2存储函数 …………………………………………………………………………208 

10.2.1创建存储函数 ………………………………………………………………208 

10.2.2调用存储函数 ………………………………………………………………209 

10.2.3查看、修改与删除存储函数 ………………………………………………209

10.3过程体 ……………………………………………………………………………211 

10.3.1变量 …………………………………………………………………………211 

10.3.2流程控制语句 ………………………………………………………………214 

10.3.3异常处理 ……………………………………………………………………221 

10.3.4游标的使用 …………………………………………………………………223 

10.4习题 10 ……………………………………………………………………………227

第 11章触发器和事件 ……………………………………………………………………229 

11.1触发器 ……………………………………………………………………………229 

11.1.1创建触发器 …………………………………………………………………229 

11.1.2触发器 NEW和 OLD ………………………………………………………233

11.1.3查看触发器 …………………………………………………………………238 

11.1.4删除触发器 …………………………………………………………………238 

11.1.5触发器的使用 ………………………………………………………………238 

11.2事件 ………………………………………………………………………………240 

11.2.1创建事件 ……………………………………………………………………241 

11.2.2修改事件 ……………………………………………………………………246 

11.2.3删除事件 ……………………………………………………………………246 

11.3练习 11 ……………………………………………………………………………246 

第 12章事务和锁 …………………………………………………………………………248 

12.1事务 ………………………………………………………………………………248 

12.1.1事务的概念 …………………………………………………………………248 

12.1.2事务处理 ……………………………………………………………………249 

12.2锁与并发控制 ……………………………………………………………………257 

12.2.1锁……………………………………………………………………………257 

12.2.2多版本并发控制 ……………………………………………………………260 

12.3习题 12 ……………………………………………………………………………261

第 13章用户和权限管理 …………………………………………………………………262 

13.1 MySQL的权限表 …………………………………………………………………262 

13.1.1 user表 ………………………………………………………………………262 

13.1.2 db表 ………………………………………………………………………264 

13.1.3 tables_priv表 ………………………………………………………………264 

13.1.4 columns_priv表 ……………………………………………………………264 

13.1.5 procs_priv表 ………………………………………………………………265 

13.2用户管理 …………………………………………………………………………265 

13.2.1使用 SQL语句管理用户账户 ………………………………………………265 

13.2.2使用 Navicat管理用户账户 ………………………………………………269 

13.3账户权限管理 ……………………………………………………………………270 

13.3.1 MySQL的权限级别 ………………………………………………………270 

13.3.2权限类型 ……………………………………………………………………271 

13.3.3授予用户权限 ………………………………………………………………272 

13.3.4查看权限 ……………………………………………………………………275 

13.3.5权限的撤销 …………………………………………………………………275 

13.4习题 13 ……………………………………………………………………………276

第 14章备份和恢复 ………………………………………………………………………278 

14.1备份和还原数据库 ………………………………………………………………278 

14.1.1使用 Navicat对话方式备份和还原数据库 ………………………………278 

14.1.2使用 mysqldump、mysql命令备份和还原数据库 …………………………284 

14.1.3通过复制数据库备份和还原数据库 …………………………………287 

14.2导出、导入表记录 …………………………………………………………………288 

14.2.1使用 SELECT...INTO OUTFILE导出文本文件 ……………………………288 

14.2.2使用 LOAD DATA INFILE导入文本文件 …………………………………291 

14.3习题 14 ……………………………………………………………………………292

第 15章日志文件管理 ……………………………………………………………………294 

15.1 MySQL日志文件简介 …………………………………………………………294 

15.2错误日志 …………………………………………………………………………294 

15.2.1设置错误日志 ………………………………………………………………294 

15.2.2查看错误日志 ………………………………………………………………295 

15.2.3删除错误日志 ………………………………………………………………296 

15.3二进制日志 ………………………………………………………………………296 

15.3.1启用二进制日志 ……………………………………………………………297 

15.3.2列出二进制日志文件 ………………………………………………………297 

15.3.3查看或导出二进制日志文件中的内容 ……………………………………298 

15.3.4删除二进制日志文件 ………………………………………………………299 

15.3.5用二进制日志文件恢复数据库 ……………………………………………301 

15.3.6暂时停止二进制日志功能 …………………………………………………303 

15.3.7设置二进制日志文件 ………………………………………………………304 

15.4通用查询日志 ……………………………………………………………………305 

15.4.1启动和设置通用查询日志 …………………………………………………305 

15.4.2查看通用查询日志 …………………………………………………………305

15.4.3删除通用查询日志 …………………………………………………………305 

15.5慢查询日志 ………………………………………………………………………306 

15.5.1启用慢查询日志 ……………………………………………………………306 

15.5.2操作慢查询日志 ……………………………………………………………306 

15.5.3删除慢查询日志 ……………………………………………………………306 

15.6习题 15 ……………………………………………………………………………307

参考文献 ………………………………………………………………………………………308 

作者简介

编辑推荐

除了基本理论及案例,本书在上机实践应用中,兼顾在MySQL Command Line Client(命令行客户端程序)和Navicat客户端程序中的应用。本书每章都配有课后习题,可供教师教学使用。

作者寄语

吴广裕,男,工学硕士,中山大学计算机软件与理论专业研究生。现任信息技术与工程学院副院长,分管信息技术与工程学院教学工作。 先后承担“数据结构”,“程序设计基础”和“操作系统”等课程的教学工作。曾获首届中青年教师课堂教学竞赛奖,获得优秀管理工作奖,获职业教育先进个人等奖项。参与完成省级质量工程“计算机实验教学中心”项目建设,立项建设“计算机科学与技术专业软件基础课程群教学团队”等项目3项。

电子资料

www.luweidong.cn

下一个