MySQL學習路線一條龍

来源:https://www.cnblogs.com/jiang-xiao-bei/p/18121053
-Advertisement-
Play Games

引言 在當前的IT行業,無論是校園招聘還是社會招聘,MySQL的重要性不言而喻。 面試過程中,MySQL相關的問題經常出現,這不僅因為它是最流行的關係型資料庫之一,而且在日常的軟體開發中,MySQL的應用廣泛,尤其是對於Java後端開發者來說,熟練掌握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基礎教程

視頻

如果不喜歡看書的同學,推薦一門課程《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 必知必會》,任選一本就可以。
 
 

視頻教程推薦

視頻的話,可以在B 站上搜 MySQL 關鍵字,基本上各大培訓機構都有公開的視頻課,課程質量也不錯。隨便挑一個自己喜歡的跟著學就對了。

聲控的朋友們註意啦!給你們推薦一個寶貝——尚矽谷宋紅康老師的《MySQL資料庫教程天花板》!這視頻啊,簡直是從mysql安裝一路飆升到高級操作,乾貨滿滿!內容嘛,啥都有,資料庫概述啦、SQL查詢大法啦、DDL、DML、DCL各種操作技巧啦,還有視圖、存儲過程、函數、變數、流程式控制制、游標、觸發器這些高級貨色,一應俱全!聽過的同學都說啊,宋老師那聲音,簡直是耳朵里的甜點,聽起來就讓人想學個沒完!內容講解得也特好消化,就像是吃了一塊軟軟的棉花糖,一點不費勁兒就吸收了。

所以啊,聲控的同學們,趕緊來聽聽吧,保證讓你們欲罷不能,學得停不下來!

視頻地址:https://www.bilibili.com/video/BV1iq4y1u7vj/

 

如果你最近想要面試、或者是出入職場的新人,想要突擊一下MySQL,推薦《老杜帶你學_mysql入門基礎》,據說 3 天就能學完,一共 151 集。也有同學對課程進行了總結提煉,這裡也貼一下博客地址:

博客:https://blog.csdn.net/weixin_43896929/article/details/120750965

視頻: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)

  • 創建資料庫
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

 

基礎語法學習完之後,下一步就可以到牛客網或者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和redolog有什麼區別?redolog是怎麼刷入磁碟的呢?;

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,更重要的是,它能為你設計管理高性能、高可用的資料庫系統提供絕佳的指導,所以強烈推薦閱讀,可以很好的提升架構思維。 

進階專欄課程推薦

我的程式員編程資料站【cxykk.com】上也搜集了很多MySQL進階實戰教程,都是精心搜集的實戰教程,非常詳細,不喜歡看書的同學可以看看。一共分為兩個部分,分別為MySQL基礎、MySQL進階  

 

MySQL官方文檔

英文能力比較強的球友,推薦可以試讀一下MySQL 的官方文檔。 

第四階段:面試突擊/實戰應用

學習,確實可以帶有功利性的色彩,畢竟我們身處現實社會,追求更好的職業發展和高薪無可厚非。

當然,也有許多人因為純粹的熱愛而沉浸在知識的海洋中。

但話說回來,若不是為了追求更好的職業發展、更高的薪資,我們又何必費盡心思去學習那麼多的知識和技能呢?

那既然學了 MySQL,就要檢驗學習成果,怎麼檢驗呢?

對於即將面臨面試的同學來說,不妨花些時間深入研究一下《面渣逆襲 MySQL 篇》【訪問:cxykk.com(程式員快看),程式員編程資料站】這樣的面試指南,通過反覆練習和模擬面試,不斷提升自己的面試技巧和應對能力。這樣,在真正的面試中,你就能與面試官進行一場精彩的對決,展現出你對 MySQL 的深入理解和熟練掌握,從而為自己爭取到更好的工作機會和待遇。 準備升職加薪/跳槽的同學,那就一定要在實際的工作當中加以運用,不然很可能學完一段時間就忘記了。

說在最後

學習毫無疑問的肯定是辛苦的,但是沒有傘的孩子只能全力奔跑,你吃不了的苦,總有別人能吃,你背不下來的面試題,總有人能背下來。

所以加油吧,少年,當你沒有依靠的時候,你只能靠自己。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前面學習了一些Source Generators的基礎只是,接下來就來實踐一下,用這個來生成我們所需要的代碼。 本文將通過讀取swagger.json的內容,解析並生成對應的請求響應類的代碼。 創建項目 首先還是先創建兩個項目,一個控制台程式,一個類庫。 添加swagger文件 在控制台程式中添加F ...
  • 前言 本文將探討如何利用WPF框架實現樹形表格控制項,該控制項不僅能夠有效地展示覆雜的層級數據,還能夠提供豐富的個性化定製選項。我們將介紹如何使用WPF提供的控制項、模板、佈局、數據綁定等技術來構建這樣一個樹形表格。 一、運行效果 1.1預設樣式 1.2 自定義樣式 二、代碼實現 2.1 創建自定義控制項( ...
  • @目錄前言簡介一、準備工作1.1 創建寫入腳本1.2 設置執行許可權1.3 添加定時任務1.4 配置生效二、Tomcat日誌 按每天分割2.1 創建一個 sh文件2.2 設置執行許可權2.3 設置crontab指令,指定每日定時任務2.4 配置生效總結 前言 請各大網友尊重本人原創知識分享,謹記本人博客 ...
  • ESP-IDF NVS 目錄ESP-IDF NVS1. 什麼是NVS?2. NVS中的概念2.1. partition 分區2.2. namespace 命名空間2.3. key-value 鍵值對3. ESP-IDF中NVS的代碼實現 1. 什麼是NVS? 非易失性存儲 (NVS) 庫主要用於在 ...
  • Ubuntu 22.04 自帶ufw 無需下載 ufw是Uncomplicated Firewall的縮寫,是一個用戶友好的命令行工具,用於管理Ubuntu系統上的防火牆。通過ufw命令,用戶可以輕鬆地配置防火牆規則、查看當前的防火牆狀態、啟用或禁用防火牆等操作,幫助用戶保護系統安全並控制網路流量。 ...
  • 一:when語句 1:基礎瞭解 說到底,還是有多個表達式來組成一個判斷語句,很多種的判斷語句 1、 為什麼需要判斷語句: 有的時候play的結果需要依賴於變數,fact或者是前一個任務的執行結果,或者基於上一個task執行返回的結果而決定如何執行後續的task,這個時候就需要條件的判斷了,一個很簡單 ...
  • 使用opc-ua-sim模擬server 前言 一直想找一種將模擬server放到docker容器中運行的方式,這樣就不需要在每個電腦上都安裝軟體,僅僅只需要將鏡像保存起來,使用時載入就行。於是乎就跑到了HUB里搜尋,你說巧不巧,就剛好找到了. iotechsys 在HUB里找到這個作者(iotec ...
  • 本文分享自華為雲社區《openGauss 5.0 單點企業版部署_Centos7_x86》,本文作者:董小姐 本文檔環境:CentOS7.9 x86_64 4G1C40G python2.7.5 互動式初始化環境方式 1、介紹 openGauss是一款開源關係型資料庫管理系統,採用木蘭寬鬆許可證v2 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...