關於學習SQL的五個常見問題?

投稿 朱衛軍

對從事資料工作的小夥伴來說,SQL幾乎是必備技能,寫得一手好SQL才能說明你是一個合格的「取數民工」。

SQL如何從小白到高手?

一般分三步走:

  1. 熟悉基本的增刪改查語句及函式,包括select、where、group by、having、order by、delete、insert、join、update等,可以做日常的取數或簡單的分析(該水平已經超過90%非IT同事);

數據分析人員最好是能達到第三個層次,這樣基本可以算一個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…

簡單理解,方案語句是建造資料的殼,例子中建立了表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等。

菜鳥教程
w3school

建議大家把一本書或一套教程啃完就可以了,一個月就能搞定。

4. 有哪些SQL實戰網站?

脫離練習學習SQL簡直是要命,可能你學了大半個月,拿到一個查詢需求還是無從下手,所以說實踐對於SQL來說非常重要。

這裡有兩個方式可以練習SQL,一是自己搭建資料庫,然後找題目練習,二是在SQL網站上練習

自己搭建資料庫也不難,初學者可以安裝mysql,然後去github上下載習題。

SQL練習的網站也不少,像SQLZOO、XUESQL、SQLBolt、leecode、牛客網等。

SQL Tutorial/zh — SQLZOO

https://sqlzoo.net/wiki/SQL_Tutorial/zh

自學SQL網(教程 影片 練習全套)

http://www.xuesql.cn

5 . 練習練習練習

練習是學習SQL的不二法門,只有練的足夠多,你才能精通SQL!

其他的SQL相關文章

零基礎快速自學SQL,2天足矣!此文是《10周入門資料分析》系列的第7篇

什麼?我寫的一條SQL讓公司網站癱瘓了…SQL慢查詢改善方案一條慢查詢會造成什麼後果?之前我覺得不就是返回資料會慢一些嘛,使用者體驗變差一點而已?

關注數據君的臉書:

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/