
本书共23章,包括MySQL 8基本内容、MySQL 8扩展内容、MySQL 8综合设计和流行平台开发MySQL 8应用等。MySQL 8基本内容包括安装、运行和基本工具,数据库、字符集和存储引擎,数据类型,表结构设计,表记录操作,分区、表空间和行格式,运算符、表达式和系统函数,查询、视图和索引,过程式对象程序设计,用户与权限,系统管理等。MySQL 8扩展内容包括数据安全、云数据库、数据复制、集群:NDB Cluster和NoSQL等。MySQL 8综合设计包括各流行平台共用的数据库综合实例设计,涉及数据库设计、表结构设计、视图设计、触发器设计、存储过程和自定义函数设计、事件设计、角色和用户权限设计等,在此基础上对数据库实例各对象采用样本数据进行测试。流行平台开发MySQL 8应用涉及PHP、Vue/ElementUI+Spring Boot+ MyBatis、Android、WebService、Visual C#、Qt+Python等平台,以网上商城不同应用角色操作MySQL 8数据库实例各对象,并在该过程中完成网上商城基本功能。本书以讲故事的方式介绍MySQL 8的基本内容和配套实例,通过数据库综合设计和样本数据测试将MySQL 8各对象串联起来解决实际问题,精心设计流行平台数据库应用系统功能,网上配套资源与本书紧密配合,层次清晰、阅读方便。本书配套资源非常丰富,包括非基本功能二维码文档,每个平台各阶段可运行的工程源程序文件和数据库文件,每个平台配套开发过程及应用程序分析视频。本书可作为MySQL 8学习和应用开发文档,也可作为高等院校相关专业学生的参考书。
MySQL是由瑞典MySQL AB公司开发的数据库管理系统,它具有开放的源代码,使用简单、方便,在中小规模的数据库市场备受推崇,并逐步进入中大规模应用市场。 2008年1月,MySQL AB公司被Sun公司收购。2009年,Sun公司又被Oracle(甲骨文)公司收购,在MySQL升级开发上投入的资源越来越多,MySQL自身的功能也越来越强大,流行的版本为5.6版和5.7版。2017年,Oracle公司发布了MySQL 8,功能和性能上了一个大台阶,可谓MySQL发展史上的一个里程碑。 2018年,编者开始在管理和控制项目开发中使用MySQL 8,积累了MySQL 8应用开发的经验。2019年,编者借鉴《MySQL实用教程》前后3版持续十几年热销的成功经验,针对市场的特点,开始整理MySQL 8及其应用开发的资料,测试功能和性能;2020年开始编写本书,花费了一年时间,在书稿完成后又按照书中内容重新实践,进行了完善和优化。 本书具有下列特点。 1.本书不是MySQL 8操作指南 MySQL 8功能有很多,仅对常用语句的所有选项进行详细介绍,篇幅就不少,通过网络也可以查询。但这不是读者最关注的,读者最关注如何应用MySQL 8解决问题。 本书从应用出发组织内容,突出主要内容,兼顾其他内容。SQL语句介绍分层次展开,先说明大的框架,然后在实例中分别细化功能,没有集合在一起的详细语句格式。这样,读者可以轻松学习SQL语句功能,在配套实例中提高认识水平。 2.用户数据库分工明确、有条不紊 为了方便读者学习数据库及其各种对象关系,避免内容杂乱无章,本书创建了以下满足不同需求的用户数据库。 (1)部分实例使用的临时数据库。这些实例中包含的数据库表记录一般没有顺序和严格关系,就是为了说明当前内容,包含的对象在需要时创建和使用。 (2)前后呼应的数据库:包含多个表,表之间存在一定关系,在介绍MySQL 8数据库和表结构的过程中逐步创建,与实际情况相结合,读者不但容易理解,而且能掌握考虑问题的方法和思路。 (3)应用开发共用数据库:包含的对象完全按照应用开发进行设计,并利用数据测试各对象相互配合和功能的正确性;同时,使MySQL 8各对象形成一个系统,进行综合应用,这是读者最需要的。 (4)多实例数据库:通过不同应用程序交换不同实例之间的数据库数据。 (5)NoSQL数据库:该数据库中存放的是非关系表(NoSQL)。 3.以讲故事的方式介绍相关内容和配套实例 单个知识点采用简单实例讲解,多 SQL 语句配合知识点采用讲故事的方式展开。这样,读者不仅容易理解先后关系,而且能不断提高学习的层次和水平。同时,读者可以比较快地查阅内容。 4.MySQL 8扩展功能介绍可视化,操作性强 MySQL 8数据安全采用图文介绍原理,然后讲解实例;MySQL 8云数据库主要介绍两种应用方式;MySQL 8数据复制和MySQL 8集群采用实例介绍环境搭建、参数配置及功能实现;NoSQL部分主要介绍基本功能。 5.综合设计数据库各对象、样本数据测试功能和相互关系 编者结合多年数据库应用开发经验,完整设计MySQL 8数据库及其各种对象,并利用数据测试相关功能的正确性,把MySQL 8的主要内容和解决实际问题的思路及方法包含在其中,使读者学习MySQL 8时达到事半功倍的效果。 6.精心设计流行平台数据库应用系统功能和开发步骤 PHP、Vue/ElementUI+Spring Boot+MyBatis、Android、WebService、Visual C#、Qt+Python等平台应用开发真正使MySQL 8应用落到实处。每个平台实现网上商城系统的一个角色功能,所有平台一起构成一个具有基本功能的完整系统。同时,通过每个平台的数据准备,读者可根据需要选择其中一个或多个学习应用开发。在该过程中,读者不但可以掌握在各流行平台中操作MySQL 8的方法,而且可以迅速低门槛熟悉平台应用开发。 7.平台功能实现步步为营 对于每个平台,考虑不同情况及需求,均进行了精心安排,完成了基础功能设计。配置环境后直接进入数据准备。若已存在数据,可直接进行简单开发,简单开发后就可测试运行。简单开发完成后进入基本功能开发,各个步骤介绍得详细、完整,开发完成后可再次测试运行。基本功能开发完成后进行其他功能开发,此后类似功能仅介绍开发过程和主要框架代码,不会重复介绍,详细代码可通过扫描二维码得到,从而实现完整功能。最后根据需要,介绍应用系统发布。 8.网上配套资源与本书紧密配合 本书配有每个平台各阶段测试运行的工程源程序文件和数据库文件,以及每个平台开发MySQL 8数据库的视频。一般来说,读者按照要求学习,就能在较短时间内采用自己选择的平台解决规模不大的应用问题。这是一个快速掌握MySQL 8应用开发的途径。 9.SQL语句层次清晰、阅读方便 为了方便读者阅读,分清SQL语句关键字、列名、数据库名、表名等层次,本书中MySQL 8系统关键字采用大写英文字母,数据库名和表名采用小写英文字母,MySQL 8前后呼应的数据库表列名用中文表示,开发平台用数据库表列名用英文表示,且单词首字母大写。 本书内容经过多次优化,一般不需要附加知识准备。 本书配套资源非常丰富,分成下列几类: (1)PHP、Vue/ElementUI+Spring Boot+MyBatis、Android、WebService、Visual C#、Qt+Python等平台的非基本功能二维码文档。 (2)PHP、Vue/ElementUI+Spring Boot+MyBatis、Android、WebService、Visual C#、Qt+Python等平台各阶段可运行的工程源程序文件和数据库文件。 (3)PHP、Vue/ElementUI+Spring Boot+MyBatis、Android、WebService、Visual C#、Qt+Python等平台配套开发过程及应用程序分析视频。 上述资源可从华信教育资源网(http://www.hxedu.com.cn)免费下载。 本书由南京师范大学郑阿奇和东南大学周怡君主编,参加本书编写的还有郑进、刘美芳、周何骏、孙德荣、郑博琳等。此外,还有许多同志对本书提供了很多帮助,在此一并表示感谢! 由于编者水平有限,书中错误在所难免,敬请广大读者批评指正。 编 者
第0章 本书导读 1 第1章 MySQL 8安装、运行和基本工具 4 1.1 MySQL简介 4 1.1.1 MySQL的起源、特点及版本 4 1.1.2 MySQL 8 5 1.2 MySQL 8安装与运行 7 1.2.1 安装包方式安装 7 1.2.2 压缩包方式安装 12 1.2.3 运行MySQL 8 15 1.2.4 SQL语言 18 1.3 MySQL操作工具 19 1.3.1 MySQL客户端工具 19 1.3.2 MySQL第三方工具 20 第2章 MySQL 8数据库、字符集和存储引擎 24 2.1 数据库和表的基本操作 24 2.1.1 系统数据库和本书创建的数据库 24 2.1.2 数据库的操作 26 2.1.3 表创建和记录的基本操作及实例 27 2.2 字符集和排序规则 30 2.2.1 字符及其编码 30 2.2.2 MySQL 8字符集 33 2.2.3 字符集环境变量设置 36 2.2.4 数据库对象字符集修改 38 2.2.5 字符串乱码问题 39 2.2.6 字符排序规则及实例 40 2.3 数据库存储引擎及实例 43 2.3.1 常用存储引擎:【MERGE存储引擎实例】 44 2.3.2 其他存储引擎:【CSV存储引擎实例】 48 第3章 MySQL 8数据类型 51 3.1 数值类型及实例 51 3.1.1 整数类型 52 3.1.2 实数类型 53 3.1.3 位型 58 3.2 日期与时间类型及实例 59 3.3 字符串类型及实例 65 3.3.1 文本字符串类型 65 3.3.2 枚举类型和集合类型 69 3.3.3 二进制字符串类型 72 3.4 JSON和空间数据类型及实例 75 3.4.1 JSON数据类型 75 3.4.2 空间数据类型 79 第4章 MySQL 8表结构设计 86 4.1 数据类型选择分析:【网上商城表实例】 86 4.2 创建表结构:【网上商城表结构实例】 90 4.2.1 列及其常用属性 91 4.2.2 列约束 95 4.2.3 列默认值 96 4.2.4 数值类型其他列属性 98 4.2.5 字符类型其他列属性 99 4.2.6 虚拟列和类型变化 99 4.2.7 表约束 101 4.2.8 外键约束 104 4.2.9 从旧表创建新表 108 4.2.10 表选项 111 4.3 修改表结构 112 4.3.1 添加和删除列 113 4.3.2 修改列及其属性 113 4.3.3 添加和删除约束 118 4.3.4 表选项修改 122 第5章 MySQL 8表记录操作 123 5.1 插入记录 123 5.1.1 插入新记录:【订单表、用户表、商品表实例】 123 5.1.2 插入查询记录 129 5.1.3 导入文件数据:【商品表、供货商表实例】 130 5.1.4 导入Excel/Word文件数据:【订单表、订单项表实例】 136 5.1.5 导入图片数据 139 5.2 修改记录 140 5.2.1 替换记录 140 5.2.2 更新记录 143 5.2.3 JSON类型列记录修改:【用户表列更新实例】 147 5.2.4 空间类型列记录修改:【用户表列更新实例】 148 5.3 删除记录 149 5.3.1 逐个删除行 149 5.3.2 清空表记录 151 5.4 导出记录 152 5.4.1 表记录导出成表 152 5.4.2 表记录导出成文件 152 第6章 MySQL 8分区、表空间和行格式 155 6.1 分区及实例 155 6.1.1 分区简介 155 6.1.2 分区的基本操作 156 6.1.3 范围分区 160 6.1.4 列表分区 163 6.1.5 散列分区 165 6.1.6 键分区 168 6.1.7 子分区 169 6.1.8 分区管理 171 6.2 表空间及实例 175 6.2.1 表空间介绍 175 6.2.2 表空间的创建和使用 179 6.2.3 表空间中表的移动 180 6.2.4 修改表空间属性 181 6.2.5 删除表空间 182 6.3 行格式 183 6.3.1 概述 183 6.3.2 行格式设定和修改 184 6.3.3 行格式参数设置 185 第7章 MySQL 8运算符、表达式和系统函数 187 7.1 常量和变量 187 7.1.1 常量 187 7.1.2 变量 189 7.2 运算符与表达式 194 7.2.1 赋值运算符 194 7.2.2 算术运算符 194 7.2.3 比较运算符 195 7.2.4 判断运算符 200 7.2.5 字符串匹配 202 7.2.6 逻辑运算符和位运算符 204 7.2.7 表达式和运算符的优先级 206 7.3 系统函数 208 7.3.1 数学函数 208 7.3.2 字符串函数 211 7.3.3 日期时间函数 217 7.3.4 类型转换函数 224 7.3.5 JSON函数 225 7.3.6 空间数据处理函数 229 7.3.7 窗口函数 234 7.3.8 其他函数 236 第8章 MySQL 8查询、视图和索引 238 8.1 数据库查询及实例 238 8.1.1 SELECT语句 238 8.1.2 选择输出项 239 8.1.3 单数据源 244 8.1.4 多数据源 247 8.1.5 查询条件:逻辑条件 251 8.1.6 查询条件:枚举、集合、JSON和空间条件 256 8.1.7 查询条件:子查询条件 259 8.1.8 分组 265 8.1.9 分组后筛选 267 8.1.10 输出行排序 269 8.1.11 输出行限制 270 8.1.12 多表记录联合 271 8.1.13 通用表表达式 272 8.1.14 窗口表达 273 8.1.15 查询准备 276 8.1.16 单表简单查询 277 8.2 视图及实例 277 8.2.1 创建视图 278 8.2.2 查询视图 279 8.2.3 更新视图 280 8.2.4 修改视图 283 8.2.5 删除视图 284 8.3 索引及实例 285 8.3.1 索引概述 285 8.3.2 索引操作 286 8.3.3 特殊数据类型索引 289 8.3.4 索引与分区查询 290 8.3.5 索引建立原则 291 8.4 评估查询性能及实例 293 8.4.1 评估查询概述 293 8.4.2 评估查询实例及其说明 295 8.4.3 统计直方图 297 第9章 MySQL 8过程式对象程序设计 299 9.1 过程体 299 9.1.1 复合语句的开始和结束 300 9.1.2 局部变量定义 300 9.1.3 条件分支 301 9.1.4 循环执行 303 9.2 出错处理及实例 305 9.2.1 根据错误自动处理 306 9.2.2 根据情况抛出信号 309 9.3 事务管理及实例 311 9.3.1 基本概念 311 9.3.2 事务处理 312 9.3.3 事务隔离级 315 9.3.4 事务应用实例 316 9.4 游标及实例 319 9.5 存储过程及实例 321 9.5.1 存储过程的基本操作 321 9.5.2 存储过程的应用 323 9.5.3 存储对象访问控制 325 9.6 存储函数及实例 326 9.6.1 存储函数的基本操作 326 9.6.2 存储函数的应用 328 9.7 触发器及实例 331 9.7.1 触发器的创建和修改 331 9.7.2 触发器应用举例 333 9.7.3 触发器和存储过程的使用注意事项 337 9.8 事件及实例 338 9.8.1 创建事件 338 9.8.2 修改和删除事件 340 第10章 MySQL 8用户与权限 342 10.1 用户管理及实例 342 10.1.1 创建、删除用户 343 10.1.2 修改用户名、密码 344 10.2 权限控制及实例 345 10.2.1 授予权限语句 345 10.2.2 权限转移和限制 351 10.2.3 权限撤销 353 10.2.4 Navicat可视化权限操作 353 10.3 角色和权限管理及实例 354 10.3.1 创建角色和分配权限 355 10.3.2 用户角色和权限分配举例 355 第11章 MySQL 8系统管理 357 11.1 全局锁、表锁、行锁和死锁 357 11.1.1 全局锁 357 11.1.2 表锁 358 11.1.3 行锁 359 11.1.4 死锁 363 11.2 数据库备份与恢复 363 11.2.1 mysqldump备份和恢复 364 11.2.2 使用日志文件备份和恢复 366 11.2.3 文件系统和实时数据库备份 367 11.3 资源组 368 11.4 表维护 371 11.4.1 索引可压缩性更新 371 11.4.2 检查表是否有错 372 11.4.3 报告表校验和 372 11.4.4 优化表数据存储 373 11.4.5 修复表和索引 373 11.5 数据字典 373 第12章 MySQL 8数据安全 376 12.1 数据加密、解密及实例 377 12.1.1 对称密钥密码体制 377 12.1.2 表(表空间)加密、解密 378 12.2 数据完整性与数字签名及实例 381 12.2.1 公钥密码体制 381 12.2.2 数据摘要与数字签名 384 12.3 以加密方式连接MySQL 387 12.3.1 基于SSL的安全连接 387 12.3.2 配置SSL连接 387 12.3.3 查看SSL连接信息 388 第13章 MySQL 8云数据库 390 13.1 云数据库在线使用及实例 390 13.1.1 购买云数据库 390 13.1.2 使用云数据库 395 13.2 云数据库远程访问及实例 400 13.2.1 架设云服务器 400 13.2.2 配置外网 405 13.2.3 用Navicat Premium连接 407 13.2.4 将本地数据备份到云上 408 第14章 MySQL 8数据复制 410 14.1 数据复制概述 410 14.1.1 数据复制及其特点 410 14.1.2 环境准备 411 14.2 一主多从复制及实例 412 14.2.1 一主二从架构的搭建 412 14.2.2 一主二从同步的实现 416 14.3 多主一从复制及实例 417 14.3.1 二主一从的搭建 417 14.3.2 二主一从的实现 419 14.4 跨服务器视图及实例 420 第15章 MySQL 8集群:NDB Cluster 424 15.1 集群简介 424 15.1.1 基本架构 424 15.1.2 基本节点组成 425 15.2 安装MySQL 8集群版 425 15.3 搭建集群环境及实例 430 15.3.1 管理节点的配置 430 15.3.2 数据及SQL节点 432 15.3.3 节点的启动 432 15.4 集群功能实现及实例 436 15.4.1 数据创建和同步 437 15.4.2 模拟灾难恢复 437 15.4.3 加入单纯SQL节点 438 15.5 集群与主从复制比较 439 第16章 MySQL 8 NoSQL 440 16.1 MySQL 8 NoSQL的配置 440 16.2 MySQL Shell 8 441 16.2.1 准备 441 16.2.2 命令简介 441 16.3 MySQL 8 NoSQL及实例 442 16.3.1 NoSQL数据库和表创建 442 16.3.2 NoSQL表数据操作 444 16.3.3 NoSQL表索引和查询 446 第17章 【MySQL 8数据库综合实例】—网上商城数据库对象设计及测试 447 17.1 MySQL 8服务器和网上商城数据库 447 17.2 表结构设计及其分析 448 17.3 视图设计及其用途 455 17.4 触发器设计及其功能 456 17.5 存储过程和自定义函数:功能和事务 458 17.5.1 创建存储过程和自定义函数 458 17.5.2 查看和修改存储过程和自定义函数 464 17.6 事件设计及其功能 464 17.7 角色和用户权限设计 466 17.8 数据库各对象及其关联配合测试 468 17.8.1 网上商城数据库备份 468 17.8.2 商品分类表:插入记录和用户权限测试 469 17.8.3 商家表:插入记录与默认值测试 471 17.8.4 商品表:增改删记录、外键完整性和存储过程 472 17.8.5 商品图片表:图片列记录导入导出测试 478 17.8.6 用户表:各种数据类型和函数合法性记录操作测试 480 17.8.7 购物车表:存储过程记录操作和视图查询 483 17.8.8 订单表:记录操作、存储过程和触发器联动处理 484 17.8.9 商品表商品状态修改和视图查询测试 489 17.8.10 销售表和销售详情表:事件操作 490 17.9 顺水快递服务器和数据库:服务器实例 492 第18章 【PHP/MySQL 8开发实例】—网上商城商家管理系统 493 18.1 PHP开发环境搭建 493 18.1.1 安装Apache服务器 493 18.1.2 安装PHP 8 498 18.1.3 安装Eclipse 501 18.1.4 数据准备 505 18.2 PHP开发入门 505 18.2.1 项目的创建和运行 505 18.2.2 PHP连接MySQL 507 18.2.3 一个简单的PHP查询程序 509 18.3 商家管理系统开发 513 18.3.1 功能需求 513 18.3.2 前端程序设计 513 18.3.3 后端业务功能开发 522 18.3.4 其他功能开发 526 18.4 商家管理系统部署运行 531 第19章 【Spring Boot+MyBatis/MySQL 8开发实例】—网上商城商品管理系统 532 第1部分 Thymeleaf/Spring Boot简易开发 532 19.1 系统架构及开发环境 532 19.1.1 系统架构 532 19.1.2 开发环境安装及配置 533 19.1.3 数据准备 539 19.2 开发过程 540 第2部分 Vue/ElementUI+Spring Boot前后端分离开发 549 19.3 系统架构及开发工具 549 19.3.1 系统架构 549 19.3.2 添加安装开发工具 550 19.4 前端开发 552 19.5 前后端分离的JavaEE项目 573 19.5.1 前端修改 573 19.5.2 后端开发 576 19.5.3 前后端联调 580 19.6 给JavaEE项目添加业务功能 582 19.6.1 从数据库载入商品分类 582 19.6.2 增加新商品 586 19.6.3 商品图片的存储和显示 590 19.7 其他功能 594 19.7.1 打印 594 19.7.2 导出Excel 595 19.7.3 图形分析 597 19.8 项目部署运行 599 第20章 【Android Studio/MySQL 8开发实例】—网上商城用户购物APP 604 20.1 系统原理及开发工具 604 20.1.1 基本原理 604 20.1.2 开发工具安装 605 20.1.3 数据准备 612 20.2 需求及实现思路 614 20.2.1 需求描述 614 20.2.2 实现思路 617 20.3 基本开发过程 619 20.3.1 创建Android工程 619 20.3.2 APP模拟与真机运行 620 20.3.3 开发底部标签栏 624 20.3.4 开发列表视图 630 20.3.5 开发Web端Servlet 644 20.3.6 运行前配置 653 20.3.7 数据库操作 655 20.4 主页丰富开发 655 20.4.1 主页界面设计 655 20.4.2 商品广告栏 656 20.4.3 类别频道栏 660 20.4.4 搜索登录栏 663 20.4.5 主页功能集成 667 20.5 购物车页功能开发 672 20.5.1 购物车页界面设计 672 20.5.2 开发列表视图 672 20.5.3 选中购买 673 20.5.4 移出购物车 674 20.5.5 调整购买数量 675 20.5.6 购物车页功能集成 679 20.5.7 数据库操作 682 20.6 物流状态页功能开发 683 20.6.1 物流状态页界面设计 683 20.6.2 开发列表视图(物流状态) 683 20.6.3 开发列表视图(历史清单) 684 20.6.4 退货 685 20.6.5 评价 686 20.6.6 物流状态页功能集成 688 20.6.7 数据库操作 692 20.7 注册登录页功能开发 693 20.7.1 注册登录页界面设计 693 20.7.2 注册登录页功能实现 693 第21章 【WebService/MySQL 8多平台开发实例】—网上商城快递信息传递 700 21.1 系统环境搭建 701 21.1.1 安装VS2019 701 21.1.2 配置IIS服务器 706 21.1.3 配置MySQL多实例 709 21.1.4 数据准备 712 21.1.5 安装客户端开发环境 715 21.2 开发WebService 715 21.2.1 创建WebService项目 715 21.2.2 添加MySQL驱动 718 21.2.3 编写WebService方法 718 21.2.4 特殊类型数据获取 722 21.2.5 发布和测试 723 21.3 Android访问WebService 726 21.3.1 界面设计 727 21.3.2 加载ksoap2库 727 21.3.3 编写Android程序 729 21.3.4 运行前配置 731 21.4 JavaEE(Spring Boot)访问WebService 732 21.4.1 创建Spring Boot项目 733 21.4.2 用Axis2生成WebService客户端 734 21.4.3 将Axis2整合进Spring Boot 735 21.4.4 页面设计 737 21.4.5 后台开发 738 21.5 PHP访问WebService 740 21.5.1 创建PHP项目 740 21.5.2 打开SOAP功能 742 21.5.3 页面设计 742 21.5.4 后台开发 743 第22章 【C#+WebService/MySQL 8开发实例】—快递管理 745 22.1 系统架构和环境 745 22.1.1 系统架构 745 22.1.2 运行环境 745 22.1.3 数据准备 746 22.2 设计客户端 747 22.2.1 创建Windows窗体应用项目 748 22.2.2 界面设计 750 22.2.3 VS项目连接MySQL 751 22.2.4 C#程序开发 753 22.3 显示二维码 759 22.3.1 安装及引入ZXing库 760 22.3.2 功能实现 761 22.4 查询包裹 761 22.4.1 功能实现 761 22.4.2 运行效果 764 22.5 更新物流 764 22.5.1 开发WebService方法 765 22.5.2 客户端引用WebService 767 22.5.3 客户端开发 768 22.5.4 运行演示 769 22.6 打印 769 第23章 【Qt 6+Python/MySQL 8开发实例】—网上商城商品销售数据分析 771 23.1 开发环境准备 772 23.1.1 安装Qt 772 23.1.2 安装Python 776 23.1.3 安装扩展库 781 23.1.4 数据准备 783 23.2 开发过程 784 23.2.1 用Qt设计界面 784 23.2.2 UI文件转为Py 789 23.2.3 Python程序框架 790 23.2.4 功能实现 791 附录A 网上商城数据库 795
http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=TP416370