目录
CONTENTS
第 1 章 数据库与数据管理.............................................................................................................. 1
微课视频 10 分钟
1.1 数据库 ........................................................................................................................................ 1
1.1.1 基本概念.......................................................................................................................1
1.1.2 数据库管理系统............................................................................................................2
1.1.3 数据库应用系统............................................................................................................3
1.1.4 DBMS 产品...................................................................................................................3
1.1.5 SQL ..............................................................................................................................6
1.1.6 数据库系统体系结构 ....................................................................................................7
1.2 数据管理 .................................................................................................................................... 9
1.2.1 数据管理的功能............................................................................................................9
1.2.2 数据库数据管理的特点.................................................................................................9
1.2.3 数据库数据管理任务 ..................................................................................................11
1.3 数据模型 .................................................................................................................................. 12
1.3.1 信息与数据 .................................................................................................................13
1.3.2 数据模型基本概念 ......................................................................................................14
1.4 关系模型 .................................................................................................................................. 16
1.4.1 关系模型基本概念 ......................................................................................................17
1.4.2 关系模式.....................................................................................................................18
第 2 章 数据类型与运算符............................................................................................................21
微课视频 23 分钟
2.1 MySQL 数据类型 ...................................................................................................................... 21
2.1.1 整数类型.....................................................................................................................22
2.1.2 浮点数和定点数类型 ..................................................................................................24
2.1.3 日期和时间类型..........................................................................................................25
2.1.4 字符串类型 .................................................................................................................29
2.1.5 二进制类型 .................................................................................................................32
2.1.6 数据类型选型 .............................................................................................................34
2.2 MySQL 运算符 .......................................................................................................................... 36
2.2.1 运算符概述 .................................................................................................................36
2.2.2 算术运算符 .................................................................................................................37
2.2.3 逻辑运算符 .................................................................................................................37
IV 数据库系统原理及应用:基于 MySQL 的描述与实现
2.2.4 位运算符 .................................................................................................................... 38
2.2.5 比较运算符 ................................................................................................................ 40
2.2.6 谓词运算符 ................................................................................................................ 42
2.2.7 运算符的优先级 ......................................................................................................... 44
2.3 正则表达式............................................................................................................................... 45
第 3 章 MySQL基本函数 ............................................................................................................. 48
微课视频 27 分钟
3.1 数学函数...................................................................................................................................48
3.1.1 绝对值函数 ................................................................................................................ 48
3.1.2 取整函数 .................................................................................................................... 48
3.1.3 取余函数 .................................................................................................................... 49
3.1.4 获取随机数函数 ......................................................................................................... 49
3.1.5 四舍五入函数............................................................................................................. 50
3.1.6 生成唯一数值函数 ..................................................................................................... 51
3.1.7 符号函数 .................................................................................................................... 51
3.1.8 平方根函数 ................................................................................................................ 51
3.1.9 幂运算函数 ................................................................................................................ 51
3.1.10 对数运算函数........................................................................................................... 52
3.1.11 圆周率函数............................................................................................................... 52
3.1.12 角度与弧度相互转换函数......................................................................................... 52
3.1.13 正弦函数和反正弦函数 ............................................................................................ 53
3.1.14 余弦函数和反余弦函数 ............................................................................................ 53
3.1.15 正切函数、反正切函数和余切函数.......................................................................... 53
3.2 字符串函数............................................................................................................................... 54
3.2.1 字符串长度函数 ......................................................................................................... 54
3.2.2 字符串合并函数 ......................................................................................................... 55
3.2.3 字符串替换函数 ......................................................................................................... 55
3.2.4 字母大小写转换函数.................................................................................................. 56
3.2.5 获取指定长度字符串函数 .......................................................................................... 56
3.2.6 填充字符串函数 ......................................................................................................... 57
3.2.7 删除空格函数............................................................................................................. 57
3.2.8 删除指定字符串函数.................................................................................................. 58
3.2.9 重复生成字符串函数.................................................................................................. 58
3.2.10 空格函数和替换函数................................................................................................ 58
3.2.11 比较字符串大小函数 ................................................................................................ 58
3.2.12 获取子串函数........................................................................................................... 59
3.2.13 匹配子串开始位置函数 ............................................................................................ 59
3.2.14 字符串逆序函数 ....................................................................................................... 59
目录 V
3.2.15 返回指定位置的字符串函数 .....................................................................................60
3.2.16 返回指定字符串位置函数 .........................................................................................60
3.2.17 返回子串位置函数 ....................................................................................................60
3.2.18 选取字符串函数........................................................................................................61
3.3 日期和时间函数 ....................................................................................................................... 61
3.3.1 获取当前日期和获取当前时间....................................................................................62
3.3.2 获取当前日期和时间 ..................................................................................................62
3.3.3 UNIX 时间戳函数 .......................................................................................................62
3.3.4 返回 UTC 日期和时间.................................................................................................63
3.3.5 获取月份.....................................................................................................................63
3.3.6 获取星期.....................................................................................................................64
3.3.7 获取星期数 .................................................................................................................64
3.3.8 获取天数.....................................................................................................................65
3.3.9 获取年份、季度、小时、分钟和秒钟.........................................................................65
3.3.10 时间和秒钟转换........................................................................................................66
3.3.11 计算日期和时间........................................................................................................66
3.3.12 获取日期的指定值 ....................................................................................................69
3.3.13 日期和时间格式化函数.............................................................................................69
3.4 其他函数 .................................................................................................................................. 71
3.4.1 系统信息函数 .............................................................................................................71
3.4.2 条件判断函数 .............................................................................................................75
3.4.3 加密函数.....................................................................................................................76
第 4 章 SQL数据定义语言与数据操作语言...............................................................................79
微课视频 13 分钟
4.1 数据定义语言........................................................................................................................... 79
4.1.1 创建数据表 .................................................................................................................79
4.1.2 查看数据表结构..........................................................................................................85
4.1.3 修改数据表 .................................................................................................................86
4.1.4 删除数据表 .................................................................................................................91
4.2 数据操作语言........................................................................................................................... 92
4.2.1 插入数据.....................................................................................................................93
4.2.2 更新数据.....................................................................................................................96
4.2.3 删除数据.....................................................................................................................97
第 5 章 SQL查询语言 .................................................................................................................100
微课视频 28 分钟
5.1 查询语句 ................................................................................................................................ 100
5.1.1 查询语句格式 ...........................................................................................................101
5.1.2 查询语句执行顺序 ....................................................................................................101
VI 数据库系统原理及应用:基于 MySQL 的描述与实现
5.2 基本查询................................................................................................................................. 102
5.2.1 查询记录字段信息 ................................................................................................... 102
5.2.2 有条件查询 .............................................................................................................. 103
5.2.3 限制查询结果数量 ................................................................................................... 104
5.2.4 范围查询 .................................................................................................................. 105
5.2.5 字符匹配查询........................................................................................................... 106
5.2.6 多条件查询 .............................................................................................................. 107
5.2.7 查询结果不重复 ....................................................................................................... 108
5.2.8 分组查询 .................................................................................................................. 109
5.2.9 对查询结果进行排序.................................................................................................112
5.3 聚合函数................................................................................................................................. 115
5.3.1 COUNT()函数 ...........................................................................................................115
5.3.2 SUM()函数 ................................................................................................................116
5.3.3 AVG()函数.................................................................................................................116
5.3.4 MAX()函数................................................................................................................117
5.3.5 MIN()函数.................................................................................................................117
5.4 连接查询................................................................................................................................. 118
5.4.1 内连接查询 ...............................................................................................................118
5.4.2 外连接查询 .............................................................................................................. 120
5.5 子查询 .................................................................................................................................... 121
5.5.1 带 IN 关键字的子查询.............................................................................................. 122
5.5.2 带 ANY、SOME 关键字的子查询 ............................................................................ 123
5.5.3 带 ALL 关键字的子查询........................................................................................... 124
5.5.4 EXISTS 关键字 ........................................................................................................ 125
5.5.5 含比较运算符的子查询 ............................................................................................ 126
5.6 集合运算合并查询结果 .......................................................................................................... 127
5.6.1 集合并运算 .............................................................................................................. 127
5.6.2 等同于集合交运算 ................................................................................................... 128
5.6.3 等同于集合差运算 ................................................................................................... 128
5.7 表和字段设置别名.................................................................................................................. 128
5.7.1 表设置别名 .............................................................................................................. 128
5.7.2 字段设置别名........................................................................................................... 129
5.8 使用正则表达式查询.............................................................................................................. 130
5.8.1 查询以特定字符或字符串开头的记录 ...................................................................... 131
5.8.2 查询以特定字符或字符串结尾的记录 ...................................................................... 131
5.8.3 替代字符串中的任意一个字符 ................................................................................. 132
5.8.4 匹配多个字符........................................................................................................... 132
5.8.5 匹配指定字符串 ....................................................................................................... 133
目录 VII
5.8.6 匹配指定字符中的任意一个 .....................................................................................134
5.8.7 匹配除指定字符之外的字符 .....................................................................................135
5.8.8 指定字符串连续出现的次数 .....................................................................................135
第 6 章 关系运算 ..........................................................................................................................136
微课视频 11 分钟
6.1 关系代数与关系演算 ............................................................................................................. 136
6.2 传统集合运算......................................................................................................................... 137
6.2.1 并..............................................................................................................................138
6.2.2 差..............................................................................................................................139
6.2.3 交..............................................................................................................................139
6.2.4 笛卡儿积...................................................................................................................140
6.2.5 广义笛卡儿积 ...........................................................................................................140
6.3 专有关系运算......................................................................................................................... 141
6.3.1 投影 ..........................................................................................................................141
6.3.2 选择 ..........................................................................................................................142
6.3.3 连接 ..........................................................................................................................144
6.3.4 自然连接...................................................................................................................144
6.3.5 内连接 ......................................................................................................................145
6.3.6 外连接 ......................................................................................................................146
6.3.7 除运算 ......................................................................................................................150
第 7 章 关系数据库规范化..........................................................................................................153
微课视频 42 分钟
7.1 规范化必要性......................................................................................................................... 153
7.1.1 规范化的目的 ...........................................................................................................153
7.1.2 不规范关系表的异常问题 .........................................................................................154
7.2 函数依赖 ................................................................................................................................ 157
7.2.1 关系模式五元组........................................................................................................157
7.2.2 数据依赖...................................................................................................................157
7.2.3 函数依赖的基本概念 ................................................................................................158
7.3 阿姆斯特朗公理 ..................................................................................................................... 160
7.3.1 函数依赖扩展概念 ....................................................................................................160
7.3.2 阿姆斯特朗公理规则 ................................................................................................161
7.3.3 阿姆斯特朗公理推论 ................................................................................................161
7.3.4 X 关于函数依赖集 F 的闭包 .....................................................................................161
7.3.5 最小函数依赖集........................................................................................................163
7.3.6 候选键求解方法........................................................................................................165
7.4 范式........................................................................................................................................ 167
7.4.1 范式的基本概念........................................................................................................168
VIII 数据库系统原理及应用:基于 MySQL 的描述与实现
7.4.2 第一范式 .................................................................................................................. 168
7.4.3 第二范式 .................................................................................................................. 171
7.4.4 第三范式 .................................................................................................................. 172
7.4.5 BC 范式.................................................................................................................... 173
7.4.6 第四范式 .................................................................................................................. 174
7.4.7 第五范式 .................................................................................................................. 177
7.5 模式分解................................................................................................................................. 178
第 8 章 关系数据库设计 ............................................................................................................. 182
微课视频 6 分钟
8.1 项目管理................................................................................................................................. 182
8.1.1 软件工程项目管理 ................................................................................................... 182
8.1.2 软件生命周期........................................................................................................... 183
8.1.3 数据库项目管理 ....................................................................................................... 185
8.2 数据库项目设计方法.............................................................................................................. 189
8.2.1 设计方法 .................................................................................................................. 189
8.2.2 数据流图 .................................................................................................................. 190
8.2.3 数据字典 .................................................................................................................. 191
8.2.4 小说明...................................................................................................................... 194
8.3 关系数据库结构 ..................................................................................................................... 194
8.3.1 概念结构设计........................................................................................................... 194
8.3.2 逻辑结构设计........................................................................................................... 200
8.3.3 物理结构设计........................................................................................................... 201
8.3.4 外模式设计 .............................................................................................................. 203
8.3.5 数据库的实施和维护................................................................................................ 203
第 9 章 索引.................................................................................................................................. 205
微课视频 23 分钟
9.1 MySQL 体系结构..................................................................................................................... 205
9.2 MySQL 存储引擎 ................................................................................................................ 206
9.2.1 InnoDB 存储引擎逻辑结构....................................................................................... 206
9.2.2 InnoDB 存储引擎架构 .............................................................................................. 207
9.2.3 后台线程 .................................................................................................................. 210
9.2.4 MySQL 支持的存储引擎 ...........................................................................................211
9.3 MySQL 索引 ............................................................................................................................ 211
9.3.1 索引概念 .................................................................................................................. 212
9.3.2 MySQL 索引类型 ..................................................................................................... 212
9.3.3 索引结构 .................................................................................................................. 214
9.3.4 索引的设计原则 ....................................................................................................... 220
9.4 创建索引................................................................................................................................. 221
目录 IX
9.4.1 创建表同时创建索引 ................................................................................................221
9.4.2 在已建表中创建索引 ................................................................................................224
9.5 删除索引 ................................................................................................................................ 226
第 10 章 存储过程和存储函数....................................................................................................228
微课视频 14 分钟
10.1 创建存储过程和存储函数 .................................................................................................... 228
10.1.1 创建存储过程 .........................................................................................................228
10.1.2 创建存储函数 .........................................................................................................230
10.2 基本语法 .............................................................................................................................. 231
10.2.1 变量 ........................................................................................................................231
10.2.2 定义条件和处理程序 ..............................................................................................233
10.2.3 控制语句.................................................................................................................236
10.3 基本操作 .............................................................................................................................. 241
10.3.1 调用存储过程 .........................................................................................................241
10.3.2 调用存储函数 .........................................................................................................242
10.3.3 查看存储过程和存储函数 .......................................................................................242
10.3.4 修改存储过程和存储函数 .......................................................................................243
10.3.5 删除存储过程和存储函数 .......................................................................................244
10.4 游标 ...................................................................................................................................... 244
10.4.1 游标操作.................................................................................................................244
10.4.2 游标实例.................................................................................................................245
第 11 章 触发器和视图................................................................................................................247
微课视频 5 分钟
11.1 触发器 .................................................................................................................................. 247
11.1.1 触发器类型 .............................................................................................................247
11.1.2 触发器事件 .............................................................................................................248
11.1.3 创建触发器 .............................................................................................................250
11.1.4 查看触发器 .............................................................................................................252
11.1.5 删除触发器 .............................................................................................................253
11.1.6 使用触发器 .............................................................................................................253
11.2 视图 ...................................................................................................................................... 254
11.2.1 视图概念.................................................................................................................254
11.2.2 创建视图.................................................................................................................255
11.2.3 查看视图.................................................................................................................256
11.2.4 修改视图.................................................................................................................257
11.2.5 更新视图.................................................................................................................258
11.2.6 删除视图.................................................................................................................258
X 数据库系统原理及应用:基于 MySQL 的描述与实现
第 12 章 MySQL事务 ................................................................................................................. 260
微课视频 27 分钟
12.1 事务概述............................................................................................................................... 261
12.1.1 事务特性 ................................................................................................................ 261
12.1.2 事务隔离级别......................................................................................................... 262
12.1.3 事务相关概念......................................................................................................... 262
12.2 事务操作............................................................................................................................... 263
12.2.1 支持事务的引擎 ..................................................................................................... 263
12.2.2 事务基本操作......................................................................................................... 263
12.3 并发问题和事务隔离级别 .................................................................................................... 265
12.3.1 并发问题 ................................................................................................................ 265
12.3.2 事务隔离级别......................................................................................................... 267
12.4 并发事务操作 ....................................................................................................................... 268
12.4.1 查看隔离级别......................................................................................................... 268
12.4.2 设置隔离级别......................................................................................................... 269
12.4.3 测试事务 ................................................................................................................ 269
12.4.4 测试脏读 ................................................................................................................ 270
12.4.5 测试不可重复读 ..................................................................................................... 271
12.4.6 测试幻读 ................................................................................................................ 272
12.4.7 串行化隔离级别的并发测试................................................................................... 273
12.5 MySQL 锁 .............................................................................................................................. 274
12.5.1 锁机制.................................................................................................................... 274
12.5.2 MySQL 死锁........................................................................................................... 279
12.6 MySQL 日志 .......................................................................................................................... 282
12.6.1 MySQL 日志类型.................................................................................................... 282
12.6.2 访问日志 ................................................................................................................ 283
12.7 事务重做与回滚机制............................................................................................................ 284
12.7.1 重做日志 ................................................................................................................ 284
12.7.2 回滚日志 ................................................................................................................ 284
12.8 MVCC 机制 ........................................................................................................................... 285
12.8.1 多版本并发控制 ..................................................................................................... 285
12.8.2 MVCC 原理 ............................................................................................................ 285
