投稿 朱衛軍
對從事資料工作的小夥伴來說,SQL幾乎是必備技能,寫得一手好SQL才能說明你是一個合格的「取數民工」。
SQL如何從小白到高手?
一般分三步走:
- 熟悉基本的增刪改查語句及函式,包括select、where、group by、having、order by、delete、insert、join、update等,可以做日常的取數或簡單的分析(該水平已經超過90%非IT同事);
- 掌握並熟練使用高階語法,比如集合、分組聚合、子查詢、條件邏輯、字串函式、算術函式、日期時間函式,並且知道MySQL、Oracle、SQL Server等資料庫的語法差異;
- 熟悉如何優化SQL語句,以期達到最高查詢效率,瞭解事務、鎖、索引、約束、檢視、元資料等概念,並且學會使用hive sql、spark sql、pymysql等工具;
數據分析人員最好是能達到第三個層次,這樣基本可以算一個90分的sqler。
如果把Excel類比sql,你得玩轉透視表、各種函式公式,甚至VBA,才能最大效率地賦能工作。
學習SQL是有法可循的
可以從以下五個問題開始:
1. 瞭解什麼是SQL?
SQL,全稱「Structured Query Language」,即結構化查詢語句,它的主要作用是設計,建立和管理關係資料庫,關係資料庫的表是類似Excel的二維表,換句話說,SQL是用於與關係資料庫進行通訊的程式語言。
關係資料庫有很多,比如MySQl、Oracle等,每個資料庫都使用自己的SQL方言,但是它們都共享相同的基本語法。
SQL的職責是管理二維表,通過語句來替代Excel中那些圖形化的命令。
比如同樣是篩選資料,在Excel中需要新增篩選,然後選擇想要的欄位,這是圖形化的命令;SQL則是通過語句來實現篩選;
select * from table where …
SQL語法可以分為三類:
- 用於定義資料結構的語句稱為「SQL方案語句」,比如 CREATE TABLE student…
- 用於建立、操作、檢索資料庫中資料的語句稱為「SQL資料語句」,比如 INSERTE INTO student…
- 用於開始、結束、或回滾事務的語句稱為「SQL事務語句」
簡單理解,方案語句是建造資料的殼,例子中建立了表student;資料語句是處理資料,例子中向表student插入了資料,事務語句就是解決多個SQL執行時的糾紛問題。
如果你是資料庫管理員,那麼你需要同時掌握模式語句、資料語句和事務語句,但如果你只是使用資料的分析師、程式設計師,則只需要掌握資料語句就行了。
SQL不能像程式語言一樣,使用變數、條件邏輯、迴圈結構等對過程進行定義,以獲得想要的結果。SQL直來直去,只要定義必要的輸入輸出,沒有對過程的控制。
2. 怎麼學習SQL?
首先你需要了解SQL語法的基礎,包括SELECT,FROM,WHERE,GROUP BY,HAVING,ORDER BY、LIMIT等。
初學者對抽象概念不太懂,可以對比Excel學習SQL基本語法。
核心:select * from tableName
這句話是從某表中選擇全部欄位,相當於Excel中的選擇sheet
where相當於Excel的篩選,group by相當於Excel的透視表,order相當於Excel的升序降序。
接著你得學習一些常用的函式:
最後掌握高階用法:
3. 有哪些好的書籍和教程?
目前市場上SQL相關的資料很多,比較火的像《SQL必知必會》、《SQL學習指南》等。
網上也有一些不錯的開源教程,比如菜鳥教程、w3school等。
建議大家把一本書或一套教程啃完就可以了,一個月就能搞定。
4. 有哪些SQL實戰網站?
脫離練習學習SQL簡直是要命,可能你學了大半個月,拿到一個查詢需求還是無從下手,所以說實踐對於SQL來說非常重要。
這裡有兩個方式可以練習SQL,一是自己搭建資料庫,然後找題目練習,二是在SQL網站上練習
自己搭建資料庫也不難,初學者可以安裝mysql,然後去github上下載習題。
SQL練習的網站也不少,像SQLZOO、XUESQL、SQLBolt、leecode、牛客網等。
SQL Tutorial/zh — SQLZOO
自學SQL網(教程 影片 練習全套)
5 . 練習練習練習
練習是學習SQL的不二法門,只有練的足夠多,你才能精通SQL!
其他的SQL相關文章
零基礎快速自學SQL,2天足矣!此文是《10周入門資料分析》系列的第7篇
什麼?我寫的一條SQL讓公司網站癱瘓了…SQL慢查詢改善方案一條慢查詢會造成什麼後果?之前我覺得不就是返回資料會慢一些嘛,使用者體驗變差一點而已?
關注數據君的臉書:
我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!