零基礎學程式設計024:如何快速學會SQL?
一位朋友問我如何能夠較快地學會SQL,我一時還真不知道如何回答。想學會SQL(結構化查詢語言),大概需要理解這些術語:資料庫、關係型資料庫、面向物件的資料庫、鍵值型的資料庫、資料表、資料記錄、資料列、資料表的關係運算等等,但對於一個對資料庫一無所知的人來說,該如何一步一步地讓他建立起這個知識體系?
我嘗試著先把大腦中的相關知識清空,利用《“零基礎學程式設計”都需要哪些基礎?》中提到的搜尋技巧,先試著google一下,關鍵詞用“how to learn sql",第一行的廣告被我去掉了,後面的幾條結果如下圖:
1、CodeCademy
在開始學習python的時候,我寫過《零基礎學程式設計001:用線上程式設計環境快速上手
這個Codecademy 也支援SQL的學習,我進去試了一下,第一課就是輸入SELECT語句,直接看到查詢的結果。可惜課程介面和講解都是英文的,英語基礎好的朋友首選用這個網站學SQL或其它語言。
2、Quora
這個網站相當於英文版的知乎,點進去之後,列出來一堆的學習資源和教程,因為是使用者自己評價排名,所以比較可信,自己去看吧。
3、Learn SQL
這是一款手機APP,我簡單地安裝試用了一下,仍是純英文的,設計成關卡模式,不完成一關無法進入下一關。一上來介紹資料庫的基本概念,讓你回答問題,有一定難度,需要註冊之後才能使用更多功能。
4、SQLCourse.com
一個專門學SQL的網站,大段大段的英文內容,介紹得非常詳細。從google上搜索到的前四條結果相當不錯,如果英文不好,你就只能在知乎上搜索“如何自學SQL”,也有不錯的回答。
5、通過python學SQL
單單學SQL效果不好,需要與程式語言配合學習,才能明白SQL在程式設計中的強大用處。既然已經學了一些基本Python知識,能否通過python的環境快速上手SQL?我嘗試著搜尋了幾個相關模組庫,最後鎖定了這個db.py,能夠達到上述目的。
1)安裝
如果你之前安裝過WinPython,則直接跳到下一步,看清楚了,是WinPython。
之前介紹過WinPython
2)快速試驗SELECT語句
SELECT語句相當於程式語言中的Hello World,如果將來你有幸成為了一名程式設計師,並經常與資料庫打交道,那麼你寫的80%的SQL都是SELECT語句!
直接在 python 的整合環境 IDLE 中輸入下面三行語句:
from db import DemoDB
db = DemoDB()
db.query("select * from album")
查詢結果:
這個樣例是一個歌曲的資料庫(Database),album是一個資料表(Table),就像EXCEL電子表格一樣,它由許多列(Column或Field)組成,這裡有三列:AlbumId(歌曲ID)、Title(曲名)、ArtistId(藝術家ID),這個資料表還有許多行(Row),一行稱為一條記錄(Record)。
再看看我們以前在《零基礎學程式設計019:生成群文章目錄》學過的CSV,是不是挺類似?其實CSV就是一個文字格式的資料表。
我們剛才寫的 select * from ALBUM 就是一條最簡單的SQL語句,意思是查詢ALBUM中的所有記錄(Record),SQL語句一般不區分大小寫,這種語言有點像自然語言,只說明目的,而不關心背後的實現邏輯,複雜的處理邏輯由資料庫管理系統(DBMS)來完成。
今天先介紹一個開頭,大家是否對SQL感興趣?歡迎留言,如果留言人數超過20,我就專門寫上幾篇有關資料庫和SQL的文章。
小結:
- SQL是資料庫的結構化查詢語言
- 想快速學SQL,首先得會搜尋
- 英文基礎好,學程式設計會容易許多
- 快速上手反饋建立學習的信心
- CodeCademy可以快速學習,值得一試
- python中可以用db模組學習SQL
- 資料庫由資料表構成,表由行和列組成
- select是基礎的sql語句,以後操作資料庫時80%以上都是寫這條語句
--- END ---