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版)》,任选一本即可。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.mzph.cn/news/799217.shtml

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

相关文章

蚁剑修改特征性信息

前言 我们首先得知道蚁剑的流量特征: 编码器和解码器的特征:蚁剑自带的编码器和解码器具有明显的特点,可以通过更改配置文件来达到流量加密的目的1。例如,蚁剑支持多种编码方式,如base64、chr、rot13等,这…

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之②:数据治理之二(自动处理)

前述 在前文的multi Agents for Data Analysis的设计说起,本文将继续探索和测试借助llm实现基于私有知识库的数据治理全自动化及智能化。整体设计如下: 整个体系设计了3个Agent以及一个Planer&Execute Agent,第一个Agent用于从企业数据…

【Linux系列】“dev-node1“ 运行的操作系统分析

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Vue3与TypeScript中动态加载图片资源的解决之道

在前端开发中,Vue.js已成为一个备受欢迎的框架,尤其是在构建单页面应用时。Vue3的发布更是带来了许多性能优化和新特性,而TypeScript的加入则进一步提升了代码的可维护性和健壮性。然而,在实际的项目开发中,我们有时会…

牛客NC93 设计LRU缓存结构【hard 链表,Map Java】

题目 题目链接: https://www.nowcoder.com/practice/5dfded165916435d9defb053c63f1e84 思路 双向链表map最新的数据放头结点,尾节点放最老的数据,没次移除尾巴节点本地考察链表的新增,删除,移动节点参考答案Java im…

第六篇: 3.5 性能效果 (Performance)- IAB/MRC及《增强现实广告效果测量指南1.0》

​​​​​​​ 翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇 广告效果测量定义和其他矩阵之- 3.1 广告印象(AD Impression)第三篇 广告效果测量定义和其他矩阵之- 3.2 可见性 (Viewability…

正确使用@Autowired

目录 一、前言二、跟着官方文档,学习正确使用Autowired0、实验环境1、通过构造方法进行注入1.1 问题1:那万一没有这个CustomerPreferenceDao对象,会报错吗? 2、通过setter方法注入3、通过方法注入(这个方法可以是任意名…

【Android】apk安装报错:包含病毒: a.gray.BulimiaTGen.f

​ 有时候apk安装或者更新时,显示:[高风险]包含病毒: a.gray.BulimiaTGen.f这种bug; 原因:这是手机管家误报病毒。 处理方法:我看网上其他资料可以进行申诉,也可以进行apk加固,我这边尝试用360…

无参数绕过RCE

一.什么是无参数 顾名思义,就是只使用函数,且函数不能带有参数,这里有种种限制:比如我们选择的函数必须能接受其括号内函数的返回值;使用的函数规定必须参数为空或者为一个参数等 无参数题目特征 if(; preg_replace…

基于小程序+ssm实现的悬赏信息发布系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:ssm 【…

2024年妈妈杯数学建模MathorCup数学建模思路B题思路解析+参考成品

1 赛题思路 (赛题出来以后第一时间在群内分享,点击下方群名片即可加群) 2 比赛日期和时间 报名截止时间:2024年4月11日(周四)12:00 比赛开始时间:2024年4月12日(周五)8:00 比赛结束时间&…

数字人解决方案——Champ单个视频单张图像生成可控且一致的人体视频生成

概述 Champ是阿里巴巴集团、南京大学和复旦大学的研究团队共同提出了一种创新的人体动画生成技术,Champ能够在仅有一段原始视频和一张静态图片的情况下,激活图片中的人物,使其按照视频中的动作进行动态表现,极大地促进了虚拟主播…

【Emgu CV教程】10.12、Moments()函数计算轮廓矩和质心

文章目录 一、概念介绍1.矩2.矩能干什么3.矩函数 二、演示1.原始素材2.代码3.运行结果 一、概念介绍 1.矩 矩,英文叫moment,是一个数学中的概念,以下的解释来自百度百科: 是不是看不懂,没关系,数学基础不…

mysqldump: Got error: 1049: Unknown database ‘root‘ when selecting the datab

1.问题描述 MySQL版本号:MySQL Server 8.3MySQL持久化到处数据库结构及数据 mysqldump: Got error: 1049: Unknown database root when selecting the datab2.问题解决 cmd 切换本地路径 cd /d D:\Program Files\MySQL\MySQL Server 8.3\bin执行数据库备份命令 …

Java智慧校园系统源码 微信小程序+电子班牌

Java智慧校园系统源码 微信小程序电子班牌 通过设备管理对百纳智慧校园的智慧班牌以及百纳智慧屏(校牌)进行统一集中式管理,支持浏览所有设备的基本信息以及在离线状态,支持添加设备、设备一键开关机、一键重启、设置节假日开关机…

Java单链表和LinkedList的实现

一、单链表的实现 无头单向非循环链表 定义异常用于判断所给位置是否合法 public class IndexNotLegal extends RuntimeException{public IndexNotLegal(){}public IndexNotLegal(String smg){super(smg);} } class ListNode中包含当前节点的值和下一个节点指向 实现链表的…

nginx支持的多种负载均衡策略

目录 1.轮询(默认) 2. ip_hash 3. 加权轮询(weight) 4. fair(第三方) 5. 最少连接(least_conn) 1.轮询(默认) 将请求依次分配给每个服务器,确…

SpringCloud Alibaba Sentinel 实现熔断功能

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第十六篇,即使用 Sentinel 实现熔断功能。 二、 Ribbon 系列 首先我们新建两个服务的提供者…

[StartingPoint][Tier1]Pennyworth

Important Jenkins是一个用于自动化构建、测试和部署软件项目的开源持续集成和持续部署(CI/CD)工具。它允许开发团队自动执行和监控在软件开发过程中的重复性任务,例如构建代码、运行测试、部署应用程序等。Jenkins提供了一个易于使用的Web界…

基于R语言BIOMOD2模型的物种分布模拟

随着生物多样性全球大会的举办,不论是管理机构及科研单位、高校都在积极准备,根据国家林草局最新工作指示,我国将积极整合、优化自然保护地,加快推进国家公园体制试点,构建以国家公园为主体的自然保护地体系。针对我国…