{eval=Array;=+count(Array);}
這個問題問的有些籠統(tǒng),個人感覺sql作為一個取數(shù)工具,學(xué)起來并不難,至于大概要學(xué)多久,要看你想掌握的到什么程度,
個人把sql的學(xué)習(xí)分為這樣三個層次:
像我們干數(shù)據(jù)分析的,都要能達到第三個層次,這樣基本可以算一個90分的sqler。
如果把excel類比sql,你得玩轉(zhuǎn)透視表、各種函數(shù)公式,甚至VBA,才能最大效率地賦能工作。
1、了解什么是SQL?
SQL,全稱Structured Query Language,即結(jié)構(gòu)化查詢語句,它的主要作用是設(shè)計,創(chuàng)建和管理關(guān)系數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫的表是類似excel的二維表,由行列組成,每列代表一個字段。換句話說,SQL是用于與關(guān)系數(shù)據(jù)庫進行通信的編程語言。
關(guān)系數(shù)據(jù)庫有很多,比如MySQl、Oracle等,每個數(shù)據(jù)庫都使用自己的SQL方言,但是它們都共享相同的基本語法。
SQL的職責(zé)是管理二維表,通過語句來替代excel中那些圖形化的命令。
比如同樣是篩選數(shù)據(jù),在excel中需要在列名上添加篩選,然后選擇想要的字段,這是圖形化的命令;SQL則是通過語句來實現(xiàn)篩選;
select * from table where ....
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必知必會》、《SQL學(xué)習(xí)指南》等。
《SQL必知必會》目錄
《SQL學(xué)習(xí)指南》目錄
網(wǎng)上也有一些不錯的開源教程,比如菜鳥教程、w3school等。
SQL 簡介 | 菜鳥教程
SQL 教程
建議大家把一本書或一套教程啃完就可以了,一個月就能搞定。
4. 有哪些SQL實戰(zhàn)網(wǎng)站?
脫離練習(xí)學(xué)習(xí)SQL簡直是要命,可能你學(xué)了大半個月,拿到一個查詢需求還是無從下手,所以說實踐對于SQL來說非常重要。
這里有兩個方式可以練習(xí)SQL,一是自己搭建數(shù)據(jù)庫,然后找題目練習(xí),二是在SQL網(wǎng)站上練習(xí)
自己搭建數(shù)據(jù)庫也不難,初學(xué)者可以安裝mysql,然后去github上下載習(xí)題。
SQL練習(xí)的網(wǎng)站也不少,像SQLZOO、XUESQL、SQLBolt、leecode、??途W(wǎng)等。
SQL Tutorial/zh - SQLZOO:https://sqlzoo.net/wiki/SQL_Tutorial/zh
自學(xué)SQL網(wǎng)(教程 視頻 練習(xí)全套):http://xuesql.cn/
5 . 練習(xí)練習(xí)練習(xí)
練習(xí)是學(xué)習(xí)SQL的不二法門,只有練的足夠多,你才能精通SQL
文源:知乎 朱衛(wèi)軍
在SQLServer組的以前的一個同事說,很多程序員學(xué)到了group by之后就被卡在這里了……那個人告訴我,學(xué)SQL,千萬不要用普通程序語言的過程式的想法去想,而要用query本身的思想去想。不過我是做編譯器的所以自然沒有這個障礙。根據(jù)我的經(jīng)驗,他的意思大概是,SQL本身就是functional(函數(shù)式)的,只有用functional的思考方法才能更好地理解他。
對于流行的SQL數(shù)據(jù)庫(SQLServer、Oracle和DB2)來講,一般情況下靠譜的table、index的設(shè)計,可以讓你的CPU接近100%,每個query都在100毫秒內(nèi)完成。這個靠譜的程度是相當(dāng)難達到的。不過一般的想法是,如果你的SQL寫的性能不夠,一般有兩種可能:
1、你的問題不適合SQL做
2、你的index沒寫對
index是一個博大精深的東西,不學(xué)點理論知識肯定是不行的,在此我推薦《Database Management Systems 3rd Edition》 - Ramakrishnan Gehrke。這本書講了很多數(shù)據(jù)庫的重點知識,譬如說如何組織你的數(shù)據(jù)庫,如何寫一個好的SQL,如何通過你的需求建立靠譜的index(注意,是先有需求和SQL后有index,而不是先有index然后才依賴于這個去寫你的SQL的),那些index到底是怎么實現(xiàn)的,等等??赐曛笫掳牍Ρ?,肯定能寫得一手好SQL,建得一手好表了。
得看你有木有接觸過IT行業(yè),還有邏輯思考能力,有人指導(dǎo)的話,邏輯思維好的兩個星期每天花3個小時可熟練掌握sql的基本應(yīng)用了。
0
回答0
回答0
回答0
回答0
回答9
回答0
回答0
回答0
回答2
回答