如何學習 SQL 語言?


作者:知乎用戶
鏈接:https://www.zhihu.com/question/19552975/answer/123523074
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

首先,sql是所有數據庫查詢的語言,sql由於本身結構化的特點,非常容易入手。針對不同的數據庫,如hivesql、mysql、sqlserver、oracle等,sql語法會有所不同,但是總體上大同小異,只是細微處的差別。

如果你是數據庫小白,可以先補一下數據庫知識;

如果你有數據庫基礎的,只需要找些sql查詢的習題來做一下,就會很快的得到提高;

接着你想提高sql水平,進階,就要學習一些比較高級的用法和技巧。


1、數據庫基礎

數據庫基礎知識復習

其實這篇文章講的就是所有要點,可以有針對性的了解不熟悉的。不太明白的就直接找一本《數據庫原理》看看,大概5小時。


2、sql習題

經典SQL練習題

SQL查詢語句練習題27道

可以自己搜索sql習題來實踐,這里推薦2個習題。大概10小時就可以掌握。


3、sql進階

(1)sql執行順序。當sql邏輯復雜后,sql的執行順序就會非常重要。

sql執行順序 - qanholas

(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集合的用戶,做差集。

Hive差集運算詳解

進階技巧和方法是在平常使用中逐步積累的,這里只舉出幾個常用的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM