你好,我是朱晓峰。

工作二十多年来,我一直在和 MySQL 打交道。我曾任摩根大通银行技术部副总裁,带领团队为纽约、东京等分支银行提供数据存储和安全服务。目前,正致力于开发基于 MySQL 的管理信息系统,率领团队为包括国家开发银行、百度在线、北京西站等大型企业在内的客户提供了信息服务,并获得了 11 项软件著作权(比如商业数据管理系统、云 POS 系统等)。

因为具备丰富的 MySQL 开发经验,从 2015 年起,我受聘担任数据应用学院客座讲师,开始制作职业技术培训课程。我和团队开发了一个为期 2 周、30 个课时的 MySQL 入门集训课。我们打破了传统的教学模式,不去讲零碎的知识点,而是借助一个实际项目去讲必备技能,帮助数百名初学者迅速掌握了 MySQL 的基本操作和核心技能。经过 2 周的集中培训,有几十位学生顺利进入谷歌、苹果和亚马逊等公司。

多年的项目开发以及培训经历,让我深刻地认识到,熟练使用 MySQL,对技术人来说变得越来越重要,是我们拿到心仪 Offer 的敲门砖。

要知道,MySQL 的入门门槛非常低,还具有免费、开放源码等优势,可以满足我们的多样化需求,是目前被广泛使用的数据库之一。

看到这里,你可能会问:“我知道学习 MySQL 很重要,也花了很多时间去学习,可是学来学去,还是连最简单的实际问题都无法解决,该怎么办呢?”

别着急,接下来我们就来聊聊高效的 MySQL 学习方法。

为什么学了很多知识,你依然不会用 MySQL 解决实际问题?

很多人刚开始学习 MySQL 时,都会面临一系列问题。

  1. 市面上的 MySQL 资料这么多,该怎么挑选呢?
  2. 我花了很多时间学习 MysQL,但是最后真的遇到问题时,我发现我根本不知道怎么解决。
  3. 我会一些基本的操作,但还是很容易踩到坑里。比如,我曾经把字段设置成浮点数,但我不知道它是不精准的,幸亏领导发现了,不然很可能会给项目带来损失。
  4. 我储备了不少面试题,为什么一到面试就卡壳呢?
  5. ……

其实,这些问题,本质上都是一个原因导致的:传统的资料都是在讲授一个个零碎的知识点,最多给出一些基础的小练习,让你进行一些简单的训练。所以,很多人花了很多时间去学习,好像懂得了很多东西,但是一遇到真实的项目问题,就会一头雾水,不知道如何用所学的知识去解决实际问题,更没有能力给出完整的解决方案。

我做过项目主管,也长期带团队,深知在工作中,最重要的绝对不是你的知识储备量,而是你解决实际问题的能力。但不幸的是,我见过太多面试时表现优异的人,最终却连试用期都过不了。

说到这里,我特别想和你分享一下我曾面试过的一个应届生的故事。

他是一名计算机专业的研究生,讲起 MySQL 数据库的相关知识,他说得非常清楚,也很有条理,所以我对他的期望值特别高。但是,等他真正上手做项目时,我才发现,他的知识都停留在理论层面。

举个小例子,一次,我们需要开发一个餐厅的点餐系统,我就请他做数据库设计。没想到他设计出来的订单表,居然没有包含客户编号,这就导致无法通过关联查询获取客户信息。这样的数据库根本不满足业务的需求,自然是不能用的。

这并不是个例,很多人在谈到某些知识时可以出口成章,但是一遇到真实的商业环境,就会毫无头绪,或者是犯这样那样的错误。

在我看来,正确的学习方法,远比你投入的时间更重要。而实战,就是最高效的方法。

为此,我特意选择了一个连锁超市的实战项目,手把手带你从 0 到 1 走完项目全流程,不仅帮你掌握核心操作,还能让你真正拥有实战能力,能够迅速上手任何一个项目。无论你是刚刚走入职场,想要迅速解锁 MySQL 这项技能,还是对它感兴趣,想要转岗到 MySQL 开发,都可以在这个课程中达到你理想的目标。

之所以选择采用连锁超市的项目,有两个原因。

  1. 你对超市这个场景足够熟悉。我们都有去超市购物的经历,会看到货架上摆着玲琅满目的商品,各种各样的促销招牌,还有忙着扫码收银的店员……借助熟悉的场景来讲解,可以最大程度减轻你的理解成本。
  2. 超市背后的业务环节非常复杂,产生的数据也多种多样,而 MySQL 是处理这类业务的利器。当我们完整地解决了超市项目中所遇见的复杂数据问题时,你再去做其他任何业务,就可以更游刃有余一些。

总之,我会从实际问题出发,带你学习技术点,让你能举一反三,快速应用在实战项目中。如果用一个公式去概括,就是:项目的实际需求 –> 解决问题所需的知识点 –> 用好这些知识的实战经验

举个例子,超市的商品非常多,这些商品的名称、数量等,必须要被准确地存储、及时地更新,才能保证正常地售卖。这就是真实需求。要解决这个问题,就要用到 MySQL 的数据存储功能,我们就要掌握设计数据表、定义字段等知识,确保数据的存储效率最高以及数据的唯一性,同时减少错误。

不只是数据存储,我会带着你解决连锁超市所面临的一系列实际问题,从商品进货到库存查验,再到店面售卖、会员营销,等等。在这个过程中,我会给你讲解 MySQL 是怎样存储数据的、如何才能高效查询、如何提供经营决策的依据、如何确保数据的可靠性和安全性……

即使你没有数据库的知识基础,也完全不用担心,只要你跟着我的思路,就一定能真正地在短时间内入门 MySQL,拥有解决问题的能力。

这门课是怎么设计的?

说了这么多,课程的具体设计是怎样的呢?我来介绍一下。

课程总共有四个核心模块。

  1. 实践篇:我会从项目最基本的数据存储和操作开始讲起,包括创建数据库、数据表、对表中的数据进行增删改查操作、使用函数、表与表之间的关联操作等,帮你快速掌握最基本的用法。
  2. 进阶篇:随着用户管理水平的不断提升,对系统的要求也越来越多,越来越复杂,会用到 MySQL 的许多高级功能。我会手把手带你实现这些功能,包括把程序存储在服务器上、利用突发事件来调用程序、在不改变存储结构的前提下创建虚拟表以方便查询,等等。
  3. 优化篇:项目投入运营以后,随着数据的积累,性能优化的问题逐步凸显。在这个模块呢,我会给你讲一讲数据库的设计规范,还会带你创建数据模型,帮助你来理清设计思路。同时,我还会讲到提升性能的具体方法。
  4. 案例篇:在课程的最后,我会手把手带你从 0 到 1 设计一个连锁超市的信息系统数据库,把前面讲到的知识点都融入到项目设计中,不仅帮你巩固所学的知识,更教会你如何灵活使用。

除此之外,在课程正式开始之前,我会用图片 + 音频 + 视频的形式,带着你安装 MySQL 及必备的图形化管理工具 Workbench。同时,我还特意设置了一个特别放送模块,给你讲解 MySQL 8.0 的新特性、空间定位的方法,以及大厂的高频面试题,帮你轻松拿下面试。

最后,我还想说,MySQL 是一个非常优秀的数据库,里面包含了很多经典的设计思想。虽然现在你不需要掌握得这么深,但是我还是建议你多多体会这些思想,这会让你提前建立起大局观,还可以帮助你从更高的层面去看待所遇见的实际问题。

在这门课程里,我会把我这么多年的经验毫无保留地分享给你,欢迎你来学习这门课,也欢迎你把咱们的课程分享给你的朋友或同事,邀请他们和你一起学习,共同成长。