1. 程式人生 > 其它 >零基礎學程式設計024:如何快速學會SQL?

零基礎學程式設計024:如何快速學會SQL?

一位朋友問我如何能夠較快地學會SQL,我一時還真不知道如何回答。想學會SQL(結構化查詢語言),大概需要理解這些術語:資料庫、關係型資料庫、面向物件的資料庫、鍵值型的資料庫、資料表、資料記錄、資料列、資料表的關係運算等等,但對於一個對資料庫一無所知的人來說,該如何一步一步地讓他建立起這個知識體系?

我嘗試著先把大腦中的相關知識清空,利用《“零基礎學程式設計”都需要哪些基礎?》中提到的搜尋技巧,先試著google一下,關鍵詞用“how to learn sql",第一行的廣告被我去掉了,後面的幾條結果如下圖:

1、CodeCademy

在開始學習python的時候,我寫過《零基礎學程式設計001:用線上程式設計環境快速上手

》,學習一門語言需要快速上手來建立信心,一步一步地輸入程式碼並馬上看到反饋結果,時刻體會到自己的進步,從而進入程式的世界,而不要在安裝程式設計環境方面就花上2天時間,使剛建立的一點點學習熱情嚴重受挫。

這個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

這個安裝程式包含許多常用的模組庫,如果你只是安裝純淨的Python 3.6,後面的 import 語句會出現問題,新手還是儘量別被安裝問題折磨得死去活來吧。重複一遍,在Windows上推薦安裝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 ---