第 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