目 录
第1章 数据库基础 1
1.1 数据库和数据模型 1
1.1.1 数据库系统 1
1.1.2 数据模型 2
1.2 数据库设计 3
1.2.1 概念模型 3
1.2.2 逻辑模型 5
1.2.3 物理模型 6
1.3 数据库应用系统 6
1.3.1 数据库应用系统架构 6
1.3.2 应用系统的数据接口 7
第2章 MySQL安装、运行和工具 9
2.1 MySQL简介 9
2.2 MySQL 8安装与运行 9
2.2.1 安装包方式安装 9
2.2.2 运行 10
2.3 MySQL操作工具 13
2.3.1 MySQL客户端工具 13
2.3.2 MySQL第三方界面工具 13
2.4 数据库和表的创建及简单操作 15
第3章 数据类型 18
3.1 数值类型及实例 18
3.1.1 整数类型 18
3.1.2 实数类型 19
3.1.3 位型 20
3.2 日期与时间类型及实例 21
3.3 字符串类型及实例 23
3.3.1 文本字符串类型 23
3.3.2 字符集编码 25
3.3.3 字符排序规则 28
3.3.4 二进制字符串类型 30
3.4 枚举类型和集合类型 32
3.4.1 枚举类型 32
3.4.2 集合类型 33
3.5 JSON和空间数据类型及实例 35
3.5.1 JSON数据类型 35
3.5.2 空间数据类型 37
第4章 数据库及表结构设计 41
4.1 数据库的基本操作 41
4.1.1 系统数据库 41
4.1.2 数据库的创建、修改和删除 41
4.2 创建表结构 42
4.2.1 列及其常用属性 44
4.2.2 列约束 45
4.2.3 列默认值 46
4.2.4 数值类型属性 47
4.2.5 字符类型属性 48
4.2.6 生成列(虚拟列) 48
4.2.7 表约束 49
4.2.8 表外键约束 51
4.2.9 从旧表创建新表结构 54
4.3 修改表结构 54
4.3.1 添加和删除列 55
4.3.2 修改列及其属性 55
4.3.3 添加和删除表约束 59
第5章 表记录操作 63
5.1 插入记录 63
5.1.1 插入新记录 63
5.1.2 插入查询记录 68
5.1.3 导入文件数据 69
5.1.4 导入Excel/Word文件数据 72
5.1.5 导入图片数据 73
5.1.6 查询表记录复制 74
5.2 修改记录 75
5.2.1 替换记录 75
5.2.2 更新记录 77
5.2.3 JSON类型列记录修改 81
5.2.4 空间类型列记录修改 82
5.3 删除记录 83
5.3.1 删除行 83
5.3.2 清空表记录 85
5.4 导出记录 86
5.4.1 表记录导出方式 86
5.4.2 表导出形成文件 86
5.5 数据库备份与恢复 88
5.5.1 mysqldump备份和恢复 88
5.5.2 使用日志文件备份和恢复 89
5.5.3 文件系统和实时数据库备份 91
第6章 分区、表空间和行格式 92
6.1 分区 92
6.1.1 分区简介 92
6.1.2 范围分区 93
6.1.3 列表分区 96
6.1.4 散列分区 98
6.1.5 键分区 99
6.1.6 子分区 100
6.1.7 分区管理 100
6.2 表空间 103
6.2.1 表空间的创建和使用 104
6.2.2 表空间中表的移动 105
6.2.3 删除表空间 106
6.3 行格式 106
第7章 运算符、表达式和系统函数 108
7.1 常量和变量 108
7.1.1 常量 108
7.1.2 变量 110
7.2 运算符与表达式 113
7.2.1 赋值运算符 113
7.2.2 算术运算符 113
7.2.3 比较运算符 114
7.2.4 判断运算符 119
7.2.5 字符串匹配 121
7.2.6 逻辑运算符和位运算符 122
7.2.7 表达式和运算符的优先级 124
7.3 系统函数 126
第8章 查询、视图和索引 128
8.1 数据库查询 128
8.1.1 选择输出项 128
8.1.2 单数据源 133
8.1.3 多数据源 135
8.1.4 查询条件:逻辑条件 138
8.1.5 查询条件:枚举、集合、JSON
和空间条件 142
8.1.6 查询条件:子查询 145
8.1.7 分组 151
8.1.8 分组后筛选 153
8.1.9 输出行排序 154
8.1.10 输出行限制 156
8.1.11 多表记录联合 156
8.1.12 通用表表达式 157
8.1.13 窗口表达 159
8.1.14 查询准备 161
8.1.15 单表简单查询 162
8.2 视图 162
8.2.1 创建视图 163
8.2.2 查询视图 164
8.2.3 更新视图 165
8.2.4 修改视图 167
8.2.5 删除视图 169
8.3 索引 169
8.3.1 索引概述 169
8.3.2 索引操作 170
8.3.3 特殊数据类型索引 173
8.3.4 索引与分区查询 174
8.3.5 索引建立原则 175
第9章 过程式对象程序设计 177
9.1 过程体 177
9.1.1 局部变量定义 177
9.1.2 条件分支 178
9.1.3 循环执行 180
9.2 出错处理及实例 182
9.2.1 根据错误自动处理 182
9.2.2 根据情况抛出信号 185
9.3 事务管理 187
9.3.1 事务处理 188
9.3.2 事务隔离级 190
9.3.3 事务应用实例 192
9.4 游标 194
9.5 存储过程 196
9.5.1 存储过程的基本操作 196
9.5.2 存储过程的应用 198
9.5.3 存储对象访问控制 200
9.6 存储函数 200
9.6.1 存储函数的基本操作 200
9.6.2 存储函数的应用 202
9.7 触发器 205
9.7.1 触发器的创建和修改 205
9.7.2 触发器应用举例 207
9.7.3 触发器和存储过程的比较 211
9.8 事件 211
9.8.1 创建事件 211
9.8.2 修改和删除事件 213
9.9 全局锁、表锁和行锁 214
9.9.1 全局锁 214
9.9.2 表锁 215
9.9.3 行锁 217
9.9.4 死锁 220
第10章 用户与权限 221
10.1 用户管理及实例 221
10.1.1 创建、删除用户 221
10.1.2 修改用户名和密码 223
10.2 权限控制及实例 223
10.2.1 授予权限 223
10.2.2 权限转移和限制 228
10.2.3 权限撤销 229
10.2.4 Navicat可视化权限操作 230
10.3 角色和权限管理及实例 231
10.3.1 创建角色和分配权限 231
10.3.2 用户角色和权限分配实例 232
实习0 数据库综合应用及实例——网上商城
数据库设计 234
P0.1 MySQL 8服务器和网上商城
数据库 234
P0.2 表结构设计及其分析 234
P0.3 视图设计 240
P0.4 触发器设计 241
P0.5 存储过程和自定义函数 242
P0.5.1 创建存储过程和自定义
函数 242
P0.5.2 查看和修改存储过程和
自定义函数 247
P0.6 事件设计 248
P0.7 角色和用户权限设计 249
P0.8 测试数据库各对象及其关联配合 251
P0.8.1 网上商城数据库备份 251
P0.8.2 商品分类表:插入记录和
用户权限测试 252
P0.8.3 商家表:插入记录与默认值
测试 253
P0.8.4 商品表:增改删记录、外键
完整性和存储过程测试 254
P0.8.5 商品图片表:图片列记录
导入、导出测试 259
P0.8.6 用户表:各种数据类型和
函数合法性记录操作测试 260
P0.8.7 购物车表:存储过程记录
操作和视图查询测试 263
P0.8.8 订单表:记录操作、存储过程
和触发器联动处理测试 264
P0.8.9 商品表:商品状态修改和视图
查询测试 269
P0.8.10 销售表和销售详情表:事件
操作测试 269
实习1 PHP/MySQL开发及实例——网上商城
商家管理 272
P1.1 PHP开发环境搭建 272
P1.1.1 安装Apache服务器 272
P1.1.2 安装PHP 8 272
P1.1.3 安装Eclipse 272
P1.1.4 数据准备 273
P1.2 PHP开发入门 273
P1.2.1 项目的创建和运行 273
P1.2.2 PHP连接MySQL 274
P1.2.3 一个简单的PHP查询程序 275
P1.3 商家管理系统开发 279
P1.3.1 功能需求 279
P1.3.2 前端程序设计 279
P1.3.3 后端业务功能开发 287
P1.3.4 其他功能开发 290
P1.4 商家管理系统部署运行 294
实习2 SpringBoot+MyBatis/MySQL开发及
实例——网上商城商品管理 295
第1部分 Thymeleaf/SpringBoot简易
开发 295
P2.1 系统架构及开发环境 295
P2.1.1 系统架构 295
P2.1.2 开发环境安装及配置 296
P2.1.3 数据准备 296
P2.2 开发过程 297
第2部分 Vue/ElementUI+SpringBoot
前后端分离开发 304
P2.3 系统架构及开发工具 304
P2.3.1 系统架构 304
P2.3.2 开发工具 305
P2.4 前端开发 307
P2.5 前后端分离的JavaEE项目 326
P2.5.1 前端修改 327
P2.5.2 后端开发 329
P2.5.3 前后端联调 332
P2.6 给JavaEE项目添加业务功能
(网络文档) 334
P2.6.1 载入商品分类 335
P2.6.2 增加新商品 335
P2.6.3 商品图片的存储和显示 335
P2.7 打印导出图形(网络文档) 335
P2.8 项目部署运行 336
实习3 Android Studio/MySQL开发及实
例——网上商城用户购物APP 337
P3.1 系统原理及开发工具 337
P3.1.1 基本原理 337
P3.1.2 开发工具安装 338
P3.1.3 数据准备 338
P3.2 需求及实现思路 340
P3.2.1 需求描述 340
P3.2.2 实现思路 341
P3.3 基本开发过程 343
P3.3.1 创建Android工程 343
P3.3.2 APP模拟与真机运行 344
P3.3.3 开发底部标签栏 348
P3.3.4 开发列表视图 353
P3.3.5 开发Web端Servlet 366
P3.3.6 运行前配置 374
P3.3.7 数据库操作 375
P3.4 主页丰富开发(网络文档) 375
P3.4.1 主页界面设计 375
P3.4.2 商品广告栏 376
P3.4.3 类别频道栏 376
P3.4.4 搜索登录栏 376
P3.4.5 主页功能集成 376
P3.5 购物车功能开发(网络文档) 377
P3.5.1 购物车界面设计 377
P3.5.2 开发列表视图 377
P3.5.3 选中购买 377
P3.5.4 移出购物车 377
P3.5.5 调整购买数量 377
P3.5.6 购物车功能集成 378
P3.5.7 数据库操作 378
实习4 Qt+Python/MySQL开发及实例——网
上商城商品销售数据分析 379
P4.1 开发环境安装和准备 379
P4.1.1 安装Qt 380
P4.1.2 安装Python 380
P4.1.3 安装扩展库 380
P4.1.4 数据准备 382
P4.2 开发过程 383
P4.2.1 用Qt设计界面 383
P4.2.2 文件转换 387
P4.2.3 Python程序框架 388
P4.2.4 Python功能实现 390
实验和习题网络文档 393
第1章 数据库基础 393
第2章 MySQL安装、运行和工具 393
第3章 数据类型 393
第4章 数据库及表结构设计 394
第5章 表记录操作 395
第6章 分区、表空间和行格式 396
第7章 运算符、表达式和系统函数 396
第8章 查询、视图和索引 397
第9章 过程式对象程序设计 398
第10章 用户与权限 399
附录A WebService开发和访问(网络
文档) 400
A.1 WebService开发环境搭建 400
A.2 开发WebService 401
A.3 Android访问WebService 401
A.4 JavaEE(SpringBoot)访问
WebService 401
A.5 PHP访问WebService 401
附录B Visual C#/MySQL 8开发(网络
文档) 402
B.1 系统架构和环境 402
B.2 设计客户端 402
B.3 生成二维码 402
B.4 查询包裹 402
B.5 更新物流 403
B.6 打印 403