關(guān)于學(xué)習(xí)SQL的五個(gè)常見問題?
對從事數(shù)據(jù)工作的小伙伴來說,SQL幾乎是必備技能,寫得一手好SQL說明你是一個(gè)合格的‘取數(shù)民工’。
SQL如何從菜鳥到高手呢,一般分三步走:
熟悉基本的增刪改查語句及函數(shù),包括select、where、group by、having、order by、delete、insert、join、update等,可以做日常的取數(shù)或簡單的分析(該水平已經(jīng)超過90%非IT同事);
掌握并熟練使用高階語法,比如集合、分組聚合、子查詢、條件邏輯、字符串函數(shù)、算術(shù)函數(shù)、日期時(shí)間函數(shù),并且知道MySQL、Oracle、SQL Server等數(shù)據(jù)庫的語法差異;
熟悉如何優(yōu)化SQL語句,以期達(dá)到最高查詢效率,了解事務(wù)、鎖、索引、約束、視圖、元數(shù)據(jù)等概念,并且學(xué)會(huì)使用hive sql、spark sql、pymysql等工具;
數(shù)據(jù)分析人員最好是能達(dá)到第三個(gè)層次,這樣基本可以算一個(gè)90分的sqler。
如果把excel類比sql,你得玩轉(zhuǎn)透視表、各種函數(shù)公式,甚至VBA,才能最大效率地賦能工作。
學(xué)習(xí)SQL是有法可循的,可以從以下五個(gè)問題開始:
1. ?了解什么是SQL?
SQL,全稱「Structured Query Language」,即結(jié)構(gòu)化查詢語句,它的主要作用是設(shè)計(jì),創(chuàng)建和管理關(guān)系數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫的表是類似excel的二維表,由行列組成,每列代表一個(gè)字段。換句話說,SQL是用于與關(guān)系數(shù)據(jù)庫進(jìn)行通信的編程語言。
關(guān)系數(shù)據(jù)庫有很多,比如MySQl、Oracle等,每個(gè)數(shù)據(jù)庫都使用自己的SQL方言,但是它們都共享相同的基本語法。
SQL的職責(zé)是管理二維表,通過語句來替代excel中那些圖形化的命令。
比如同樣是篩選數(shù)據(jù),在excel中需要在列名上添加篩選,然后選擇想要的字段,這是圖形化的命令;SQL則是通過語句來實(shí)現(xiàn)篩選;

select * from table where ....
SQL語法可以分為三類:
用于定義數(shù)據(jù)結(jié)構(gòu)的語句稱為「SQL方案語句」,比如 CREATE TABLE student... 用于創(chuàng)建、操作、檢索數(shù)據(jù)庫中數(shù)據(jù)的語句稱為「SQL數(shù)據(jù)語句」,比如 INSERTE INTO student... 用于開始、結(jié)束、或回滾事務(wù)的語句稱為「SQL事務(wù)語句」
簡單理解,方案語句是建造數(shù)據(jù)的殼,例子中創(chuàng)建了表student;數(shù)據(jù)語句是處理數(shù)據(jù),例子中向表student插入了數(shù)據(jù),事務(wù)語句就是解決多個(gè)SQL執(zhí)行時(shí)的糾紛問題。
如果你是數(shù)據(jù)庫管理員,那么你需要同時(shí)掌握模式語句、數(shù)據(jù)語句和事務(wù)語句,但如果你只是使用數(shù)據(jù)的分析師、程序員,則只需要掌握數(shù)據(jù)語句就行了。
SQL不能像編程語言一樣,使用變量、條件邏輯、循環(huán)結(jié)構(gòu)等對過程進(jìn)行定義,以獲得想要的結(jié)果。SQL直來直去,只要定義必要的輸入輸出,沒有對過程的控制。
2. 怎么學(xué)習(xí)SQL?
首先你需要了解SQL語法的基礎(chǔ),包括SELECT,F(xiàn)ROM,WHERE,GROUP BY,HAVING,ORDER BY、LIMIT等。
初學(xué)者對抽象概念不太懂,可以對比excel學(xué)習(xí)SQL基本語法。
核心:select * from tableName
這句話是從某表中選擇全部字段,相當(dāng)于excel中的選擇sheet
where相當(dāng)于excel的篩選,group by相當(dāng)于excel的透視表,order相當(dāng)于excel的升序降序。
接著你得學(xué)習(xí)一些常用的函數(shù):
最后掌握高級用法:
3. 有哪些好的書籍和教程?
目前市場上SQL相關(guān)的資料很多,比較火的像《SQL必知必會(huì)》、《SQL學(xué)習(xí)指南》等。




網(wǎng)上也有一些不錯(cuò)的開源教程,比如菜鳥教程、w3school等。

建議大家把一本書或一套教程啃完就可以了,一個(gè)月就能搞定。
4. 有哪些SQL實(shí)戰(zhàn)網(wǎng)站?
脫離練習(xí)學(xué)習(xí)SQL簡直是要命,可能你學(xué)了大半個(gè)月,拿到一個(gè)查詢需求還是無從下手,所以說實(shí)踐對于SQL來說非常重要。
這里有兩個(gè)方式可以練習(xí)SQL,一是自己搭建數(shù)據(jù)庫,然后找題目練習(xí),二是在SQL網(wǎng)站上練習(xí)
自己搭建數(shù)據(jù)庫也不難,初學(xué)者可以安裝mysql,然后去github上下載習(xí)題。
SQL練習(xí)的網(wǎng)站也不少,像SQLZOO、XUESQL、SQLBolt、leecode、牛客網(wǎng)等。
SQL Tutorial/zh - SQLZOO

自學(xué)SQL網(wǎng)(教程 視頻 練習(xí)全套)

5 . 練習(xí)練習(xí)練習(xí)
練習(xí)是學(xué)習(xí)SQL的不二法門,只有練的足夠多,你才能精通SQL!
Python大數(shù)據(jù)分析
data creates?value
掃碼關(guān)注我們
