零基礎如何自學MySQL資料庫?

普通大學三本,專業渣渣,在此不表了,反正和資料庫差了十萬八千里。

但是我對資料庫方面很感興趣,一直想自學MySQL,業餘自己也零零散散看了一些網上的課,但是都覺得太碎片沒體系,學到的不多。

想請教各位大神,如何從幾乎為零的基礎自學MYSQL呢?不知有沒有大神現身指導,比如基礎應該學什麼,進階應該學什麼,高階應該學什麼,如果有推薦的書,就太好了!

在此謝過各位!


本人是個活生生的例子,大學學的儀器儀錶專業,12年畢業後第一份工作是電路板測試。由於項目中接觸到了資料庫的東西,純粹當高級點的excel表格用的。

當時有點興趣,沒參加過培訓,0基礎自學mysql和linux,現任國內某公有雲mysql mongodb dba。

對於非計算機出身的我,大學只會hello word和跑馬燈,期間過程確實非常曲折,分享下我的自學過程:

1、 自己在windows和linux上安裝了mysql,自學linux的基礎知識,學習mysql的最基礎的知識,即怎麼寫sql,存儲過程,表的設計等,從0到熟悉大概花了3個月 ,推薦《mysql入門很簡單》

2、系統地較為深入地學習mysql的sql優化,備份和恢復,參數優化,架構優化,硬體層面的優化,高可用方案,複製技術等等,這段時間你不一定能實際接觸到這些,就像我當初那樣,肯定沒什麼公司招一個小白。

我選擇自己看書,推薦《高性能mysql》,裡面所有的章節都需要看一遍,以現在的水平肯定看不懂,但需要知道大概怎麼回事,為後續的找mysql初級dba的工作打一個鋪墊,這個過程大概也需要3個月。

3、 紙上得來終覺淺,完成以上兩步,我開始準備找一份mysql相關的工作,而不是天天用著excel表格做著select * from table_sb這樣的工作。

當然我這麼猥瑣的人肯定不會裸辭,該畫的電路板也一樣畫,業餘時間開始投初級mysql dba的工作,並且不間斷地學習,網上各種找mysql面試的相關題目(實際上我當時完全沒有任何實戰經驗),陸續收到一些面試,憑藉之前自學的mysql知識,開始胡亂吹牛逼,先混進去再說。

你不做mysql實際相關的工作,永遠也不知道自己之前認知的db知識有多幼稚。

友情提示一點,一般公司都沒有專職dba的,所以面試的時候一定要自信,其實你學了這麼多,雖然毫無實戰經驗,理論知識很大概率比面試你的人牛逼,所以各種吹,我就這樣真正進入初級dba的圈子(由於這時對linux還處於cd ls的水平,所以之前也根本沒做過運維),這個邊工作邊找工作的過程又持續了2個月。

4、真正進入互聯網,接觸生產環境後,這是我進步最大的時候。

第一步需要將之前所學真正地應用起來,並且應用的過程中,再回頭看之前的書籍,這時候需要真正去理解,而不是似是而非,一知半解。

這時再推薦《高性能mysql 第三版》,全本再看一遍,這時需要全部看懂,另外還有《mysql技術內幕:innodb存儲引擎》等等。

總之這段時間就需要開始關注mysql一些細節了,比如db故障處理,高可用,負載均衡等等的具體實現了。

另外,linux的知識同步也要深入去學習,至少會寫shell腳本,常見的linux知識等,我在這花了1年多;

5、 dba的工作一般是非常輕閑的,畢竟不是大公司,技術能力有限,該學的也學得差不多了,接觸不到海量數據,高並發等比較鍛煉人的場合,於是我又準備跳了。

於是來了公有雲,現在每天運維萬多個db實例,平均每天處理5+個緊急db故障,幾乎mysql會遇到的問題,感覺都遇到了,能感覺到技術實力和經驗也在每天都在積累,在進步。

但是感覺還是欠缺了很多,下一步就看你選擇了,是再去研究源代碼,底層原理的東西多點,還是資料庫運維和應用多一點,就比如業界姜承堯,何登成與葉金榮的區別。

由於我的歷史原因,對c++等幾乎不懂,平時也用不到,所以看代碼等事實際太累,於是我再去學mongodb,接了公司mongodb運維的活,算是在廣度上的一個擴展,萬一哪天mysql不行了呢

6、 總之,對於db小白來說,最重要的一點就是,學習的過程不能斷

PS 上面的方法比較野路子,適合沒什麼基礎的童鞋,如果本來就是DBA,比如從oracle轉到mysql,那麼建議直接看mysql官方文檔,而官方文檔是db達到一定水平後必看,出問題時必查的權威文檔


邊學邊練,上手最快。

推薦下《MySQL 基礎教程》。基於 MySQL 官方參考手冊製作,圖文教程搭配線上的MySQL實驗環境,可以隨時練習。

內容從 SQL 概念開始,在 MySQL 資料庫中學習並實踐了 SQL 常用語法及約束、索引、視圖、SELECT 查詢、修改與刪除等基本操作。教程包含兩部分,基礎部分學習 SQL 基本操作實驗,進階部分學習 MySQL 的進階操作。教程中間穿插了幾個挑戰實驗,通過讓你實現一個成績管理系統項目,來應用和檢測自己的知識理解。


首先你要明白一點,一般來說,關係型資料庫有三個方面的東西

1,是資料庫管理,這是DBA,負責安裝,調試,調優,集群等

2,是資料庫使用,這是編程,包括SQL語句,觸發器,存儲過程等

3,是資料庫設計,設計資料庫表和其他實體

三者互相影響,互相包含,你所謂的對資料庫感興趣,到底是哪個方面?

DBA的部分,雖然目前是有一些商用項目使用mysql,或者mysql集群,但是看你的學歷和經歷,並不推薦你當一個mysql DBA,就業面市場太小,如果勵志當一個DBA,建議你從MSSQL server或者oracle開始。

資料庫的設計,肯定繞不開兩點,一個是領域知識,比如我做金融的,你要是不懂銀行運作,保險公司日常,你肯定是設計不出資料庫結構的,另一個是資料庫原理,這個是共同的,了解如何使用範式計算資料庫實體關係,資料庫是否好,是有可量化的標準的,那就是範式,這和學歷差不多,符合高範式的不一定很好,但是低範式基本上都不好,雖然不排除有些特例。

所以你最可能在眼前的就是資料庫使用,這個裡面,我建議你在學會安裝以後,只看兩個,SQL和觸發器,而且時間分配為70%-30%,為什麼不建議看存儲過程,理由和DBA一樣,使用場景不多,效費比不高。所以你應該很清楚,這樣抽絲剝繭以後,你主要花費精力的就是SQL使用。

那麼SQL如何學習?

知乎學生氣重,學習總是要求介紹書,我仍然反對這個概念,不過我尊重你們的學習方法。SQL入門有一本常常提起的書《SQL in 10minutes》這本可以看看。常年amazon銷量前列。或者動物社的,learning SQL,也是很好的。網站的話,W3school總是我的首要推薦。我個人偏愛辭書式教程,當然有些人喜歡精靈式教程,那樣你會需要自己找。W3的好處是一直一共online測試,你可以以結果為導向進行學習。如果你在W3online測試,憑真實實力過關,那麼你的基礎就準備好了。

這只是第一步,等於是你掌握了所有工具的使用,接下去你需要在實際操作中累積經驗,因為任何非實際項目你無法真實碰觸到實際資料庫結構,學慣用的都非常簡單,不會遇到複雜情況,而SQL使用的水平之一即是寫出高效的SQL。條條大路通羅馬,在SQL更是如此,有時候你需要用很多union才能解決問題,別人一個select就能解決,這主要就是經驗。這一塊是無法通過教與學了解的,沒辦法告訴你,這個情況用這個,那個情況用那個,只有在真實戰場拼殺,才會切身體會到。


在這裡給大家分享一個乾貨教程,MySQL零基礎入門視頻教程,希望能幫助到大家!

課程目錄:

一、 MySQL課程介紹和MySQL的基礎概念(1)

二、 MySQL基礎概念之存儲引擎(2)

三、 MySQL基本安裝使用

四、 SQL語句之DDL語句

五、 SQL語句之DML語句和DCL

六、 SQL語句課堂實踐精確授權優先

七、 複習MySQL基礎

八、 破解MariaDB 5.5 root密碼

九、 MySQL備份的分類和備份的兩大要素

十、 Innodb存儲引擎的版本級別

十一、 二進位日誌實現實時增量備份(1)

十二、 二進位日誌實現實時增量備份(2)

十三、 Lvm快照方式備份資料庫

十四、 percona XtraBackup 備份

十五、 percona XtraBackup 安裝和使用

十六、 LAMP搭建微博應用

十七、 MySQL Replication 的原理

十八、 搭建MariaDB主從架構(m-s)

十九、 MySQL5.7的基本安裝

二十、 MySQL5.7 主多從(m-s-s-s)

二十一、 MYSQL5.7 多極主從+multisource

二十二、 項目MySQL5.7 實現多極主從+multisource(1)

二十三、 項目MySQL5.7 實現多極主從+multisource(2)

二十四、 資料庫中間件db-proxy

二十五、 MySQL-proxy的 安裝配置實現負載均衡讀寫分離

二十六、 MySQL HA高可用

二十七、 配置和使用

視頻下載地址:https://pan.baidu.com/share/init?shareid=2181764862uk=1040300808

密碼:2gig


我就說一下我的零基礎入門過程,各位大神輕噴。

第一本書是《SQL必知必會》,很薄很精簡的一本書,不知道為什麼沒人推薦啊。通過這本書了解一些mysql的語法和一些基本的知識。通過真真實實的寫一些查詢語句操作一些表使自己保持對mysql的興趣。

第二本書是《高性能mysql》現在應該出到第三版了,第一遍有很多地方看不懂沒關係,這種經典多翻幾遍很有必要,了解mysql的細節,優化等等。

最後一本書如高贊答案那樣,看技術內幕,這個我現在也沒看。

總體而言我覺得零基礎就是從簡到難(一上來就讀高性能mysql或者生硬的教科書,結果就是mysql從入門到放棄),其次時刻保持興趣,然後再找一份mysql相關的實習或工作,最後是多與別人交流,多看看大牛的技術博客。


1. 入門階段:

【學習目標】

了解MySQL可以做什麼;

知道遇到問題時應該用什麼關鍵詞去百度。(見笑了,不過入門者遇到的問題,大部分前輩都遇到過並給出了解決辦法,還是值得借鑒的。)

【推薦書籍】

深入淺出MySQL (豆瓣)

【推薦理由】

有幸在學習MySQL迷茫時遇到一位DBA老師,他給我推薦的第一本書就是這本《深入淺出MySQL——資料庫開發、優化與管理維護》。

當時老師讓我按照這本書在自己的虛擬機上實驗,有問題記錄下來及時問、及時解決。個人經驗是,入門階段看這樣的一本書就足夠了。

此外,由於這本書知識點較為全面,所以頗有些厚度,可以挑感興趣的章節先學習。

2. 進階階段

【學習目標】

了解MySQL性能調試和優化方案;

了解MySQL基本架構和性能優化的基本原理;

【推薦書籍】

(1) 高性能MySQL (豆瓣)

本人程序員一枚。之所以會去翻《高性能MySQL》這本書,是因為遇到兩次SQL語句運行超時,一次是因為沒有用好索引,一次是因為變數類型定義不當╮(╯▽╰)╭

《高性能MySQL》這本書對MySQL優化的基本原理和解決方法都講解得較為透徹的。按照這本書一步步實驗調試可以有很多收穫。

(2) MySQL技術內幕 (豆瓣)

姜大牛的這本書很多人推薦,待我看完此書再來填坑哈。

3. 高階階段

【學習目標】

了解最新版MySQL更新內容;

【推薦資料】

mysql官方文檔:MySQL :: MySQL Documentation


最好就是邊學邊練,先安裝好mysql程序,然後給你推薦個網站,有sql教程

http://www.w3cschool.com

根據上面從新建資料庫到各種增刪改查語句一條條跟著做就好。


無意中發現的一個站點總結的真的很好,很全面,而且還有實例,可以用來參考!

只是這個站點好像沒有其他文章,希望站長能多發點像這樣的文章!

MySQL基礎

http://www.kmfree.me


首先概覽下mysql的知識體系:

InnoDb存儲引擎、sql語句、存儲過程、mysql函數、觸發器、視圖、全文搜索、

建表、索引優化、慢查詢優化、事務、鎖、配置參數優化、緩存、

用戶、許可權、備份與恢復、日誌、分散式、高可用

對於零基礎的童鞋:

首先,學習基本的SQL語法。完成這個後,你就可以編寫SQL語句了。

這一步推薦:W3Schools的 SQL 教程。

其次,學習資料庫的主要功能和使用方法,比如用戶相關或者許可權相關等等。

我推薦兩本書:

一、《MySQL必知必會》 這本書講的非常全,從基本概念,到查詢到插入新建表,用戶的管理,都有具體的例子,非常適合沒有任何基礎的同學來學習Mysql,總之這本書學習的方法就是:1、十分鐘了解下資料庫的基本概念 2、找到練手的資料庫 3、對照著上面的內容去敲。本書里也有大量的內容是講sql的,可以結合w3c的sql教程一起,有取捨地看。

二、《資料庫系統概念》這本書是dba必看的。

看完這些並且實踐+思考之後,可以算入門了。

接下來對於希望深入學習的童鞋

我推薦三本書(很多大神都這麼推薦),《高性能MySQL(第3版)》、 《MySQL技術內幕(第4版)》,《深入理解MySQL》還有Mysql的官網。讀完這些東西,再加些豐富的經驗,就可以去做DBA了。

十分推薦閱讀Planet MySQL上匯總的博客,特別是Percona"s MySQL InnoDB performance and scalability blog.

接下來是給出一些有價值的學習資料。可以省去一些時間。

-電子書:

我認為多看書還是有好處的。有些書值得反覆看許多遍,有時候只看一遍無法深刻理解吸收,思考也不夠充分。

電子書下載傳送門

  • 《mysql必知必會》
  • 《高性能mysql第三版》
  • 《資料庫系統概念》
  • 《深入理解MySQL》
  • 《MySQL性能調優與架構設計--全冊》《SQL Antipatterns》
  • 《MySQL技術內幕 InnoDB存儲引擎》

-學習mysql的網站:(對於初學者)

MySQL Tutorial - Learn MySQL Fast, Easy and Fun.

可以快速,簡單和有趣的學習MySQL。以簡單易懂的方式為您提供完整的MySQL教程。每個教程都有SQL腳本和可用屏幕截圖的實際示例。

mysql學習資料 | mysql深入學習筆記 深度筆記

有很多mysql的資料可以看,還可以看網友做的學習筆記。

W3Schools SQL 教程

可以學習基礎的sql語句

-閱讀官方手冊

無論英文好不好,看英文手冊的能力是一定要有,也一定要培養的。

mysql官方手冊:14 The InnoDB Storage Engine

-大牛的博客

領域專家的博客是十分具有學習價值的,下面列舉幾個比較好的:

何登成的技術博客 何登成的技術博客

淘寶丁奇 追風刀·丁奇 - ITeye技術網站

周振興@淘寶 花名:蘇普 一個故事@MySQL DBA

阿里雲資料庫高級專家彭立勛為 MariaDB Foundation 正式成員,負責全球Replication模塊相關補丁的Review。彭立勛也成為首位被MariaDB基金會引入的中國程序員。P.Linux Laboratory

Planet MySQL

最後就是,要多用。


1、先學sql

2、再學資料庫理論,acid

3、再學mysql運維

4、最後看代碼,編譯源碼,嘗試修改源碼


我推薦一本書,很不錯的。

深入淺出MySQL 資料庫開發 優化與管理維護 第2版

https://item.jd.com/11381295.html


我是0基礎學習數據分析,也在學習SQL,所以結合自身說一下吧:

看理論書太枯燥,向我這樣0基礎的,肯定很容易放棄!所以我覺得先實踐後理論(親理論還是不能丟的)

實踐過程中直接上SQL會一頭霧水,這是在幹嘛,走得會比較堅信,所以先從前台開始,先學習access實例應用,做到對資料庫有個大體的了解;再去學習SQL你就能輕易的明白語句這樣寫的意義,學習起來輕鬆愉悅!

手機碼子,希望對你有幫助!

學習資料:

access實例應用隨便找,按照書中步驟依葫蘆畫瓢即可;

SQL推薦一本書,深入淺出SQL;然後SQL實例應用鞏固;

最後去翻翻理論書,熟話說的好,之前然知其所以然!


找到你覺得資料庫最牛的公司,找到他們的招聘信息

如果看不懂職位要求說的是什麼,那就先搞明白

如果覺得自己理解職位要求,但是水平不夠,那就投簡歷

簡歷多半是被刷,那就去一般的公司面試

此時你已經不是0基礎了。

祝早日入行。


首先得先學會基本的資料庫原理 MySQL是rdbms 所以你得有一個基本的認識。當然了 在此期間 你還會基本的sql語句 基本的操作要會 針對MySQL你得會在不同的環境中搭建配置好 知道崩潰了之後該怎麼辦之類的 本渣渣也是逗比 也在不斷學習ing。。。。


貼一張以前做複習時候的思維導圖。

題主感興趣的部分是mysql 可重點看mysql的部分。還可以與導圖中其他主題對比起來看 作為一個學習的綱領


首次回答,不喜勿噴,如發現不足,請賜教,感謝。

我認為還是取決於你的需求。我是通過w3school來學習的,學之前對db是茫然的,因為我當時要做個app關於數據採集方面的,所以時間上很趕,只好現學現賣,一周時間才把資料庫那塊搞定。

得先學會基礎部分,然後可以試著去做個項目,比如你可以做個號碼查詢小工具,自己再做介面和界面。


我對mysql進行了遞進式、章節式的總結,也盡量通俗的總結了一些知識點,歡迎交流,鏈接如下
mysql | 朱雙印博客


mysql入門相對簡單,可以初步看看《mysql必知必會》,簡單了解他的使用方法,然後可以了解一下文件結構以及各自功能等,接下來就可以針對主從架構,或者其他流行的架構了解他的使用及高可用原理及方法方面理解下,最後如果條件允許,做一些源碼方面的研究,不過最好這期間都要在工作中接觸到mysql,不然不深刻。


照著二級教程的書一點一點操作 慢慢來就行了


樓主你如果英語水平過得去,那麼我良心推薦Coursera上杜克大學的Excel to MySQL: Analytic Techniques for Business 專項課程

Excel to MySQL: Analytic Techniques for Business 專項課程www.coursera.org

這個專項課程內總共有五門課,先是教你各類數據指標的含義,然後是用Excel分析數據,再用Tableau進行數據可視化,然後是Mysql大數據課程,最後是畢業項目。

其中Mysql大數據課程真的是幹活滿滿,每周至少要花12-18個小時才能掌握。

教師是用現在最潮流的Jupyter notebook進行教學,每一個函數都講得特別仔細和系統,比其他單純的甩給你代碼和視頻的課程好多了。題外話:我覺得Jupyter noterbook便於讀寫閱讀文章,代碼分段運行和圖表即時顯示的特點真的非常適合編程教學。

單單是Mysql大數據這門課就有五周,但是這種內容量抵得上大學課程2-3周的內容量了(我大學課程每門課每周4小時)。另外杜克大學還提供了Tableau的學生賬號還有一些合作企業提供的資料庫,學習起來真的是得心應手。


推薦閱讀:

轉行到IT行業,都有人問過哪些問題?
零基礎要學電鼓大神們有什麼建議?
怎麼規劃一個零基礎學習Unity3D的「方法」或者「流程」?
零基礎如何成為一名球鞋設計師?

TAG:學習 | 資料庫 | MySQL | MySQL入門 | 零基礎 |