本书根据编者多年的项目开发经验编写,凝聚了康盛、PHP China等众多企业及社区的专家的心血,是目前市场上为数不多的理论和实践相结合的教材。本书介绍了基本的数据库设计原理,并基于MySQL数据库对基本的关系数据库的使用进行了详细讲解。全书共有9章,分别介绍了数据库基础知识、数据库设计的原理和方法、MySQL数据库基础知识、数据库的基本对象及相关操作、数据库的查询语句、存储过程与触发器的基本使用方法、用户与权限管理、数据的备份与恢复、数据库设计综合案例。本书内容翔实、语言流畅、图文并茂、突出实用性,并提供了大量的操作示例和代码,较好地将学习与应用结合在一起。本书适合作为高职高专院校计算机或者信息类专业的教材,还可以作为系统设计人员、程序员等软件开发相关人员的参考用书。本书提供配套的电子教学课件、源代码、习题参考答案等资源,请登录华信教育资源网(www.hxedu.com.cn)免费下载。
丁允超,男,江苏徐州人,重庆大学计算机技术领域工程硕士,副教授,现为重庆工程学院软件与计算机学院软件工程系(教研室)主任,优秀骨干教师,双师型教师。在软件开发、计算机技术、数据库应用方面有较深研究,有7年企业工程实践经验和7年一线教学与管理经验。熟练使用微软Visual Studio和数据库进行项目开发和教学。负责和参与软件开发项目10余项,发表学术论文8篇,申请授权实用新型专利3项,软件著作权4项,出版教材1本,著作1部,获得重庆市教学成果奖三等奖1项,参与重庆市教改项目1项,指导学生参赛荣获市级一等奖1项,市级二等奖2项,所负责软件工程专业为重庆市市级特色专业和校级重点专业。
基 础 篇
第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 实体完整性约束 13
1.4.2 参照完整性约束 14
1.4.3 用户定义的完整性约束 14
第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 概念结构设计的目标 25
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 物理结构设计 38
2.5.1 物理结构设计的目标 38
2.5.2 存储结构设计 39
2.5.3 存取方法设计 39
2.5.4 确定数据的存放位置和存储结构 39
2.6 数据库的实施与维护 40
2.6.1 创建数据库 40
2.6.2 数据的载入 40
2.6.3 测试 41
2.6.4 数据库的运行与维护 41
2.7 知识小结 42
2.8 巩固练习 42
2.9 能力拓展 43
第3章 初探MySQL 44
3.1 MySQL概述 44
3.2 MySQL的安装 45
3.2.1 下载MySQL 45
3.2.2 安装MySQL 45
3.2.3 配置MySQL 47
3.2.4 配置Path系统变量 49
3.3 更改MySQL配置 50
3.3.1 通过配置向导来更改配置 50
3.3.2 手工更改配置文件 51
3.4 MySQL基本操作 52
3.4.1 启动MySQL服务 52
3.4.2 登录MySQL 53
3.5 知识拓展 54
3.5.1 MySQL GUI Tools 55
3.5.2 phpMyAdmin 55
3.5.3 Navicat 55
3.5.4 SQLyog 55
3.5.5 MySQL-Front 55
第4章 数据库与表的操作 57
4.1 数据库的基本操作 58
4.1.1 创建数据库 58
4.1.2 查看数据库 59
4.1.3 选择数据库 60
4.1.4 删除数据库 61
4.1.5 MySQL存储引擎 61
4.1.6 小结 66
4.2 表的基本操作 66
4.2.1 创建表 66
4.2.2 查看表结构 69
4.2.3 修改表 70
4.2.4 删除表 72
4.2.5 小结 74
4.3 插入数据 75
4.3.1 插入一条完整的记录 75
4.3.2 插入一条不完整的记录 79
4.3.3 同时插入多条记录 80
4.3.4 小结 81
4.4 修改数据 81
4.4.1 修改一个字段的值 82
4.4.2 修改几个字段的值 83
4.4.3 小结 83
4.5 删除数据 84
4.5.1 删除所有数据 84
4.5.2 删除某些记录 84
4.5.3 小结 84
4.6 表的约束 85
4.6.1 主键约束 85
4.6.2 唯一约束 86
4.6.3 外键约束 87
4.7 巩固练习 88
4.8 知识拓展 91
4.8.1 INSERT语句的完整语法及使用 91
4.8.2 UPDATE语句的完整语法及使用 91
4.8.3 DELETE语句的完整语法及使用 92
第5章 查询数据 93
5.1 基本查询语句 93
5.2 单表查询—SELECT子句 94
5.2.1 查询所有字段 95
5.2.2 查询指定字段 97
5.2.3 查询经过计算后的字段 98
5.2.4 修改原始字段名 99
5.2.5 查询结果不重复 100
5.2.6 使用聚合函数 101
5.2.7 小结 106
5.3 单表查询—WHERE子句 106
5.3.1 带IN关键字的查询 108
5.3.2 带BETWEEN AND关键字的范围查询 109
5.3.3 带LIKE关键字的字符匹配查询 109
5.3.4 查询空值 112
5.3.5 带AND关键字的多条件查询 113
5.3.6 带OR关键字的多条件查询 114
5.3.7 小结 116
5.4 单表查询—ORDER BY子句 116
5.5 单表查询—GROUP BY子句 118
5.6 单表查询—LIMIT子句 123
5.7 多表查询 125
5.7.1 内连接查询 125
5.7.2 外连接查询 127
5.7.3 为表取别名 128
5.7.4 复合条件连接查询 129
5.7.5 小结 130
5.8 子查询/嵌套查询 131
5.8.1 带IN关键字的子查询 131
5.8.2 带比较运算符的子查询 132
5.8.3 带EXISTS关键字的子查询 133
5.8.4 带ANY关键字的子查询 134
5.8.5 带ALL关键字的子查询 135
5.8.6 小结 136
5.9 合并查询结果 136
5.10 子查询在复制表,数据的增、删、改操作中的应用 137
5.10.1 插入查询语句的执行结果 137
5.10.2 修改后的值为查询的结果 141
5.10.3 删除与其他表有关联的数据 141
5.11 查询速度的优化—数据库索引 142
5.11.1 索引简介 142
5.11.2 创建索引 142
5.11.3 删除索引 143
5.11.4 小结 144
5.12 巩固练习 144
5.13 知识拓展 144
编 程 篇
第6章 MySQL编程 145
6.1 视图 146
6.1.1 视图简介 146
6.1.2 创建视图 146
6.1.3 查看视图 146
6.1.4 修改视图 147
6.1.5 更新视图 147
6.1.6 删除视图 148
6.1.7 小结 148
6.2 存储过程 148
6.2.1 创建存储过程 149
6.2.2 存储过程体 151
6.2.3 调用存储过程 159
6.2.4 删除存储过程 159
6.2.5 修改存储过程 160
6.3 存储函数 160
6.3.1 创建存储函数 160
6.3.2 调用存储函数 161
6.3.3 删除存储函数 162
6.3.4 修改存储函数 162
6.4 触发器 163
6.4.1 创建触发器 163
6.4.2 查看触发器 164
6.4.3 触发器的应用 164
6.4.4 删除触发器 164
6.4.5 小结 164
6.5 知识小结 164
6.6 知识拓展 165
6.6.1 光标 165
6.6.2 常用系统函数 166
管 理 篇
第7章 用户与权限 169
7.1 权限表 170
7.1.1 user表 170
7.1.2 db表和host表 171
7.1.3 tables_priv表和columns_priv表 172
7.1.4 procs_priv表 172
7.2 账户管理 172
7.2.1 登录和退出MySQL服务器 172
7.2.2 添加用户 174
7.2.3 删除用户 176
7.2.4 修改用户 177
7.2.5 修改root用户密码 178
7.2.6 root用户修改普通用户密码 180
7.2.7 普通用户修改密码 181
7.2.8 root用户密码丢失的解决办法 181
7.3 权限管理 182
7.3.1 MySQL各种权限 183
7.3.2 授权 184
7.3.3 权限的转移和限制 187
7.3.4 回收权限 188
7.3.5 查看权限 189
7.4 知识小结 189
7.5 巩固练习 189
第8章 备份与恢复 190
8.1 数据备份 190
8.1.1 使用mysqldump命令备份数据 191
8.1.2 直接复制整个数据库目录 193
8.1.3 使用mysqlhotcopy工具快速备份 193
8.2 数据还原 194
8.2.1 使用mysql命令还原数据 194
8.2.2 使用mysqlimport命令还原数据 195
8.2.3 直接复制到数据库目录 195
8.3 数据库迁移 196
8.3.1 相同版本的MySQL数据库之间的迁移 196
8.3.2 不同版本的MySQL数据库之间的迁移 197
8.3.3 不同数据库之间的迁移 197
8.4 表的导出和导入 198
8.4.1 用SELECT…INTO OUTFILE导出文本文件 198
8.4.2 用mysqldump命令导出文本文件 199
8.4.3 用mysql命令导出文本文件 200
8.4.4 用LOAD DATA INFILE方式导入文本文件 200
8.4.5 用mysqlimport命令导入文本文件 201
8.5 知识小结 202
实 战 篇
第9章 数据库设计实例 203
9.1 系统概述 203
9.2 系统功能 204
9.2.1 系统业务分析 204
9.2.2 系统功能模块划分 205
9.2.3 关键功能流程图 205
9.3 数据库设计 206
9.3.1 系统实体及属性分析 206
9.3.2 系统E-R模型图设计 207
9.3.3 E-R模型图转为关系模型 208
9.3.4 系统数据字典 209
9.3.5 主要表创建 212
9.4 数据库测试 214
9.4.1 数据表的增加、删除、修改测试 214
9.4.2 关键业务数据查询测试 214
9.5 知识小结 215
附录A MySQL常用命令及语言参考 216