MySQL学习路线一条龙

引言

在当前的IT行业,无论是校园招聘还是社会招聘,MySQL的重要性不言而喻。

面试过程中,MySQL相关的问题经常出现,这不仅因为它是最流行的关系型数据库之一,而且在日常的软件开发中,MySQL的应用广泛,尤其是对于Java后端开发者来说,熟练掌握MySQL已成为他们技术能力评估的重要指标。

因此,MySQL被业内专家俗称为"Java后端开发的四大件"之一,与Spring框架、MyBatis持久层框架、以及版本控制系统(git、svn等)并肩而立,共同构成了Java后端开发的核心技能集。

正文

第一阶段:SQL

学习 MySQL 之前,先学一手 SQL,对后面学习 MySQL 也会有非常大的帮助。

学习任何知识,基础都是最重要的

不管是MySQL还是SQL Server、Oracle都是关系型数据库,关系型数据的查询语言都是结构化(SQL)语言

所以先学习SQL,对后面不管是学习MySQL、SQL Server、Oracle都大有帮助。

书籍推荐

书的话,有两本,一本是《SQL 必知必会》,一本是《SQL基础教程(第2版)》,任选一本即可。

视频

如果不喜欢看书的同学,推荐一门课程《10小时零基础成长SQL大师》,虽然是国外的课程,但因为其画面精美,对初学者特别有吸引力。

这个课程不仅教授SQL的基础知识,而且通过高质量的视觉呈现帮助学习者构建良好的SQL编写思维和逻辑能力。

对于那些初次接触SQL的学习者来说,这个课程可以作为一个极佳的起点。

如果在学习过程中遇到难以理解的部分,多次观看同一章节可以帮助加深理解和掌握。

这种学习方法不仅提升了学习的兴趣,还能够加强记忆,确保学习者能够有效地吸收和应用所学的知识。

这个视频虽然只需要 10 小时,但讲的内容还是非常全面的,包括 select、where、and、in、like、order by、limit、inner join、self join、outer join、union、insert、update、delete、group by等等。

视频地址:https://www.bilibili.com/video/BV1UE41147KC

第二阶段:入门 MySQL

SQL 学完,再学 MySQL 就会更加丝滑,学习曲线会平滑一些。

书籍推荐

书籍的话,推荐《MySQL 是怎样使用的、快速入门》、《MySQL 必知必会》,任选一本就可以。

视频教程推荐

视频的话,可以在B 站上搜 MySQL 关键字,基本上各大培训机构都有公开的视频课,课程质量也不错。随便挑一个自己喜欢的跟着学就对了。

声控的朋友们注意啦!给你们推荐一个宝贝------尚硅谷宋红康老师的《MySQL数据库教程天花板》!

这视频啊,简直是从mysql安装一路飙升到高级操作,干货满满!内容嘛,啥都有,数据库概述啦、SQL查询大法啦、DDL、DML、DCL各种操作技巧啦,还有视图、存储过程、函数、变量、流程控制、游标、触发器这些高级货色,一应俱全!

听过的同学都说啊,宋老师那声音,简直是耳朵里的甜点,听起来就让人想学个没完!内容讲解得也特好消化,就像是吃了一块软软的棉花糖,一点不费劲儿就吸收了。

所以啊,声控的同学们,赶紧来听听吧,保证让你们欲罢不能,学得停不下来!

视频地址:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】

如果你最近想要面试、或者是出入职场的新人,想要突击一下MySQL,推荐《老杜带你学_mysql入门基础 》,据说 3 天就能学完,一共 151 集。

也有同学对课程进行了总结提炼,这里也贴一下博客地址:

博客地址:https://blog.csdn.net/weixin_43896929/article/details/120750965open in new window

视频地址:https://www.bilibili.com/video/BV1Vy4y1z7EX

MySQL学习建议

务必在您的计算机上预先安装 MySQL 数据库,可以直接从 MySQL 的官方网站进行下载,推荐使用 MySQL 5.7 或更高版本。

https://dev.mysql.com/downloads/mysql/

安装完成后,记得安装可视化工具:Navicat ,方便操作。

Windows版破解方法,可以看下我的这篇文章

https://cxykk.com/?p=3844

破解方法请勿外传,保密就对了

接下里就是需要我们亲自上手实践一遍基本的SQL语句练一练。

实践是学习一个新知识最快的方式

数据定义语言(DDL)
  • 创建数据库
sql 复制代码
CREATE DATABASE database_name;
  • 删除数据库
sql 复制代码
DROP DATABASE database_name;
  • 创建表
sql 复制代码
CREATE TABLE table_name (
  column1 datatype constraint,
  column2 datatype constraint,
  ...
);
  • 删除表
sql 复制代码
DROP TABLE table_name;
  • 修改表
    • 添加列
    • 删除列
    • 修改列
sql 复制代码
ALTER TABLE table_name ADD column_name datatype;
sql 复制代码
ALTER TABLE table_name DROP COLUMN column_name;
sql 复制代码
ALTER TABLE table_name MODIFY COLUMN column_name datatype;

数据操作语言(DOL)

  • 插入数据
sql 复制代码
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
  • 更新数据
sql 复制代码
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
  • 删除数据
sql 复制代码
DELETE FROM table_name WHERE condition;
  • 查询数据
sql 复制代码
SELECT column1, column2, ... FROM table_name WHERE condition;

数据控制语言(DCL)

  • 授权
sql 复制代码
GRANT privilege_type ON database.table TO 'username'@'host';
  • 撤销权限
sql 复制代码
REVOKE privilege_type ON database.table FROM 'username'@'host';

事务控制

  • 开始事务
sql 复制代码
START TRANSACTION;
  • 提交事务
sql 复制代码
COMMIT;
  • 回滚事务
sql 复制代码
ROLLBACK;

这只是MySQL基础语法的一个简单概述。

实际应用中,还包括了索引创建、视图、存储过程、触发器等高级功能,以及各种数据类型和约束的使用,都是学习MySQL的重要部分,大家可以自己尝试下。

推荐一个MySQL实战教程给大家:【MySQL教程】https://cxykk.com/?cat=50

基础语法学习完之后,下一步就可以到牛客网或者leetcode上把SQL相关的练习题刷一波

https://www.nowcoder.com/ta/sql

如果你干的是测试、搞业务、数据分析这一块,或者还在实习,学到这程度差不多够用了

但如果你是搞Java后端开发的,或者是数据库管理员,那你得往更深的进阶层面学习了。

第三阶段:进阶MySQL

面试造火箭,工作拧螺丝,虽然日常开发中,大部分人也就写写 SQL 就行了,但不好意思,面试中(或者你想成为 MySQL 方面的专家)99% 的情况下,还是会被问到原理的,比如说索引、锁、日志、引擎等。
举一些例子:

1、一条 SQL 是如何执行的?也就是说,从MySQL 客户端执行了一条 SQL 语句,MySQL 服务端会进行哪些处理。

2、索引相关:索引是如何实现的?MySQL 的索引采用的哪种数据结构?哈希索引和 B+ 树索引的区别是什么?

3、事务相关:事务的四大特性是什么?什么是幻读、脏读、不可重复读?、MVCC 了解吗?怎么实现的?

4、锁相关:表锁、行锁、意向锁、乐观锁、死锁,这些锁主要是用来解决什么问题的?

5、日志相关:MySQL 日志文件有哪些?binlog 和 redo log 有什么区别?redo log 是怎么刷入磁盘的呢?

6、高可用/性能相关:数据库读写分离了解吗?读写分离是如何实现的?主从复制的原理了解吗?分库分表了解吗?

7、SQL 优化相关:慢 SQL 如何定位?如何优化慢 SQL?

进阶书籍推荐

书籍方面,推荐3本书给大家,足够大家完成MySQL进阶教程的学习。

1、《高性能MySQL》

《高性能 MySQL》一直是 MySQL 领域的经典之作,影响了一代又一代的 DBA 和技术人员,从第3 版出版到第 4 版出版过去了近十年,MySQL 也从 5.5 版本更新到了 8.0 版本。第 4 版中增加了大量对 MySQL 5.7 和 8.0 版本新特性的介绍,删除了一些在新版本中已经废弃或者不再常用的功能,还增加了对云数据库的介绍,减少了在官方文档中已有的基础使用和配置相关的内容。

《高性能MySQL(第4版)》适合数据库管理员(DBA)阅读,也适合系统运维和开发人员参考学习。不管你是数据库新手还是专家,相信都能从本书中有所收获。

2、《MySQL 是怎样运行的:从跟上理解 MySQL》

《MySQL是怎样运行的:从根儿上理解 MySQL》采用诙谐幽默的表达方式,对MySQL的底层运行原理进行了介绍,内容涵盖了使用MySQL的同学在求职面试和工作中常见的一些核心概念,所以非常适合一些正在求职面试的同学学习。

这本书的的评价也非常高,全书分为四个部分:

第一部分(1-3 章),主要就是普及 MySQL;

第二部分(4-9 章)是全书的基础,介绍了 InnoDB、索引、B+树;

第三部分(10-17 章)主要介绍了工作中常用到的查询优化,比如说单表查询是如何执行的,连接查询是如何执行的,以及如何查看 explain 语句的执行结果;

第四部分(18-22 章)介绍了事务、redo 日志、MVCC、各种锁的细节。

3、《MySQL技术内幕:InnoDB存储引擎》

《MySQL技术内幕:InnoDB存储引擎(第2版)》由国内资深MySQL专家亲自执笔,国内外多位数据库专家联袂推荐。作为国内唯一一本关于InnoDB的专著,《MySQL技术内幕:InnoDB存储引擎(第2版)》的第1版广受好评,第2版不仅针对最新的MySQL 5.6对相关内容进行了全面的补充,还根据广大读者的反馈意见对第1版中存在的不足进行了完善,《MySQL技术内幕:InnoDB存储引擎(第2版)》大约重写了50%的内容。

《MySQL技术内幕:InnoDB存储引擎(第2版)》从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,能帮助你系统而深入地掌握InnoDB,更重要的是,它能为你设计管理高性能、高可用的数据库系统提供绝佳的指导,所以强烈推荐阅读,可以很好的提升架构思维。

进阶专栏课程推荐

我的程序员编程资料站上也搜集了很多MySQL进阶实战教程,都是精心搜集的实战教程,非常详细,不喜欢看书的同学可以看看。

一共分为两个部分,分别为MySQL基础、MySQL进阶

MySQL官方文档

英文能力比较强的球友,可以试读一下MySQL 的官方文档

第四阶段:面试突击/实战应用

学习,确实可以带有功利性的色彩,毕竟我们身处现实社会,追求更好的职业发展和高薪无可厚非。

当然,也有许多人因为纯粹的热爱而沉浸在知识的海洋中。

但话说回来,若不是为了追求更好的职业发展、更高的薪资,我们又何必费尽心思去学习那么多的知识和技能呢?

那既然学了 MySQL,就要检验学习成果,怎么检验呢?

对于即将面临面试的同学来说,不妨花些时间深入研究一下《面渣逆袭 MySQL 篇》这样的面试指南,通过反复练习和模拟面试,不断提升自己的面试技巧和应对能力。

这样,在真正的面试中,你就能与面试官进行一场精彩的对决,展现出你对 MySQL 的深入理解和熟练掌握,从而为自己争取到更好的工作机会和待遇。

准备升职加薪/跳槽的同学,那就一定要在实际的工作当中加以运用,不然很可能学完一段时间就忘记了。

说在最后

学习毫无疑问的肯定是辛苦的,但是没有伞的孩子只能全力奔跑,你吃不了的苦,总有别人能吃,你背不下来的面试题,总有人能背下来,所以加油吧,少年,当你没有依靠的时候,你只能靠自己。

相关推荐
VertexGeek2 分钟前
Rust学习(八):异常处理和宏编程:
学习·算法·rust
Yz987615 分钟前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
武子康21 分钟前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
黑色叉腰丶大魔王26 分钟前
《MySQL 数据库备份与恢复》
mysql
苏-言27 分钟前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
Ljw...33 分钟前
索引(MySQL)
数据库·mysql·索引
二进制_博客38 分钟前
Flink学习连载文章4-flink中的各种转换操作
大数据·学习·flink
菠萝咕噜肉i1 小时前
超详细:Redis分布式锁
数据库·redis·分布式·缓存·分布式锁
长风清留扬1 小时前
一篇文章了解何为 “大数据治理“ 理论与实践
大数据·数据库·面试·数据治理
codebolt1 小时前
ADS学习记录
学习