鏈接:https://www.zhihu.com/question/19552975/answer/123523074
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
首先,sql是所有數據庫查詢的語言,sql由於本身結構化的特點,非常容易入手。針對不同的數據庫,如hivesql、mysql、sqlserver、oracle等,sql語法會有所不同,但是總體上大同小異,只是細微處的差別。
如果你是數據庫小白,可以先補一下數據庫知識;
如果你有數據庫基礎的,只需要找些sql查詢的習題來做一下,就會很快的得到提高;
接着你想提高sql水平,進階,就要學習一些比較高級的用法和技巧。
1、數據庫基礎
其實這篇文章講的就是所有要點,可以有針對性的了解不熟悉的。不太明白的就直接找一本《數據庫原理》看看,大概5小時。
2、sql習題
可以自己搜索sql習題來實踐,這里推薦2個習題。大概10小時就可以掌握。
3、sql進階
(1)sql執行順序。當sql邏輯復雜后,sql的執行順序就會非常重要。
(2)SQL ROW_NUMBER() OVER函數。用作分組排序,比如各個省份稅收排名前20的企業。
SQL ROW_NUMBER() OVER函數的基本用法用法
(3)case when then else end。用作條件判斷,比如將10、11、12、13……19、20歲的人群新生成一個字段‘年齡段’取值為10-20歲;聚合函數分別計算,如sum(case when 性別=‘男’ then 收入 end) as 收入_男,sum(case when 性別=‘n女’ then 收入 end) as 收入_女
SQL中的case when then else end用法
(4)select時加標簽。例如select出某一特征user_id時新建一個tag字段作為用戶的標簽。
select user_id,'白領' as tag
(5)差集運算。例如取A集合中不包含在B集合的用戶,做差集。
進階技巧和方法是在平常使用中逐步積累的,這里只舉出幾個常用的。