概述 数据库与MySQL简介 1
0.1 数据库、数据库服务器和数据库语言 1
0.2 关系模型 2
0.3 关系数据库管理系统的体系结构 3
0.4 MySQL数据库特性 4
0.5 MySQL体系结构 5
0.5.1 逻辑模块组成 6
0.5.2 插件式存储引擎(也称作表类型) 6
0.6 MySQL汉字乱码问题的处理方法 9
实验1 数据库系统基础操作 12
实验目的 12
背景知识 12
实验示例 13
1.1 安装MySQL 13
1.1.1 选择MySQL版本 13
1.1.2 安装Windows分发版 14
1.1.3 安装Linux分发版 22
1.2 MySQL的简单使用 23
1.2.1 启动或停止MySQL服务器命令 23
1.2.2 连接和退出MySQL服务器命令 24
1.2.3 mysql(输入行编辑器) 25
1.3 MySQL图形工具 27
1.3.1 在Windows中安装MySQL Workbench 29
1.3.2 主界面 29
1.3.3 服务器管理 29
1.3.4 数据库设计和建模(Database Design & Modeling) 35
1.3.5 SQL开发 39
实验内容与要求 42
实验2 MySQL数据库基础操作 43
实验目的 43
背景知识 43
实验示例 43
2.1 使用MySQL Workbench管理数据库 44
2.2 使用SQL语句创建数据库 45
2.3 用SHOW显示已有的数据库 45
2.4 用USE选用数据库 46
2.5 删除数据库 46
2.5.1 使用SQL语句删除数据库 46
2.5.2 用MYSQLADMIN创建和删除 46
2.5.3 直接在数据库目录中创建或删除 47
实验内容与要求 47
实验3 表、ER图、索引与视图的基础操作 48
实验目的 48
背景知识 48
实验示例 50
3.1 使用MySQL Workbench创建表 51
3.2 使用MySQL Workbench修改表 55
3.3 用SHOW/DESCRIBE语句显示数据表的信息 56
3.4 使用MySQL Workbench删除表 58
3.5 使用SQL语句管理表 58
3.5.1 使用SQL语句创建表 58
3.5.2 使用SQL语句修改表 60
3.5.3 使用SQL语句删除表 61
3.6 ER图 61
3.7 用MySQL Workbench管理索引 62
3.8 创建和使用视图 63
3.8.1 创建视图 63
3.8.2 SHOW CREATE VIEW语法 66
实验内容与要求 66
实验4 SQL语言——SELECT查询操作 68
实验目的 68
背景知识 68
实验示例 68
4.1 SELECT语句的语法 69
4.2 查询示例 69
实验内容与要求 73
实验5 SQL语言——数据更新操作 74
实验目的 74
背景知识 74
实验示例 74
5.1 使用MySQL Workbench录入数据 74
5.2 插入数据 75
5.2.1 使用INSERT语句插入数据 75
5.2.2 使用INSERT…SELECT语句插入从其他表选择的行 76
5.2.3 使用REPLACE、REPLACE…SELECT语句插入 76
5.2.4 使用LOAD语句批量录入数据 77
5.3 修改数据 77
5.4 删除数据 78
实验内容与要求 78
实验6 嵌入式SQL应用 80
实验目的 80
背景知识 80
实验示例 81
6.1 应用系统运行环境 81
6.2 系统的需求与总体功能要求 81
6.3 系统概念结构设计与逻辑结构设计 82
6.3.1 数据库概念结构设计 82
6.3.2 数据库逻辑结构设计 82
6.4 典型功能模块介绍 83
6.4.1 数据库的连接 83
6.4.2 表的初始创建 84
6.4.3 表记录的插入 86
6.4.4 表记录的修改 86
6.4.5 表记录的删除 88
6.4.6 表记录的查询 89
6.4.7 实现统计功能 90
6.5 系统运行及配置 91
实验内容与要求(选做) 100
实验7 数据库存储和优化 101
实验目的 101
背景知识 101
实验示例 106
7.1 创建示例表 106
7.2 运行测试代码 107
实验内容与要求(选做) 109
实验8 存储过程的基本操作 110
实验目的 110
背景知识 110
实验示例 110
8.1 创建存储过程 110
8.2 修改存储过程 112
8.3 删除存储过程 112
8.4 查看存储过程 113
8.5 列出所有存储过程 113
8.6 调用存储过程 113
实验内容与要求(选做) 114
实验9 触发器的基本操作 115
实验目的 115
背景知识 115
实验示例 115
9.1 创建触发器 116
9.2 删除触发器 117
9.3 使用触发器 117
实验内容与要求(选做) 118
实验10 数据库安全性 120
实验目的 120
背景知识 120
实验示例 121
10.1 用户管理 121
10.2 权限管理 123
10.2.1 使用SHOW GRANTS语句显示用户的授权 123
10.2.2 使用GRANT语句授权 124
10.2.3 使用REVOKE语句撤销授权 124
10.2.4 MySQL中的权限级别 125
10.2.5 用MySQL Workbench进行权限管理 130
实验内容与要求 132
实验11 数据库完整性 133
实验目的 133
背景知识 133
实验示例 133
11.1 实体完整性 133
11.2 参照完整性 134
11.3 用户自定义完整性 134
实验内容与要求 137
实验12 数据库并发控制 138
实验目的 138
背景知识 138
实验示例 142
12.1 获取InnoDB行锁争用情况 142
12.2 丢失修改 144
12.3 脏读 149
12.4 不可重复读 151
12.5 幻影问题 152
12.6 死锁和解除死锁 154
实验内容与要求 155
实验13 数据库备份与恢复 156
实验目的 156
背景知识 156
实验示例 156
13.1 日志文件 156
13.2 使用SQL语句实现备份和还原 158
13.3 使用程序工具完整备份和还原 160
13.4 差异备份和还原 160
13.4.1 启用日志 161
13.4.2 差异备份和还原 161
13.4.3 时间点恢复 161
13.4.4 位置恢复 162
13.5 使用MySQL Workbench备份和还原 162
实验内容与要求 163
实验14 数据库应用系统设计与开发 165
实验目的 165
背景知识 165
实验示例 165
14.1 企业员工管理系统(Java技术) 165
14.1.1 开发环境与开发工具 166
14.1.2 系统需求分析 166
14.1.3 功能需求分析 166
14.1.4 系统设计 166
14.1.5 系统功能的实现 169
14.1.6 测试运行和维护 190
14.2 企业库存管理及Web网上订购系统(C#/ASP.NET技术) 192
14.2.1 开发环境与开发工具 193
14.2.2 系统需求分析 194
14.2.3 功能需求分析 199
14.2.4 系统设计 200
14.2.5 数据库初始数据的加载 205
14.2.6 库存管理系统的设计与实现 206
14.2.7 系统的编译与发行 218
14.2.8 网上订购系统的设计与实现 218
14.3 小结 221
实验内容与要求(选做) 222
附录A MySQL编程简介 227
附录B 常用函数与操作符 233
B.1 操作符 233
B.1.1 操作符优先级 233
B.1.2 圆括号 234
B.1.3 比较函数和操作符 234
B.1.4 逻辑操作符 237
B.2 控制流程函数 238
B.3 字符串函数 239
B.3.1 字符串一般函数 239
B.3.2 字符串比较函数 247
B.4 数值函数 248
B.4.1 算术操作符 248
B.4.2 数学函数 249
B.5 日期和时间函数 253
附录C C API 264
C.1 使用C和MySQL 264
C.2 常用API函数 266
C.3 C API数据类型 268
附录D MySQL命令与帮助 269
参考文献 272