學習sql的時候找了很多資源,網上包括知乎上也有很多信息,零零碎碎看到覺得有用的,就收藏了,然後偶爾想到纔去看一次,沒有制定詳盡的計劃系統的學習,也沒有持續進行實戰,慢慢地那些語法就在腦海里丟失了,如今朝花夕拾

,想著再重學一遍,少走彎路,如果只是入門的話,我會在萬千信息中選擇如下方式:

一:客戶端選擇

mysql、sql server、oracle等等都可以,不過因為安裝Navicat Premium,自帶mysql,加上mysql是開源的,所以選擇了mysql(後來發現學習選自sql sever中的很多語法其實和mysql還是有區別的,為了替換為mysql用的語法,花了不少時間),安裝教程參考 @猴子 的猴子:客戶端navicat安裝教程 這篇教程,沒有報錯,非常順利;

二:學習書籍推薦

之前刷知乎,看的很多人推薦《sql必知必會》,於是在網上買了一本,知識點都講到了,但是對於一個純初學者(至少對我),還是有很多概念不太好理解或者沒有那麼容易一下子理解,後來接觸了《sql基礎教程》這本書(只看到第七章),完全按照上面的操作及代碼來,概念、思路都清晰了很多,所以比較推薦這本,一些sql公眾號或者知乎上都有這本書的電子版。

三、學習工具

書不長帶在身邊,想要隨時檢驗自己的學習成果或者學習新知識,現在都流行微信公眾號了,我關注了一個比較適合自己的:@sql數據開發,上面有基礎知識、有進階知識、學習材料和常見面試題,一個夠用了。

四、學習路徑

1、下載mysql;

2、學習《sql基礎教程》(按照示例自己一個一個敲代碼),裡面的知識點懂EXCEL就會SQL,從此查數不求人 這篇文章寫得比較清楚了,不懂的百度;

3、閑暇的時候看看公眾號中的基礎知識和高級知識部分,加深知識點印象,不懂的百度;

4、做sqlzoo上的在線測試(偏基礎),加深知識點印象,不懂的百度;

5、做公眾號『學習之路——sql題庫——SQL Server練習題』裡面的題目(偏進階),加深知識點印象,不懂的百度(做題的時候發現答案中的很多代碼在mysql中無法實現或者實現方式不一)

五、經驗總結

在學習完《sql基礎教程》的前七章後(一天1.5小時,一週就可以),基本的查詢語法應該都掌握了,後面我覺得非常重要的一個知識點就是搞清楚sql語句的書寫順序和執行順序之間的差異,簡單介紹如下:

差異主要在 select和distinct 這兩個語句上,雖然書寫他倆靠前,但是實際執行過程中,他們是在having語句後面的(最近發現mysql中select執行順序是在where後面,group by前面),最直接的體現是如果你在select語句後面對某列使用了別名,在where子句中使用別名會報錯,因為where的執行順序在select之前,示例如下所:

一方面注意書寫順序,一方面理解執行順序,對於學習sql和理解很多sql語句中的邏輯大有裨益,關於sql sever和mysql在語法上面的差異,通過用mysql語句實現SQL Server練習題中的問題,慢慢發掘了一點,後期有時間專門整理下,現舉例比如說:

1.sql server中的top關鍵字在mysql中是沒有的,但是可以用limit實現相應功能;

2.convert對應的參數不相同,sql server中是CONVERT(data_type,expression[,style]),mysql中是CONVERT(xxx,類型);

3.關於時間格式的很多函數或者參數,如GETDATE() 和NOW(),date_to_str()和date_format,Datename(wk,date)和WEEK(date,index),DATEDIFF(datepart,startdate,enddate)和TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)等。

六、快捷鍵

最後分享下Navicat 中的一些快捷鍵,也是百度來的,所以有問題,記得多百度,養成獨立解決問題的好習慣。

1.ctrl+q 打開查詢窗口
2.ctrl+/ 注釋sql語句
3.ctrl+shift +/ 解除注釋
4.ctrl+r 運行查詢窗口的全部sql語句
5.ctrl+shift+r 只運行選中的sql語句
6.F6 打開一個mysql命令行窗口
7.CTRL+TAB鍵方便地切換到其他選項卡
8.ctrl+n 打開一個新的查詢窗口
9.ctrl+w 關閉一個查詢窗口
10.ctrl+d 在查詢表數據界面打開一個該表結構的窗口

推薦閱讀:

相關文章