MySQL学习路线一条龙

news2024/11/28 4:28:41

引言

在当前的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版)》,任选一本即可。SQL必知必会

SQL基础教程

视频

如果不喜欢看书的同学,推荐一门课程《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

image.png

第二阶段:入门 MySQL

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

书籍推荐

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

视频教程推荐

视频的话,可以在B 站上搜 MySQL 关键字,基本上各大培训机构都有公开的视频课,课程质量也不错。随便挑一个自己喜欢的跟着学就对了。
声控的朋友们注意啦!给你们推荐一个宝贝——尚硅谷宋红康老师的《MySQL数据库教程天花板》!
这视频啊,简直是从mysql安装一路飙升到高级操作,干货满满!内容嘛,啥都有,数据库概述啦、SQL查询大法啦、DDL、DML、DCL各种操作技巧啦,还有视图、存储过程、函数、变量、流程控制、游标、触发器这些高级货色,一应俱全!
听过的同学都说啊,宋老师那声音,简直是耳朵里的甜点,听起来就让人想学个没完!内容讲解得也特好消化,就像是吃了一块软软的棉花糖,一点不费劲儿就吸收了。
所以啊,声控的同学们,赶紧来听听吧,保证让你们欲罢不能,学得停不下来!
视频地址:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】
image.png
如果你最近想要面试、或者是出入职场的新人,想要突击一下MySQL,推荐《老杜带你学_mysql入门基础》,据说 3 天就能学完,一共 151 集。
也有同学对课程进行了总结提炼,这里也贴一下博客地址:

博客地址:https://blog.csdn.net/weixin_43896929/article/details/120750965open in new window
视频地址:https://www.bilibili.com/video/BV1Vy4y1z7EX

image.png

MySQL学习建议

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

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

mysql下载页面.PNG
安装完成后,记得安装可视化工具:Navicat,方便操作。
image.png
Windows版破解方法,可以看下我的这篇文章

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

破解方法请勿外传,保密就对了
接下里就是需要我们亲自上手实践一遍基本的SQL语句练一练。

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

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

数据操作语言(DOL)

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

数据控制语言(DCL)

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

事务控制

  • 开始事务
START TRANSACTION;
  • 提交事务
COMMIT;
  • 回滚事务
ROLLBACK;

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

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

image.png
基础语法学习完之后,下一步就可以到牛客网或者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)阅读,也适合系统运维和开发人员参考学习。不管你是数据库新手还是专家,相信都能从本书中有所收获。

image.png

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进阶
image.png
image.png

image.png

MySQL官方文档

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

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

学习,确实可以带有功利性的色彩,毕竟我们身处现实社会,追求更好的职业发展和高薪无可厚非。
当然,也有许多人因为纯粹的热爱而沉浸在知识的海洋中。
但话说回来,若不是为了追求更好的职业发展、更高的薪资,我们又何必费尽心思去学习那么多的知识和技能呢?
那既然学了 MySQL,就要检验学习成果,怎么检验呢?
对于即将面临面试的同学来说,不妨花些时间深入研究一下《面渣逆袭 MySQL 篇》这样的面试指南,通过反复练习和模拟面试,不断提升自己的面试技巧和应对能力。
这样,在真正的面试中,你就能与面试官进行一场精彩的对决,展现出你对 MySQL 的深入理解和熟练掌握,从而为自己争取到更好的工作机会和待遇。
image.png
准备升职加薪/跳槽的同学,那就一定要在实际的工作当中加以运用,不然很可能学完一段时间就忘记了。

说在最后

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1577031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字人直播系统是什么?AI数字人直播间搭建方法来了!

无人直播的时代,短视频和直播平台正在风口,各条赛道内也早已人满为患,很多线下商家都想参与其中,因为时间、地方、设备等限制久久不能去实行起来。所以,数字人直播新模式成为了线下商家的救星,线下商家方法…

unity_Button:单击的三种实现方式

此代码直接绑定到button上面无需其他操作 using UnityEngine; using UnityEngine.UI;public class PrintHelloOnButtonClick : MonoBehaviour {private Button button;void Start(){// 获取当前GameObject上的Button组件button GetComponent<Button>();// 添加点击事件…

探索基于WebRTC的有感录屏技术开发流程

title: 探索基于WebRTC的有感录屏技术开发流程 date: 2024/4/7 18:21:56 updated: 2024/4/7 18:21:56 tags: WebRTC录屏技术屏幕捕获有感录屏MediaStream实时传输音频录制 第一章&#xff1a;技术原理 WebRTC&#xff08;Web Real-Time Communication&#xff09;是一种开放源…

什么是FIG图片格式?如何把jpg图片转FIG格式?

一&#xff0c;什么是FIG图片格式 FIG图片格式&#xff0c;全称为Figma Image Format&#xff0c;是一种由Figma设计软件专用的图像格式。Figma是一款强大的在线协作设计工具&#xff0c;广泛应用于UI/UX设计、产品设计和图标设计等领域。 二&#xff0c;FIG图片格式的优点 …

Prometheus服务发现与监控案例-Day 02

1. 服务发现简介 prometheus采用pull方式拉取指定目标实例的监控数据&#xff0c;也就是间隔固定的周期去目标实例上抓取metrics数据&#xff0c;每一个被抓取的目标实例都需要暴露一个数据指标API接口&#xff0c;prometheus通过这个暴露的接口就可以获取到其指标数据. 这种方…

MySQL基础练习题:习题2-3

这部分主要是为了帮助大家回忆回忆MySQL的基本语法&#xff0c;数据库来自于MySQL的官方简化版&#xff0c;题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。上期帮助大家建立数据库&#xff0c;导入数据&#xff0c;接下来让我们继续练习。 …

51单片机入门_江协科技_17~18_OB记录的笔记

17. 定时器 17.1. 定时器介绍&#xff1a;51单片机的定时器属于单片机的内部资源&#xff0c;其电路的连接和运转均在单片机内部完成&#xff0c;无需占用CPU外围IO接口&#xff1b; 定时器作用&#xff1a; &#xff08;1&#xff09;用于计时系统&#xff0c;可实现软件计时&…

【LeetCode热题100】74. 搜索二维矩阵(二分)

一.题目要求 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;…

GD32F470_US-016 模拟电压输出 双量程 模拟量 超声波测距模块 高精度

2.18 US-016电压式超声波测距传感器 US-016是市场上唯有的一款模拟量输出的超声波测距模块&#xff0c;输出的模拟电压和距离值成正比&#xff0c;可以方便的和其他系统相连&#xff0c;US-016工作稳定可靠。 US-016超声波测距模块可实现2cm~3m的非接触测距功能&#xff0c;供…

Android 9.0 framework层实现app默认全屏显示

1.前言 在9.0的系统rom产品定制化开发中,在对于第三方app全屏显示的功能需求开发中,需要默认app全屏显示,针对这一个要求,就需要在系统启动app 的过程中,在绘制app阶段就设置全屏属性,接下来就实现这个功能 效果图如下: 2.framework层实现app默认全屏显示的核心类 fram…

红黑树深度解析:RB-DELETE操作的理论与实践

红黑树深度解析&#xff1a;RB-DELETE操作的理论与实践 一、前言二、红黑树的核心性质三、RB-DELETE的过程四、RB-DELETE的实现细节五、RB-DELETE的复杂性分析六、维护红黑树性质的重要性七、代码示例7.1 伪代码7.2 C代码示例 八、结论 一、前言 在现代计算机科学中&#xff0…

备忘,LangChain建立本地知识库的几个要点

本地知识库可以解决本地资源与AI结合的问题&#xff0c;为下一步应用管理已有资产奠定基础。 本地知识库的建立可参考LangChain结合通义千问的自建知识库 &#xff08;二&#xff09;、&#xff08;三&#xff09;、&#xff08;四&#xff09; 本文主要记录两个方面的问题 1 搭…

抖音引流私域转化模式1.0现场视频,从抖音源源不断把人加到私域买单

抖音-引流私域转化模式1.0现场视频&#xff0c;从抖音源源不断把人加到私域&#xff0c;让加到私域的粉丝买单 课程内容&#xff1a;抖音引流私域转化模式1.0现场视频&#xff0c;从抖音源源不断把人加到私域买单 - 百创网-源码交易平台_网站源码_商城源码_小程序源码 01.第一…

武汉星起航:运营经验打造行业标杆,形成可持续稳健业务增长路径

在跨境电商的浪潮中&#xff0c;武汉星起航电子商务有限公司以其专注于提供一站式解决方案而在行业内崭露头角&#xff0c;成为创业者成功进入市场的得力伙伴。公司不仅仅是服务提供商&#xff0c;更是创业者的导航者&#xff0c;通过全方位的支持和专业指导&#xff0c;致力于…

javaWeb影视创作论坛的设计与实现

摘要 随着时代的发展&#xff0c;互联网的出现&#xff0c;给传统影视行业带来的最大便利就是&#xff0c;方便了影视从业人员以及爱好者的交流和互动&#xff0c;而为用户提供一个书写影评&#xff0c;阅读影评以及回复影评的平台&#xff0c;以影评为载体来使用户感受影评、…

android-自定义TextView在文字内容末尾添加图片icon、可以添加间距

样式示意图 自定义属性 style.xml <declare-styleable name"IconLabelTextView"><attr name"iconSrc" format"reference"/><attr name"iconPaddingStart" format"dimension"/><attr name"iconPad…

小红不想做模拟题 线段树

无脑线段树 #include<iostream> using namespace std; const int N 1e510; int a[N],b[N];struct Segment{int l,r;int s,s1,s2;int lz1,lz2; }tr[N<<2];void pushdown(int u){if(tr[u].lz1){tr[u<<1].lz1 tr[u<<1|1].lz1 1;tr[u].lz1 0;tr[u<&…

2024/4/1—力扣—两数相除

代码实现&#xff1a; 思路&#xff1a;用减法模拟除法 // 用减法模拟除法 int func(int a, int b) { // a、b均为负数int ans 0;while (a < b) { // a的绝对值大于等于b&#xff0c;表示此时a够减int t b;int count 1; // 用来计数被减的次数// t > INT_MIN / 2:防止…

ArcGISPro 如何升级某项Python库且不影响其运行

升级包scipy 可以看出scipy当前版本是1.6.2 利用不依赖包升级 pip install --upgrade scipy --no-deps 结果 但是显示还是之前的版本

使用高德微信小程序插件实现精准获取打卡位置

由于微信小程序的 getFuzzyLocation 误差太大 不得不改用高德微信sdk 使用方法&#xff1a; 一、下载 sdk 相关下载-微信小程序插件 | 高德地图API 二、引入 sdk //引入 var amapFile require(../../libs/amap-wx.js); Page({onLoad: function() {var that this;va…