![]() |
| 一如往常我又找了笑話或meme圖,但是這個實在太宅,不是每個人都懂 |
*本文是CS50x的中文學習筆記,是原課程的筆記補充,建議先上完課,看完原課程筆記,再閱讀本文。
自學程式時,由於知識過於龐大,必須要盡可能地切割成一段一段的知識,以學習SQL為例,我推薦初學者使用互動式網站學習,不用買書,也不用看影片,直接在網站上操作語法,你不需要自己安裝SQL。因為你安裝時,會發現一堆問題,光是處理這些問題你就焦頭爛額。
但是自學者也得有心理準備,這樣的學習方式,缺乏膠水知識,也就是台語說的「鋩角」。比如說我以前學了SQL,雖然有一陣子沒練習,但是也都能看得懂,最多要用查一下就好。可是因為我是在Codecademy線上學習的,我沒有試過在自己的電腦上架設,所以我連如何使用db browser,怎麼建立表格都不會。因為這些教學網站都幫你準備地好好的。
然而這是自學者必定歷經的過程,也只能見招拆招,一一克服。
免費的互動式SQL學習網站,我推薦SQLBolt,只需要4小時,至多8小時就能把基本語法全部學完。為了這次的CS50x課程,我又再看了一次。W3schools的據說也不錯,不過我沒用過,多半都是用來查語法。Fooish程式技術 用來查語法也很不錯,而且還是繁體中文,是站長咀嚼過知識才寫出來,不是糟糕的機器翻譯。有時候如果我看不懂英文介紹,就會來翻一下Fooish。
如何在電腦上使用SQLite
當你在寫本週作業時,會被要求使用:
from cs50 import SQL
不過最後你還是得在自己的電腦上運行SQL,所以還是試著安裝SQLite吧。
SQLite屬於輕量級的資料庫,如果你在上週的課程安裝了Python,你的電腦就有SQLite。Python2.5版本以後已內建SQLite資料庫,你不需要特別安裝。如果你還沒在電腦上安裝Python,建議你直接裝Anaconda,然後用裡頭的Visual Studio Code或者jupyter來寫Python,比較不用花太多心力。
當你在自己的電腦,要使用Python連結SQLite時,首先要import函式庫。
import sqlite3
第一步驟先開啟一個資料庫。
# 如果test.db不存在,就會創一個新的 db = sqlite3.connect('test.db')
或者也可以在記憶體中建立。
db = sqlite3.connect(":memory:")
建立表格。
db.execute('''CREATE TABLE IF NOT EXISTS your_table ( id INTEGER PRIMARY KEY, name TEXT UNIQUE, age INTEGER)''')
在表格裡插入新資料。
# 注意.execute()裡面只能丟入兩個參數 user = (1, "Kai", 30) db.execute("INSERT INTO your_table VALUES (?,?,?)", user)
搜尋表格裡的值。
# 這裡印出的值,型態是元組tuple for row in db.execute('''SELECT * FROM your_table WHERE age > ?''', (age, )): print(row)
存檔並且關閉資料庫。
db.commit() db.close()
綜合上述,整個資料庫操作分別為
- 呼叫 sqlite3.connect() 連接資料庫
- 呼叫 conn..execute() 執行 CRUD 操作
- 呼叫conn.commit() 存檔
- 呼叫 conn.close() 關閉資料庫
作業
底下為作業,一個是使用IMDb電影資料庫的資料練習SQL,一個是霍格華茲魔法與巫術學院的學生名單整理。注意在學生名單這裡那份作業,由於是在CS50的IDE操作,有cs50函式庫加持,所以有部分語法會與上述不同。
1. IMDb電影資料庫
2. 霍格華茲魔法與巫術學院的學生名單
import.py
roster.py
Happy coding!

沒有留言:
張貼留言
謝絕廣告,感恩