基 础 篇
第1章 认识数据库 /1
1.1 基本概念 /1
1.1.1 信息与数据 /1
1.1.2 数据库 /2
1.1.3 数据库管理系统 /3
1.1.4 数据库系统 /3
1.2 数据库管理系统―DBMS /4
1.2.1 DBMS的功能 /4
1.2.2 DBMS的组成 /5
1.3 关系数据模型 /5
1.3.1 概念模型 /6
1.3.2 数据模型 /10
1.4 关系的完整性 /13
1.4.1 实体完整性 /14
1.4.2 参照完整性 /14
1.4.3 用户定义的完整性 /15
第2章 数据库设计 /16
2.1 认识数据库设计 /17
2.1.1 数据库系统设计的概述 /17
2.1.2 数据库设计特点和方法 /19
2.1.3 数据库设计的基本步骤 /19
2.2 需求分析 /21
2.2.1 需求分析的目标 /21
2.2.2 需求信息的收集 /22
2.2.3 需求信息的整理 /23
2.3 概念结构设计 /25
2.3.1 概念结构设计的目标 /26
2.3.2 概念结构设计的方法与步骤 /26
2.3.3 数据抽象与局部视图的设计 /27
2.3.4 全局概念模式的设计 /30
2.4 逻辑结构设计 /33
2.4.1 逻辑结构设计的目标 /33
2.4.2 E-R模型图向关系模型的转换 /34
2.4.3 数据模型的优化 /35
2.5 物理结构设计 /36
2.5.1 物理结构设计的目标 /36
2.5.2 存储方法设计 /37
2.5.3 存取方法设计 /37
2.5.4 确定数据库的存取结构 /38
2.6 数据库的实施与维护 /38
2.6.1 创建数据库 /38
2.6.2 数据的载入 /39
2.6.3 测试 /39
2.6.4 数据库的运行与维护 /39
2.7 知识小结 /40
2.8 巩固练习 /41
2.9 能力拓展 /41
第3章 初探MySQL /43
3.1 MySQL概述 /43
3.2 MySQL的安装 /44
3.2.1 下载MySQL /44
3.2.2 安装MySQL /44
3.2.3 配置MySQL /46
3.3 MySQL基本操作 /48
3.3.1 启动MySQL服务 /48
3.3.2 登录MySQL /49
3.3.3 管理系统权限 /51
3.3.4 备份、还原MySQL /53
3.3.5 配置Path系统变量 /54
3.4 更改MySQL配置 /55
3.4.1 通过配置向导来更改配置 /55
3.4.2 手工更改配置文件 /56
3.5 MySQL常用图形管理工具 /57
3.5.1 MySQL GUI Tools /57
3.5.2 phpMyAdmin /57
3.5.3 Navicat /57
3.5.4 SQLyog /58
第4章 操作MySQL数据库对象 /59
4.1 数据库的基本操作 /60
4.1.1 创建数据库 /60
4.1.2 查看数据库 /61
4.1.3 选择数据库 /62
4.1.4 删除数据库 /63
4.1.5 MySQL存储引擎 /63
4.1.6 小结 /68
4.2 表的基本操作 /68
4.2.1 创建表 /68
4.2.2 查看表结构 /71
4.2.3 修改表 /72
4.2.4 删除表 /74
4.2.5 小结 /76
4.3 数据库索引 /77
4.3.1 索引简介 /77
4.3.2 创建索引 /77
4.3.3 删除索引 /78
4.3.4 小结 /78
4.4 视图 /78
4.4.1 视图简介 /78
4.4.2 创建视图 /79
4.4.3 查看视图 /79
4.4.4 修改视图 /79
4.4.5 更新视图 /80
4.4.6 删除视图 /80
4.4.7 小结 /81
4.5 触发器 /81
4.5.1 创建触发器 /81
4.5.2 查看触发器 /82
4.5.3 触发器的应用 /82
4.5.4 删除触发器 /82
4.5.5 小结 /83
4.6 巩固练习 /83
第5章 查询数据 /84
5.1 基本查询语句 /84
5.2 单表查询―SELECT子句 /85
5.2.1 查询所有字段 /86
5.2.2 查询指定字段 /88
5.2.3 查询经过计算后的字段 /89
5.2.4 修改原始字段名 /90
5.2.5 查询结果不重复 /91
5.2.6 使用集合函数 /92
5.2.7 小结 /97
5.3 单表查询―WHERE子句 /97
5.3.1 带IN关键字的查询 /99
5.3.2 带BETWEEN AND的范围查询 /100
5.3.3 带LIKE的字符匹配查询 /100
5.3.4 查询空值 /103
5.3.5 带AND的多条件查询 /104
5.3.6 带OR的多条件查询 /105
5.3.7 小结 /107
5.4 单表查询―ORDER BY子句 /107
5.5 单表查询―GROUP BY子句 /109
5.6 单表查询―LIMIT子句 /115
5.7 多表查询 /116
5.7.1 内连接查询 /116
5.7.2 外连接查询 /118
5.7.3 为表取别名 /119
5.7.4 复合条件连接查询 /120
5.7.5 小结 /122
5.8 子查询/嵌套查询 /122
5.8.1 带IN关键字的子查询 /122
5.8.2 带比较运算符的子查询 /123
5.8.3 带EXISTS关键字的子查询 /124
5.8.4 带ANY关键字的子查询 /125
5.8.5 带ALL关键字的子查询 /126
5.8.6 小结 /127
5.9 合并查询结果 /127
5.10 巩固练习 /128
5.11 知识拓展 /129
第6章 更新MySQL数据 /130
6.1 插入数据 /130
6.1.1 插入一条完整的记录 /131
6.1.2 插入一条不完整的记录 /135
6.1.3 同时插入多条记录 /136
6.1.4 插入查询语句的执行结果 /136
6.1.5 小结 /140
6.2 修改数据 /140
6.2.1 修改一个字段的值 /141
6.2.2 修改几个字段的值 /142
6.2.3 修改后的值为查询的结果 /142
6.2.4 小结 /143
6.3 删除数据 /143
6.3.1 删除所有数据 /143
6.3.2 删除某些记录 /144
6.3.3 删除与其他表有关联的数据 /144
6.3.4 小结 /145
6.4 巩固练习 /145
6.5 知识拓展 /145
6.5.1 INSERT语句的完整语法及使用 /145
6.5.2 UPDATE的完整语法及使用 /146
6.5.3 DELETE的完整语法及使用 /147
实 战 篇
第7章 数据库设计实例 /148
7.1 系统概述 /148
7.2 系统功能 /149
7.2.1 系统业务分析 /149
7.2.2 系统功能模块划分 /150
7.2.3 关键功能流程图 /150
7.3 数据库设计 /151
7.3.1 系统实体及属性分析 /151
7.3.2 系统E-R图设计 /152
7.3.3 E-R图转为关系模型 /153
7.3.4 系统数据字典 /154
7.3.5 主要表创建 /157
7.4 数据库测试 /159
7.4.1 数据增加、删除、修改测试 /159
7.4.2 关键业务数据查询测试 /159
7.5 知识小结 /160
管 理 篇
第8章 存储过程和函数 /161
8.1 存储过程 /162
8.1.1 创建存储过程 /162
8.1.2 存储过程体 /165
8.1.3 调用存储过程 /173
8.1.4 删除存储过程 /174
8.1.5 修改存储过程 /174
8.2 存储函数 /175
8.2.1 创建存储函数 /175
8.2.2 调用存储函数 /175
8.2.3 删除存储函数 /177
8.2.4 修改存储函数 /177
8.3 知识小结 /177
第9章 MySQL用户安全性管理 /178
9.1 权限表 /179
9.1.1 user表 /179
9.1.2 db表和host表 /180
9.1.3 tables_priv表和columns_priv表 /181
9.1.4 procs_priv表 /181
9.2 账户管理 /181
9.2.1 登录和退出MySQL服务器 /182
9.2.2 添加用户 /183
9.2.3 删除用户 /185
9.2.4 修改用户 /186
9.2.5 修改root用户密码 /187
9.2.6 root用户修改普通用户密码 /189
9.2.7 普通用户修改密码 /190
9.2.8 root用户密码丢失的解决办法 /190
9.3 权限管理 /192
9.3.1 MySQL各种权限 /192
9.3.2 授权 /193
9.3.3 权限的转移和限制 /196
9.3.4 回收权限 /197
9.3.5 查看权限 /198
9.4* 表维护语句 /198
9.5 数据备份 /200
9.5.1 使用mysqldump备份数据 /200
9.5.2 直接复制整个数据库目录 /202
9.5.3 使用mysqlhotcopy工具快速备份 /203
9.6 数据还原 /203
9.6.1 使用mysql命令还原 /203
9.6.2 使用mysqlimport还原数据 /204
9.6.3 直接复制到数据库目录 /205
9.7 数据库迁移 /205
9.7.1 相同版本的MySQL数据库之间的迁移 /205
9.7.2 不同版本的MySQL数据库之间的迁移 /206
9.7.3 不同数据库之间迁移 /206
9.8 表的导出和导入 /207
9.8.1 用SELECT…INTO OUTFILE导出文本文件 /207
9.8.2 用mysqldump命令导出文本文件 /208
9.8.3 用mysql命令导出文本文件 /209
9.8.4 用LOAD DATA INFILE方式导入文本文件 /210
9.8.5 用mysqlimprot命令导入文本文件 /210
9.9 知识小结 /211
9.10 巩固练习 /211
附录A MySQL常用命令及语言参考 /212