iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0
Python

Python大戰之網頁爬蟲系列 第 28

[Day 28] SQLite

  • 分享至 

  • xImage
  •  

在今天的學習中,我們要學習另外一個資料庫引擎 - SQLite
我們會學習它的運作原理,以及它的應用:

什麼是SQLite?

SQLite 是一種輕量級的關聯式資料庫管理系統
它最大的特點就是它「不需要伺服器來運行」。

與 MySQL、PostgreSQL 等傳統資料庫不同,SQLite 將所有的資料都存儲在一個單一的檔案中,
這讓它非常適合嵌入式系統桌面應用程式以及移動應用
這樣的設計使得 SQLite 在應用程式運行時,
不需要啟動和維護一個獨立的伺服器,應用程式可以直接與資料庫檔案進行交互。

SQLite 以其便捷性著稱,無需配置伺服器和網路連接。
資料庫的所有操作都在應用程式中進行,意味著它的使用者不需要具備太多的伺服器管理經驗。
這種 "開箱即用" 的特性,使得開發人員可以專注於開發應用程式而不必操心資料庫的設置問題。

此外,由於 SQLite 將資料儲存在一個單一檔案中,
資料庫的備份和恢復變得非常容易,只需要操作這個檔案即可。

儘管 SQLite 的體積小巧,功能卻非常強大。
它支援大部分標準的 SQL 語法,如查詢、插入、更新、刪除等基本操作,
也支援複雜的聯合查詢、索引、視圖和觸發器等進階功能。

對於需要處理大量查詢操作的應用程式來說,
SQLite 是非常高效的,因為它不需要通過網路與遠程伺服器通信,這極大地降低了延遲。

此外,SQLite 是跨平台的,這代表著它的資料庫檔案可以在不同的操作系統間自由轉移。
比如說在 Windows 上建立的資料庫可以輕鬆地在 Linux 或 macOS 上使用,
這大大增加了它的靈活性。這樣的設計讓 SQLite 成為便攜應用的首選,
許多桌面應用、移動應用甚至是瀏覽器的本地存儲都採用了 SQLite 作為後端資料庫引擎。

然而,也不是所有都是優點,SQLite 的簡單性也有其限制。
由於它的架構設計,它在處理大量併發寫入操作時,
表現不如其他專業的伺服器式資料庫系統。

當有多個進程嘗試同時寫入資料庫時,
SQLite 的鎖機制會限制同一時間只能有一個進程進行寫操作,
這在高併發的應用場景中可能會導致性能瓶頸。

另外,SQLite 也沒有像 MySQL 或 PostgreSQL 那樣的用戶權限管理功能,
這使得它更適合單用戶或小型應用,而不是大型、多用戶的系統。

但總的來說,SQLite 還是一個非常適合嵌入式應用輕量級桌面應用
移動應用的資料庫解決方案。
它無需伺服器、配置簡單、跨平台支援且功能強大,特別適合多讀少寫的應用場景。
但在需要高併發處理或複雜權限管理的大型系統中,專業的伺服器式資料庫可能是更好的選擇。

影片學習:

在今天的學習中,我會參考頻道「PAPAYA 電腦教室」的影片
SQL 十四分鐘速成班!沒錯不要懷疑,資料庫語法比中午決定吃什麼還要簡單!
來對SQL作更深入的了解,最後在附上我的學習心得。
(連結網址:
https://www.youtube.com/watch?v=G_zGBR0mQmE)

影片重點圖片截取:

https://ithelp.ithome.com.tw/upload/images/20241011/20169196cVK7qEYgu5.png

https://ithelp.ithome.com.tw/upload/images/20241011/20169196KLfZ7kfSPL.png

https://ithelp.ithome.com.tw/upload/images/20241011/20169196qAy1hyx5jF.png

https://ithelp.ithome.com.tw/upload/images/20241011/20169196D3EKiIpJHC.png

https://ithelp.ithome.com.tw/upload/images/20241011/20169196q1u8of3vw2.png

學習心得:

在觀看完影片「SQL 十四分鐘速成班!沒錯不要懷疑,資料庫語法比中午決定吃什麼還要簡單!」後,
我對 SQL 基礎操作有了快速且清晰的理解。
影片從一開始的開場白就先簡單描述了SQL它的作用,講解的方式都相當簡單明瞭,
讓學習 SQL 變得不那麼壓力重重。

影片的基礎部分介紹了選取語法,例如如何使用 SELECT 語句來提取數據。
這段內容直觀易懂,幫助我快速掌握了最基本的查詢操作。

接下來的部分進一步講解了如何限制資料回傳的筆數,讓我明白 LIMIT 這個關鍵字如何
在大量資料中篩選出有限的結果,這對於數據分析或只需部分結果的情境非常實用。

影片的中段深入探討了資料的篩選與排序。透過 WHERE 子句進行篩選,
再利用 ORDER BY 進行排序,使得查詢結果更具針對性。
這個功能在處理大規模資料時顯得格外有用。
緊接著講解了 SQL 中常見的彙總函數,例如 SUM()AVG() 等,
讓我能夠快速進行資料的統計和分析。

接著,資料分組是影片的另一個重點。使用 GROUP BY 語法,
可以依照某個欄位將資料分組,並且配合彙總函數達到更進階的數據分析效果。
這個功能讓我理解了 SQL 如何有效地處理大規模、結構化的數據集。

影片後半部分則講解了如何建立和更新資料表。
這裡涉及了 CREATE 和 ALTER 語句,讓我能夠不僅查詢數據,
還能實際管理數據結構,進行表格的新增、修改等操作。
這對於管理資料庫架構時非常有幫助。

最後,影片介紹了跨表格查詢的技巧,透過 JOIN 語法,
可以將多個表格中的相關數據整合查詢,這部分內容展示了 SQL 強大的關聯式資料庫處理能力,
也讓我明白了如何在多個表格之間進行資料整合。

整體來說,這部影片雖然節奏很快速,只上了14分鐘的課,但條理真的非常清晰,
讓我可以在短短的時間內對 SQL 有了一個全面的了解。

從基礎的選取篩選排序
到進階的彙總分組跨表格查詢,內容豐富且實用。

通過這次的學習,讓我知道
SQL 比中午決定吃什麼還要簡單絕對不是瞎掰(吃什麼真的很難想,真的。),
這次學習也讓我對 SQL 充滿信心,也激發了我進一步探索資料庫語法的興趣。


參考資料:

https://zh.wikipedia.org/zh-tw/SQLite
https://www.youtube.com/watch?v=G_zGBR0mQmE


上一篇
[Day 27] 公休日
下一篇
[Day 29] 週休日
系列文
Python大戰之網頁爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言