SQL快速學習入門,及練習進階
SQL的第一次邂逅
2年前在一家同城O2O貨運平台做運營,由於當時產品為中高頻工具平台類,所以運營的側重點就在於各種數據分析,制定活動補貼政策,(當然會有風控抓刷單,但這個職能劃分屬於六扇門——總部風控數據部門,我們區域的運營只管怎麼有效的提升自己區域平台的數據)。
起初很多分析的也相當初級,分析平台訂單量趨勢,活躍用戶數理變化,每周重點優質司機數據統計分析,用的最多的就是sumifs, countifs,vlookup,數據透視表當時用的沒那麼熟練。我們是開放式辦公,有時候客服/BD在就比較吵,很多時候我們運營部都是晚上做這種數據分析類,策劃方案的工作,數據量大一點的跑個公式能讓你等上10分鐘,那個計算的進度條挺磨耐性的。
當時業務分析上有這樣一個問題,要從平台司機用戶中根據數據分析篩選一部分作為潛在優質司機重點培訓開發,當時主要考慮所在市場需求量(車型/司機量),司機接單行為數據篩選重點目標用戶,其中就考慮司機註冊時間,在線平台時長,所在市場貨主數,市場平均單量,司機陌生匹配接單貨主度(主要當時補貼泡沫,會有刷單的數據干擾),司機歷史訂單軌跡符合度等著手。對於這個每筆訂單的貨主和司機,怎麼統計當時利用excel基本公式是沒有太多思路的。後來,就請教我一位在數據諮詢公司的朋友,他給我說這個問題可以使用SQL,或者數據透視表,他老說我用的方法太low比。。。。。
他就使用excel的QURY 做了一個數據鏈接,並使用幾句sql語句進行操作了,結果就出來了。當時就覺得太厲害了,回去也自己摸索了一些,還是不能熟練應用,他就建議我買本《SQL必知必會》看,書在京東買了,斷斷續續看,概念基本上都比較簡單易懂,除了後面的存儲過程/事務管理這些,上手練習是一個問題,沒有資料庫練習數據,同步搭建書里的框架練習起來,雖然剛開始比較痛苦,但也唯有這樣的方式才能早日結束這樣的痛苦,渡過前面的階段。
重複斷斷續續的看了幾回,很多資料庫基礎的知識也慢慢有概念了,數據的結構,表的設計,也會反應到工作中有些excel數據源是否格式對的(不要合併單元格。。。。除非是數據播報展示)。
SQL的進階,熟悉基本語法
前面自己學習sql沒有動手搭建實踐的環境同步練習,當時想呀,ACCESS,mysql,等資料庫都要裝的,弄這些又不懂,其實動起手,誰都不是剛不會,我前2個月也要出來比較大的數據(就是用excel就很卡那種而已),又看到公司電腦有自帶的access,就摸索一下怎麼鏈接數據,怎麼進入到sql編程界面編輯查詢,使用分組groupby,使用count,sum,函數式求值,原本要處理統計用戶最近一次活躍時間,及截至統計日沉默天數,這個在excel中處理比較麻煩,利用sql就篩選max(成交日)+group BY user_id,就可以找出該用戶最後近一次活躍時間,再用計算兩個日期的公式就可以算出用戶沉默天數。
除了使用SQL統計分析用戶訂單數據外,如果想要更進一步地提升,就可以主動找經典的題目去練習,重點練習groupby,鏈接,嵌套查詢,在知乎找了一下相關帖子,在sqlzoo上把裡面的題目刷了一遍,裡面確實會有點題需要想一下,又幾題查了一下答案才有些思路解答。
至於經典的國內面試題目,哪個還沒有認真的進行練習,不過這兩天在實驗樓上學習上手了mysql基礎,結合以前的sql後更能順手去聯繫了,推薦一下去實驗樓跟著做一下實驗。
SQL應鏈接到資料庫中去練習
之前我自己的經歷就是沒有安裝資料庫結合聯繫,後來找了一個現成的在線練習+access練習,對資料庫安裝,打開創建,導入,導出等非sql語句比較陌生,所有非常推薦大家動手安裝資料庫同步練習SQL;
安裝資料庫,Ubuntu linux執行兩個語句安裝: sudo apt-get install mysql-server #安裝伺服器 sudo apt-get install mysql-client #安裝客戶端根據提示選擇yes,設置root賬戶密碼打開資料庫:sudo service mysql start輸入:mysql -u root 密碼查看資料庫 show databases;鏈接資料庫 use <database_name> (唯一一個語句可以不用;結束)查看錶: show tables;退出:quit ctrl+z
學會這些基本資料庫操作後,就可以進一步練習創建資料庫,表,插入值,更新,刪除,增加,查詢,導入,導出等一系列的實踐練習了。你學會資料庫之後對SQL的感覺肯定不再覺得它想乾巴巴的一種語言而已,她真正能在資料庫中實現你對數據從操作鏈接。
推薦閱讀:
※如何自學SQL?
※讓SQL語句更可讀
※如何優雅地寫SQL?
※SQL默示錄(一)
※SQL Server 2012安裝教程需要的只帶走
TAG:SQL |